Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/project/J2EEProjectUtilities.java')
-rw-r--r--plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/project/J2EEProjectUtilities.java1179
1 files changed, 0 insertions, 1179 deletions
diff --git a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/project/J2EEProjectUtilities.java b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/project/J2EEProjectUtilities.java
deleted file mode 100644
index eee910fb8..000000000
--- a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/project/J2EEProjectUtilities.java
+++ /dev/null
@@ -1,1179 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.j2ee.internal.project;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.ICommand;
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jem.java.JavaClass;
-import org.eclipse.jem.java.JavaRefFactory;
-import org.eclipse.jem.util.emf.workbench.ProjectUtilities;
-import org.eclipse.jem.util.emf.workbench.WorkbenchByteArrayOutputStream;
-import org.eclipse.jem.util.logger.proxy.Logger;
-import org.eclipse.jem.util.plugin.JEMUtilPlugin;
-import org.eclipse.jem.workbench.utility.JemProjectUtilities;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.EARFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.EJBJarFile;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.File;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DeploymentDescriptorLoadException;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.OpenFailureException;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveManifest;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveManifestImpl;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.impl.CommonarchiveFactoryImpl;
-import org.eclipse.jst.j2ee.commonarchivecore.internal.util.ArchiveUtil;
-import org.eclipse.jst.j2ee.ejb.EJBJar;
-import org.eclipse.jst.j2ee.ejb.EnterpriseBean;
-import org.eclipse.jst.j2ee.internal.J2EEConstants;
-import org.eclipse.jst.j2ee.internal.J2EEVersionConstants;
-import org.eclipse.jst.j2ee.internal.archive.operations.JavaComponentLoadStrategyImpl;
-import org.eclipse.jst.j2ee.internal.common.J2EEVersionUtil;
-import org.eclipse.jst.j2ee.internal.common.classpath.J2EEComponentClasspathUpdater;
-import org.eclipse.jst.j2ee.internal.componentcore.JavaEEBinaryComponentHelper;
-import org.eclipse.jst.j2ee.internal.moduleextension.EarModuleManager;
-import org.eclipse.jst.j2ee.internal.plugin.J2EEPlugin;
-import org.eclipse.jst.j2ee.project.EarUtilities;
-import org.eclipse.jst.j2ee.project.JavaEEProjectUtilities;
-import org.eclipse.jst.j2ee.project.facet.IJ2EEFacetConstants;
-import org.eclipse.jst.j2ee.project.facet.IJavaProjectMigrationDataModelProperties;
-import org.eclipse.jst.j2ee.project.facet.JavaProjectMigrationDataModelProvider;
-import org.eclipse.jst.j2ee.project.facet.JavaProjectMigrationOperation;
-import org.eclipse.jst.jee.archive.IArchive;
-import org.eclipse.jst.jee.archive.IArchiveResource;
-import org.eclipse.jst.server.core.FacetUtil;
-import org.eclipse.wst.common.componentcore.ComponentCore;
-import org.eclipse.wst.common.componentcore.internal.impl.ModuleURIUtil;
-import org.eclipse.wst.common.componentcore.internal.util.ComponentUtilities;
-import org.eclipse.wst.common.componentcore.internal.util.IModuleConstants;
-import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
-import org.eclipse.wst.common.componentcore.resources.IVirtualFile;
-import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
-import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
-import org.eclipse.wst.common.componentcore.resources.IVirtualResource;
-import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-import org.eclipse.wst.common.frameworks.internal.SimpleValidateEdit;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.server.core.IRuntime;
-
-public class J2EEProjectUtilities extends ProjectUtilities implements IJ2EEFacetConstants {
-
- /**
- * Return the absolute path of a loose archive in a J2EE application or WAR file
- */
- public static IPath getRuntimeLocation(IProject aProject) {
- if (JemProjectUtilities.isBinaryProject(aProject))
- return getBinaryProjectJARLocation(aProject);
- return JemProjectUtilities.getJavaProjectOutputAbsoluteLocation(aProject);
- }
-
- public static IPath getBinaryProjectJARLocation(IProject aProject) {
- List sources = JemProjectUtilities.getLocalJARPathsFromClasspath(aProject);
- if (!sources.isEmpty()) {
- IPath path = (IPath) sources.get(0);
- return aProject.getFile(path).getLocation();
- }
- return null;
- }
-
- public static Archive getClientJAR(EJBJarFile file, EARFile earFile) {
- EJBJar jar = null;
- try {
- jar = file.getDeploymentDescriptor();
- } catch (DeploymentDescriptorLoadException exc) {
- return null;
- }
- if (jar == null)
- return null;
- String clientJAR = jar.getEjbClientJar();
- if (clientJAR == null || clientJAR.length() == 0)
- return null;
- String normalized = ArchiveUtil.deriveEARRelativeURI(clientJAR, file.getURI());
- if (normalized != null) {
- try {
- File aFile = earFile.getFile(normalized);
- if (aFile.isArchive() && !aFile.isModuleFile())
- return (Archive) aFile;
- } catch (FileNotFoundException nothingThere) {
- }
- }
- return null;
- // TODO - release the DD here to free up space
- }
-
- /**
- * Append one IClasspathEntry to the build path of the passed project. If a classpath entry
- * having the same path as the parameter already exists, then does nothing.
- */
- public static void appendJavaClassPath(IProject p, IClasspathEntry newEntry) throws JavaModelException {
- IJavaProject javaProject = JemProjectUtilities.getJavaProject(p);
- if (javaProject == null)
- return;
- IClasspathEntry[] classpath = javaProject.getRawClasspath();
- List newPathList = new ArrayList(classpath.length);
- for (int i = 0; i < classpath.length; i++) {
- IClasspathEntry entry = classpath[i];
- // fix dup class path entry for .JETEmitter project
- // Skip the entry to be added if it already exists
- if (Platform.getOS().equals(Platform.OS_WIN32)) {
- if (!entry.getPath().toString().equalsIgnoreCase(newEntry.getPath().toString()))
- newPathList.add(entry);
- else
- return;
- } else {
- if (!entry.getPath().equals(newEntry.getPath()))
- newPathList.add(entry);
- else
- return;
- }
- }
- newPathList.add(newEntry);
- IClasspathEntry[] newClasspath = (IClasspathEntry[]) newPathList.toArray(new IClasspathEntry[newPathList.size()]);
- javaProject.setRawClasspath(newClasspath, new NullProgressMonitor());
- }
-
- public static Archive asArchiveFromBinary(String jarUri, IProject aProject) throws OpenFailureException {
- IPath path = getBinaryProjectJARLocation(aProject);
- if (path != null) {
- String location = path.toOSString();
- Archive anArchive = CommonarchiveFactoryImpl.getActiveFactory().primOpenArchive(location);
- anArchive.setURI(jarUri);
- return anArchive;
- }
- return null;
- }
-
- public static ArchiveManifest readManifest(IFile aFile) {
- InputStream in = null;
- try {
- if (aFile == null || !aFile.exists())
- return null;
- in = aFile.getContents();
- return new ArchiveManifestImpl(in);
- } catch (Exception ex) {
- org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError(ex);
- return null;
- } finally {
- if (in != null) {
- try {
- in.close();
- } catch (IOException weTried) {
- }
- }
- }
- }
-
- public static ArchiveManifest readManifest(IProject p) {
- InputStream in = null;
- try {
- IFile aFile = getManifestFile(p);
- if (aFile == null || !aFile.exists())
- return null;
- in = aFile.getContents();
- return new ArchiveManifestImpl(in);
- } catch (Exception ex) {
- org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError(ex);
- return null;
- } finally {
- if (in != null) {
- try {
- in.close();
- } catch (IOException weTried) {
- }
- }
- }
- }
-
- /**
- * Equavalent to calling getManifestFile(project, true)
- *
- * @param p
- * @return
- */
- public static IFile getManifestFile(IProject project) {
- return getManifestFile(project, true);
- }
-
- /**
- * Returns the IFile handle to the J2EE manifest file for the specified
- * project. If createIfNecessary is true, the MANIFEST.MF file will be
- * created if it does not already exist.
- *
- * @param p
- * @param createIfNecessary
- * @return
- */
- public static IFile getManifestFile(IProject p, boolean createIfNecessary) {
- IVirtualComponent component = ComponentCore.createComponent(p);
- try {
- IFile file = ComponentUtilities.findFile(component, new Path(J2EEConstants.MANIFEST_URI));
- if (createIfNecessary && file == null) {
- IVirtualFolder virtualFolder = component.getRootFolder();
- file = virtualFolder.getUnderlyingFolder().getFile(new Path(J2EEConstants.MANIFEST_URI));
-
- try {
- ManifestFileCreationAction.createManifestFile(file, p);
- } catch (CoreException e) {
- Logger.getLogger().log(e);
- } catch (IOException e) {
- Logger.getLogger().log(e);
- }
- }
- return file;
- } catch (CoreException ce) {
- Logger.getLogger().log(ce);
- }
- return null;
- }
-
- public static void writeManifest(IProject aProject, ArchiveManifest manifest) throws java.io.IOException {
- writeManifest(aProject, getManifestFile(aProject), manifest);
- }
-
- public static void writeManifest(IFile aFile, ArchiveManifest manifest) throws java.io.IOException {
- writeManifest(aFile.getProject(), aFile, manifest);
- }
-
- private static void writeManifest(IProject aProject, IFile aFile, ArchiveManifest manifest) throws java.io.IOException {
- if (aFile != null) {
- if(SimpleValidateEdit.validateEdit(new IFile[] { aFile })){
- OutputStream out = new WorkbenchByteArrayOutputStream(aFile);
- manifest.writeSplittingClasspath(out);
- out.close();
- J2EEComponentClasspathUpdater.getInstance().queueUpdateModule(aProject);
- }
- }
- }
-
- public static ArchiveManifest readManifest(IVirtualComponent component) {
- if (!component.isBinary()) {
- IVirtualFile vManifest = component.getRootFolder().getFile(J2EEConstants.MANIFEST_URI);
- if (vManifest.exists()) {
- IFile manifestFile = vManifest.getUnderlyingFile();
- InputStream in = null;
- try {
- in = manifestFile.getContents();
- return new ArchiveManifestImpl(in);
- } catch (IOException e) {
- J2EEPlugin.logError(e);
- } catch (CoreException e) {
- J2EEPlugin.logError(e);
- } finally {
- if (in != null) {
- try {
- in.close();
- in = null;
- } catch (IOException e) {
- J2EEPlugin.logError(e);
- }
- }
- }
- }
- } else {
- JavaEEBinaryComponentHelper helper = null;
- try{
- helper = new JavaEEBinaryComponentHelper(component);
- if(helper != null){
- IArchive archive = null;
- InputStream in = null;
- try{
- archive = helper.accessArchive();
- if(null != archive){
- IPath manifestPath = new Path(J2EEConstants.MANIFEST_URI);
- if(archive.containsArchiveResource(manifestPath)){
- IArchiveResource manifestResource = archive.getArchiveResource(manifestPath);
- if(manifestResource != null){
- in = manifestResource.getInputStream();
- ArchiveManifest manifest = new ArchiveManifestImpl(in);
- return manifest;
- }
- }
- }
- } catch (FileNotFoundException e) {
- J2EEPlugin.logError(e);
- } catch (IOException e) {
- J2EEPlugin.logError(e);
- } finally{
- if (in != null) {
- try {
- in.close();
- in = null;
- } catch (IOException e) {
- J2EEPlugin.logError(e);
- }
- }
- if(archive != null){
- helper.releaseArchive(archive);
- }
- }
- }
- } finally{
- if(helper != null){
- helper.dispose();
- }
- }
- }
- return null;
- }
- /**
- * Keys are the EJB JAR files and the values are the respective client JARs; includes only key
- * value pairs for which EJB Client JARs are defined and exist.
- *
- * @author schacher
- */
- public static Map collectEJBClientJARs(EARFile earFile) {
- if (earFile == null)
- return Collections.EMPTY_MAP;
- Map ejbClientJARs = null;
- List ejbJARFiles = earFile.getEJBJarFiles();
- Archive clientJAR = null;
- for (int i = 0; i < ejbJARFiles.size(); i++) {
- EJBJarFile ejbJarFile = (EJBJarFile) ejbJARFiles.get(i);
- clientJAR = getClientJAR(ejbJarFile, earFile);
- if (clientJAR != null) {
- if (ejbClientJARs == null)
- ejbClientJARs = new HashMap();
- ejbClientJARs.put(ejbJarFile, clientJAR);
- }
- }
- return ejbClientJARs == null ? Collections.EMPTY_MAP : ejbClientJARs;
- }
-
- public static String computeRelativeText(String referencingURI, String referencedURI, EnterpriseBean bean) {
- if (bean == null)
- return null;
-
- String beanName = bean.getName();
- if (beanName == null)
- return null;
-
- String relativeUri = computeRelativeText(referencingURI, referencedURI);
- if (relativeUri == null)
- return beanName;
- return relativeUri + "#" + beanName; //$NON-NLS-1$
- }
-
- public static String computeRelativeText(String referencingURI, String referencedURI) {
- if (referencingURI == null || referencedURI == null)
- return null;
- IPath pPre = new Path(referencingURI);
- IPath pDep = new Path(referencedURI);
- if (pPre.getDevice() != null || pDep.getDevice() != null)
- return null;
- pPre = pPre.makeRelative();
- pDep = pDep.makeRelative(); // referenced Archive path URI
-
- while (pPre.segmentCount() > 1 && pDep.segmentCount() > 1 && pPre.segment(0).equals(pDep.segment(0))) {
- pPre = pPre.removeFirstSegments(1);
- pDep = pDep.removeFirstSegments(1);
- }
-
- IPath result = null;
- StringBuffer buf = new StringBuffer();
- String segment = null;
- do {
- segment = pDep.lastSegment();
- pPre = pPre.removeLastSegments(1);
- pDep = pDep.removeLastSegments(1);
- if (segment != null) {
- if (result == null)
- result = new Path(segment);
- else
- result = new Path(segment).append(result);
- }
- if (!pPre.equals(pDep) && !pPre.isEmpty())
- buf.append("../"); //$NON-NLS-1$
- } while (!pPre.equals(pDep));
-
- if (result != null)
- buf.append(result.makeRelative().toString());
-
- return buf.toString();
- }
-
- public static IProject getEJBProjectFromEJBClientProject(IProject ejbClientProject) {
- try {
- if (null != ejbClientProject && ejbClientProject.hasNature(JavaCore.NATURE_ID)) {
- IProject[] allProjects = getAllProjects();
- for (int i = 0; i < allProjects.length; i++) {
- if (null != EarModuleManager.getEJBModuleExtension().getEJBJar(allProjects[i])) {
- if (ejbClientProject == EarModuleManager.getEJBModuleExtension().getDefinedEJBClientJARProject(allProjects[i])) {
- return allProjects[i];
- }
- }
- }
- }
- } catch (CoreException e) {
- }
- return null;
- }
-
- public static EnterpriseBean getEnterpriseBean(ICompilationUnit cu) {
- IProject proj = cu.getJavaProject().getProject();
- EJBJar jar = EarModuleManager.getEJBModuleExtension().getEJBJar(proj);
- if (null == jar) {
- jar = EarModuleManager.getEJBModuleExtension().getEJBJar(getEJBProjectFromEJBClientProject(proj));
- }
- if (jar != null) {
- int index = cu.getElementName().indexOf('.');
- String className = cu.getElementName();
- if (index > 0)
- className = className.substring(0, index);
- JavaClass javaClass = (JavaClass) JavaRefFactory.eINSTANCE.reflectType(cu.getParent().getElementName(), className, jar.eResource().getResourceSet());
- return jar.getEnterpriseBeanWithReference(javaClass);
- }
- return null;
- }
-
- public static IContainer getSourceFolderOrFirst(IProject p, String defaultSourceName) {
- try {
- IPath sourcePath = getSourcePathOrFirst(p, defaultSourceName);
- if (sourcePath == null)
- return null;
- else if (sourcePath.isEmpty())
- return p;
- else
- return p.getFolder(sourcePath);
- } catch (IllegalArgumentException ex) {
- return null;
- }
- }
-
- public static void removeBuilders(IProject project, List builderids) throws CoreException {
- IProjectDescription desc = project.getDescription();
- ICommand[] oldSpec = desc.getBuildSpec();
- int oldLength = oldSpec.length;
- if (oldLength == 0)
- return;
- int remaining = 0;
- // null out all commands that match the builder to remove
- for (int i = 0; i < oldSpec.length; i++) {
- if (builderids.contains(oldSpec[i].getBuilderName()))
- oldSpec[i] = null;
- else
- remaining++;
- }
- // check if any were actually removed
- if (remaining == oldSpec.length)
- return;
- ICommand[] newSpec = new ICommand[remaining];
- for (int i = 0, newIndex = 0; i < oldLength; i++) {
- if (oldSpec[i] != null)
- newSpec[newIndex++] = oldSpec[i];
- }
- desc.setBuildSpec(newSpec);
- project.setDescription(desc, IResource.NONE, null);
- }
-
- public static IPath getSourcePathOrFirst(IProject p, String defaultSourceName) {
- IJavaProject javaProj = JemProjectUtilities.getJavaProject(p);
- if (javaProj == null)
- return null;
- IClasspathEntry[] cp = null;
- try {
- cp = javaProj.getRawClasspath();
- } catch (JavaModelException ex) {
- JEMUtilPlugin.getLogger().logError(ex);
- return null;
- }
- IClasspathEntry firstSource = null;
- IPath defaultSourcePath = null;
- if (defaultSourceName != null)
- defaultSourcePath = createPath(p, defaultSourceName);
- boolean found = false;
- for (int i = 0; i < cp.length; i++) {
- if (cp[i].getEntryKind() == IClasspathEntry.CPE_SOURCE) {
- // check if it contains /META-INF/MANIFEST.MF
- IPath sourceFolderPath = cp[i].getPath().removeFirstSegments(1);
- IFolder sourceFolder = p.getFolder(sourceFolderPath);
- if (isSourceFolderAnInputContainer(sourceFolder)) {
- found = true;
- if (firstSource == null) {
- firstSource = cp[i];
- if (defaultSourcePath == null)
- break;
- }
- if (cp[i].getPath().equals(defaultSourcePath))
- return defaultSourcePath.removeFirstSegments(1);
- }
- }
- }
- if (!found) {
- for (int i = 0; i < cp.length; i++) {
- if (cp[i].getEntryKind() == IClasspathEntry.CPE_SOURCE) {
- if (firstSource == null) {
- firstSource = cp[i];
- if (defaultSourcePath == null)
- break;
- }
- if (cp[i].getPath().equals(defaultSourcePath))
- return defaultSourcePath.removeFirstSegments(1);
- }
- }
- }
- if (firstSource == null)
- return null;
- if (firstSource.getPath().segment(0).equals(p.getName()))
- return firstSource.getPath().removeFirstSegments(1);
- return null;
- }
-
- public static boolean isSourceFolderAnInputContainer(IFolder sourceFolder) {
- IContainer parent = sourceFolder;
- while (true) {
- parent = parent.getParent();
- if (parent == null)
- return false;
- if (parent instanceof IProject)
- break;
- }
- IProject project = (IProject) parent;
- try {
- if (!project.isAccessible())
- return false;
- if (isEJBProject(project)) {
- return sourceFolder.findMember(J2EEConstants.EJBJAR_DD_URI) != null;
- } else if (isApplicationClientProject(project)) {
- return sourceFolder.findMember(J2EEConstants.APP_CLIENT_DD_URI) != null;
- } else if (isDynamicWebProject(project)) {
- return sourceFolder.findMember(J2EEConstants.WEBAPP_DD_URI) != null;
- } else if (isJCAProject(project)) {
- return sourceFolder.findMember(J2EEConstants.RAR_DD_URI) != null;
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- return false;
- }
-
- public static Archive asArchive(String jarUri, IProject project, boolean exportSource) throws OpenFailureException {
- return asArchive(jarUri, project, exportSource, true);
- }
-
- public static Archive asArchive(String jarUri, IProject project, boolean exportSource, boolean includeClasspathComponents) throws OpenFailureException {
- JavaComponentLoadStrategyImpl strat = new JavaComponentLoadStrategyImpl(ComponentCore.createComponent(project), includeClasspathComponents);
- strat.setExportSource(exportSource);
- return CommonarchiveFactoryImpl.getActiveFactory().primOpenArchive(strat, jarUri);
- }
-
- /**
- * @deprecated - see {@link JavaEEProjectUtilities.isProjectOfType(IProject project, String typeID)}
- */
- public static boolean isProjectOfType(IProject project, String typeID) {
- return JavaEEProjectUtilities.isProjectOfType(project,typeID);
- }
-
- private static boolean isProjectOfType(IFacetedProject facetedProject, String typeID) {
-
- if (facetedProject != null && ProjectFacetsManager.isProjectFacetDefined(typeID)) {
- IProjectFacet projectFacet = ProjectFacetsManager.getProjectFacet(typeID);
- return projectFacet != null && facetedProject.hasProjectFacet(projectFacet);
- }
- return false;
- }
-
- private static boolean isEARProject(IFacetedProject project) {
- return isProjectOfType(project, ENTERPRISE_APPLICATION);
- }
-
- private static boolean isDynamicWebProject(IFacetedProject project) {
- return isProjectOfType(project, DYNAMIC_WEB);
- }
-
- private static boolean isEJBProject(IFacetedProject project) {
- return isProjectOfType(project, EJB);
- }
-
- private static boolean isJCAProject(IFacetedProject project) {
- return isProjectOfType(project, JCA);
- }
-
- private static boolean isApplicationClientProject(IFacetedProject project) {
- return isProjectOfType(project, APPLICATION_CLIENT);
- }
-
- private static boolean isUtilityProject(IFacetedProject project) {
- return isProjectOfType(project, UTILITY);
- }
-
- /**
- * @deprecated - see {@link JavaEEProjectUtilities.isEARProject(IProject project)}
- */
- public static boolean isEARProject(IProject project) {
- return JavaEEProjectUtilities.isEARProject(project);
- }
-
- /**
- * @deprecated - see {@link JavaEEProjectUtilities.isDynamicWebComponent(IVirtualComponent component)}
- */
- public static boolean isDynamicWebComponent(IVirtualComponent component) {
- return JavaEEProjectUtilities.isDynamicWebComponent(component);
- }
-
- /**
- * @deprecated - see {@link JavaEEProjectUtilities.isDynamicWebProject(IProject project)}
- */
- public static boolean isDynamicWebProject(IProject project) {
- return JavaEEProjectUtilities.isDynamicWebProject(project);
- }
-
- /**
- * @deprecated - see {@link JavaEEProjectUtilities.isStaticWebProject(IProject project)}
- */
- public static boolean isStaticWebProject(IProject project) {
- return JavaEEProjectUtilities.isStaticWebProject(project);
- }
-
- /**
- * @deprecated - see {@link JavaEEProjectUtilities.isEJBComponent(IVirtualComponent component)}
- */
- public static boolean isEJBComponent(IVirtualComponent component) {
- return JavaEEProjectUtilities.isEJBComponent(component);
- }
-
- /**
- * @deprecated - see {@link JavaEEProjectUtilities.isEJBProject(IProject project)}
- */
- public static boolean isEJBProject(IProject project) {
- return JavaEEProjectUtilities.isEJBProject(project);
- }
-
- /**
- * @deprecated - see {@link JavaEEProjectUtilities.isJCAComponent(IVirtualComponent component)}
- */
- public static boolean isJCAComponent(IVirtualComponent component) {
- return JavaEEProjectUtilities.isJCAComponent(component);
- }
-
- /**
- * @deprecated - see {@link JavaEEProjectUtilities.isJCAProject(IProject project)}
- */
- public static boolean isJCAProject(IProject project) {
- return JavaEEProjectUtilities.isJCAProject(project);
- }
-
- /**
- * @deprecated - see {@link JavaEEProjectUtilities.isApplicationClientComponent(IVirtualComponent component)}
- */
- public static boolean isApplicationClientComponent(IVirtualComponent component) {
- return JavaEEProjectUtilities.isApplicationClientComponent(component);
- }
-
- /**
- * @deprecated - see {@link JavaEEProjectUtilities.isApplicationClientProject(IProject project)}
- */
- public static boolean isApplicationClientProject(IProject project) {
- return JavaEEProjectUtilities.isApplicationClientProject(project);
- }
-
- /**
- * @deprecated - see {@link JavaEEProjectUtilities.isUtilityProject(IProject project)}
- */
- public static boolean isUtilityProject(IProject project) {
- return JavaEEProjectUtilities.isUtilityProject(project);
- }
-
- /**
- * @deprecated - see {@link EarUtilities.isStandaloneProject(IProject project)}
- */
- public static boolean isStandaloneProject(IProject project) {
- return EarUtilities.isStandaloneProject(project);
- }
-
- /**
- * Returns all referencing EAR projects.
- * @param project Project to check. If null or an EAR, returns a zero length array.
- * @return Array of referencing EAR projects.
- */
- public static IProject[] getReferencingEARProjects(final IProject project) {
- if(project != null && isEARProject(project)){
- return new IProject[] {project};
- }
-
- List result = new ArrayList();
- IVirtualComponent component = ComponentCore.createComponent(project);
- if (component != null) {
- IVirtualComponent[] refComponents = component.getReferencingComponents();
- for (int i = 0; i < refComponents.length; i++) {
- if (isEARProject(refComponents[i].getProject()))
- result.add(refComponents[i].getProject());
- }
- }
- return (IProject[]) result.toArray(new IProject[result.size()]);
- }
-
- /**
- * Returns all referencing dynamic web projects.
- * @param project Project to check. If null or a dynamic web project, returns a zero length array.
- * @return Array of referencing dynamic web projects.
- */
- public static IProject[] getReferencingWebProjects(final IProject project) {
- if(project != null && isDynamicWebProject(project)){
- return new IProject[] {project};
- }
-
- List result = new ArrayList();
- IVirtualComponent component = ComponentCore.createComponent(project);
- if (component != null) {
- IVirtualComponent[] refComponents = component.getReferencingComponents();
- for (int i = 0; i < refComponents.length; i++) {
- if (isDynamicWebProject(refComponents[i].getProject()))
- result.add(refComponents[i].getProject());
- }
- }
- return (IProject[]) result.toArray(new IProject[result.size()]);
- }
-
- /**
- * Return all projects in workspace of the specified type
- *
- * @param type -
- * use one of the static strings on this class as a type
- * @return IProject[]
- * @deprecated - see {@link JavaEEProjectUtilities.getAllProjectsInWorkspaceOfType(String type)}
- */
- public static IProject[] getAllProjectsInWorkspaceOfType(String type) {
- return JavaEEProjectUtilities.getAllProjectsInWorkspaceOfType(type);
- }
-
- /**
- * @deprecated - see {@link JavaEEProjectUtilities.getJ2EEComponentType(IVirtualComponent component)}
- */
- public static String getJ2EEComponentType(IVirtualComponent component) {
- return JavaEEProjectUtilities.getJ2EEComponentType(component);
- }
-
- /**
- * @deprecated - see {@link JavaEEProjectUtilities.getJ2EEProjectType(IProject project)}
- */
- public static String getJ2EEProjectType(IProject project) {
- return JavaEEProjectUtilities.getJ2EEProjectType(project);
- }
- /**
- * Returns the J2EE Module version based on the DD XML file
- * @param project
- * @return version String
- * @deprecated - see {@link JavaEEProjectUtilities.getJ2EEDDProjectVersion(IProject project)}
- */
- public static String getJ2EEDDProjectVersion(IProject project) {
- return JavaEEProjectUtilities.getJ2EEDDProjectVersion(project);
- }
-
- public static IRuntime getServerRuntime(IProject project) throws CoreException {
- if (project == null)
- return null;
- IFacetedProject facetedProject = ProjectFacetsManager.create(project);
- if (facetedProject == null)
- return null;
- org.eclipse.wst.common.project.facet.core.runtime.IRuntime runtime = facetedProject.getRuntime();
- if (runtime == null)
- return null;
- return FacetUtil.getRuntime(runtime);
- }
-
- /**
- * Returns the J2EE Module version based on the project Facet installed
- * @param project
- * @return version String
- */
- public static String getJ2EEProjectVersion(IProject project) {
- String type = getJ2EEProjectType(project);
- IFacetedProject facetedProject = null;
- IProjectFacet facet = null;
- try {
- facetedProject = ProjectFacetsManager.create(project);
- facet = ProjectFacetsManager.getProjectFacet(type);
- } catch (Exception e) {
- // Not Faceted project or not J2EE Project
- }
- if (facet != null && facetedProject.hasProjectFacet(facet))
- return facetedProject.getInstalledVersion(facet).getVersionString();
- return null;
- }
-
- public static JavaProjectMigrationOperation createFlexJavaProjectForProjectOperation(IProject project) {
- IDataModel model = DataModelFactory.createDataModel(new JavaProjectMigrationDataModelProvider());
- model.setProperty(IJavaProjectMigrationDataModelProperties.PROJECT_NAME, project.getName());
- return new JavaProjectMigrationOperation(model);
- }
-
- public static JavaProjectMigrationOperation createFlexJavaProjectForProjectOperation(IProject project, boolean addToEAR) {
- IDataModel model = DataModelFactory.createDataModel(new JavaProjectMigrationDataModelProvider());
- model.setProperty(IJavaProjectMigrationDataModelProperties.PROJECT_NAME, project.getName());
- model.setBooleanProperty(IJavaProjectMigrationDataModelProperties.ADD_TO_EAR, addToEAR);
- return new JavaProjectMigrationOperation(model);
- }
-
- /**
- * Retrieve all the source containers for a given virtual workbench component
- *
- * @param vc
- * @return the array of IPackageFragmentRoots
- */
- public static IPackageFragmentRoot[] getSourceContainers(IProject project) {
- IJavaProject jProject = JemProjectUtilities.getJavaProject(project);
- if (jProject == null)
- return new IPackageFragmentRoot[0];
- List list = new ArrayList();
- IVirtualComponent vc = ComponentCore.createComponent(project);
- IPackageFragmentRoot[] roots;
- try {
- roots = jProject.getPackageFragmentRoots();
- for (int i = 0; i < roots.length; i++) {
- if (roots[i].getKind() != IPackageFragmentRoot.K_SOURCE)
- continue;
- IResource resource = roots[i].getResource();
- if (null != resource) {
- IVirtualResource[] vResources = ComponentCore.createResources(resource);
- boolean found = false;
- for (int j = 0; !found && j < vResources.length; j++) {
- if (vResources[j].getComponent().equals(vc)) {
- if (!list.contains(roots[i]))
- list.add(roots[i]);
- found = true;
- }
- }
- }
- }
- } catch (JavaModelException e) {
- Logger.getLogger().logError(e);
- }
- return (IPackageFragmentRoot[]) list.toArray(new IPackageFragmentRoot[list.size()]);
- }
-
- /**
- * Retrieves the IContainers for all Java output folders that correspond to src folders that are mapped to the
- * virtual component tree via the component file.
- *
- * @param vc
- * @return array of IContainers for the output folders
- */
- public static IContainer[] getOutputContainers(IProject project) {
- List result = new ArrayList();
- try {
- if (!project.hasNature(JavaCore.NATURE_ID))
- return new IContainer[] {};
- } catch (Exception e) {
- }
- IPackageFragmentRoot[] sourceContainers = getSourceContainers(project);
- for (int i = 0; i < sourceContainers.length; i++) {
- IContainer outputFolder = getOutputContainer(project, sourceContainers[i]);
- if (outputFolder != null && !result.contains(outputFolder))
- result.add(outputFolder);
- }
- return (IContainer[]) result.toArray(new IContainer[result.size()]);
- }
-
- public static IContainer getOutputContainer(IProject project, IPackageFragmentRoot sourceContainer) {
- try {
- IJavaProject jProject = JavaCore.create(project);
- IPath outputPath = sourceContainer.getRawClasspathEntry().getOutputLocation();
- if (outputPath == null) {
- if (jProject.getOutputLocation().segmentCount() == 1)
- return project;
- return project.getFolder(jProject.getOutputLocation().removeFirstSegments(1));
- }
- return project.getFolder(outputPath.removeFirstSegments(1));
- } catch (Exception e) {
- }
- return null;
- }
-
- /**
- * Retrieve all Java output containers mapped into the virtual resource tree via the component file. Includes both directly
- * mapped class folders and the class folders associated with mapped source folders.
- *
- * @param vc
- * @return the array of IPackageFragmentRoots
- */
- public static IContainer[] getAllOutputContainers(IProject project) {
- IJavaProject jProject = JemProjectUtilities.getJavaProject(project);
- if (jProject == null)
- return new IContainer[0];
- List list = new ArrayList();
- IContainer[] srcOutputContainers = getOutputContainers(project);
- for (int i = 0; i < srcOutputContainers.length; i++) {
- list.add(srcOutputContainers[i]);
- }
- IVirtualComponent vc = ComponentCore.createComponent(project);
- IPackageFragmentRoot[] roots;
- try {
- roots = jProject.getPackageFragmentRoots();
- for (int i = 0; i < roots.length; i++) {
- if (roots[i].getKind() != IPackageFragmentRoot.K_BINARY)
- continue;
- IResource resource = roots[i].getResource();
- if (null != resource) {
- IVirtualResource[] vResources = ComponentCore.createResources(resource);
- boolean found = false;
- for (int j = 0; !found && j < vResources.length; j++) {
- if (vResources[j].getComponent().equals(vc)) {
- if (resource instanceof IContainer) {
- IContainer outputContainer = (IContainer) resource;
- if (!list.contains(outputContainer)) {
- list.add(outputContainer);
- found = true;
- }
- }
- }
- }
- }
- }
- } catch (JavaModelException e) {
- Logger.getLogger().logError(e);
- }
- return (IContainer[]) list.toArray(new IContainer[list.size()]);
- }
-
-
- /**
- *
- * @param name
- * @return
- * @description the passed name should have either lib or var as its first segment e.g.
- * lib/D:/foo/foo.jar or var/<CLASSPATHVAR>/foo.jar
- */
- public static IPath getResolvedPathForArchiveComponent(String name) {
-
- URI uri = URI.createURI(name);
-
- String resourceType = uri.segment(0);
- URI contenturi = ModuleURIUtil.trimToRelativePath(uri, 1);
- String contentName = contenturi.toString();
-
- if (resourceType.equals("lib")) { //$NON-NLS-1$
- // module:/classpath/lib/D:/foo/foo.jar
- return Path.fromOSString(contentName);
-
- } else if (resourceType.equals("var")) { //$NON-NLS-1$
-
- // module:/classpath/var/<CLASSPATHVAR>/foo.jar
- String classpathVar = contenturi.segment(0);
- URI remainingPathuri = ModuleURIUtil.trimToRelativePath(contenturi, 1);
- String remainingPath = remainingPathuri.toString();
-
- String[] classpathvars = JavaCore.getClasspathVariableNames();
- boolean found = false;
- for (int i = 0; i < classpathvars.length; i++) {
- if (classpathVar.equals(classpathvars[i])) {
- found = true;
- break;
- }
- }
- if (found) {
- IPath path = JavaCore.getClasspathVariable(classpathVar);
- if (path != null ){
- URI finaluri = URI.createURI(path.toOSString() + IPath.SEPARATOR + remainingPath);
- return Path.fromOSString(finaluri.toString());
- }
- }
- }
- return null;
- }
-
- public static List getAllJavaNonFlexProjects() throws CoreException {
- List nonFlexJavaProjects = new ArrayList();
- IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
- for (int i = 0; i < projects.length; i++) {
- if (projects[i].isAccessible() && projects[i].hasNature(JavaCore.NATURE_ID) && !projects[i].hasNature(IModuleConstants.MODULE_NATURE_ID)) {
- nonFlexJavaProjects.add(projects[i]);
- }
- }
- return nonFlexJavaProjects;
- }
-
- /**
- * This method will retrieve the context root for the associated workbench module which is used
- * by the server at runtime. This method is not yet completed as the context root has to be
- * abstracted and added to the workbenchModule model. This API will not change though. Returns
- * null for now.
- *
- * @return String value of the context root for runtime of the associated module
- */
- public static String getServerContextRoot(IProject project) {
- return ComponentUtilities.getServerContextRoot(project);
- }
-
- /**
- * This method will set the context root on the associated workbench module with the given
- * string value passed in. This context root is used by the server at runtime. This method is
- * not yet completed as the context root still needs to be abstracted and added to the workbench
- * module model. This API will not change though. Does nothing as of now.
- *
- * @param contextRoot
- * string
- */
- public static void setServerContextRoot(IProject project, String contextRoot) {
- ComponentUtilities.setServerContextRoot(project, contextRoot);
- }
-
- /**
- * @param project
- * @return true, if jee version 5.0 (or their respective ejb, web, app versions)
- * , it must be noted that this method only looks at the facet & their versions to determine
- * the jee level. It does not read deployment descriptors for performance reasons.
- */
- public static boolean isJEEProject(IProject project){
- boolean ret = false;
-
- IFacetedProject facetedProject;
- try {
- facetedProject = ProjectFacetsManager.create(project);
- if (facetedProject == null)
- return false;
- if(isEARProject(facetedProject)){
- IProjectFacet earFacet = ProjectFacetsManager.getProjectFacet(IModuleConstants.JST_EAR_MODULE);
- ret = facetedProject.hasProjectFacet(earFacet.getVersion(J2EEVersionUtil.convertVersionIntToString(J2EEVersionConstants.JEE_5_0_ID)));
- } else if(isDynamicWebProject(facetedProject)){
- IProjectFacet webFacet = ProjectFacetsManager.getProjectFacet(IModuleConstants.JST_WEB_MODULE);
- ret = facetedProject.hasProjectFacet(webFacet.getVersion(J2EEVersionUtil.convertVersionIntToString(J2EEVersionUtil.convertJ2EEVersionIDToWebVersionID(J2EEVersionConstants.JEE_5_0_ID))));
- } else if(isEJBProject(facetedProject)){
- IProjectFacet ejbFacet = ProjectFacetsManager.getProjectFacet(IModuleConstants.JST_EJB_MODULE);
- ret = facetedProject.hasProjectFacet(ejbFacet.getVersion(J2EEVersionUtil.convertVersionIntToString(J2EEVersionUtil.convertJ2EEVersionIDToEJBVersionID(J2EEVersionConstants.JEE_5_0_ID))));
- } else if(isApplicationClientProject(facetedProject)){
- IProjectFacet appFacet = ProjectFacetsManager.getProjectFacet(IModuleConstants.JST_APPCLIENT_MODULE);
- ret = facetedProject.hasProjectFacet(appFacet.getVersion(J2EEVersionUtil.convertVersionIntToString(J2EEVersionConstants.JEE_5_0_ID)));
- }
- } catch (CoreException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return ret;
- }
-
- /**
- * @param project
- * @return true, if j2ee version 1.2, 1.3, 1.4 (or their respective ejb, web, app versions)
- * , it must be noted that this method only looks at the facet & their versions to determine
- * the j2ee level. It does not read deployment descriptors for performance reasons.
- */
- public static boolean isLegacyJ2EEProject(IProject project){
- boolean ret = false;
-
- IFacetedProject facetedProject;
- try {
- facetedProject = ProjectFacetsManager.create(project);
- if (facetedProject == null)
- return false;
-
- if(isEARProject(facetedProject)){
- IProjectFacet earFacet = ProjectFacetsManager.getProjectFacet(IModuleConstants.JST_EAR_MODULE);
- ret = (facetedProject.hasProjectFacet(earFacet.getVersion(J2EEVersionUtil.convertVersionIntToString(J2EEVersionConstants.J2EE_1_4_ID)))
- || facetedProject.hasProjectFacet(earFacet.getVersion(J2EEVersionUtil.convertVersionIntToString(J2EEVersionConstants.J2EE_1_3_ID)))
- || facetedProject.hasProjectFacet(earFacet.getVersion(J2EEVersionUtil.convertVersionIntToString(J2EEVersionConstants.J2EE_1_2_ID)))
- );
- } else if(isDynamicWebProject(facetedProject)){
- IProjectFacet webFacet = ProjectFacetsManager.getProjectFacet(IModuleConstants.JST_WEB_MODULE);
- ret = (facetedProject.hasProjectFacet(webFacet.getVersion(J2EEVersionUtil.convertVersionIntToString(J2EEVersionUtil.convertJ2EEVersionIDToWebVersionID(J2EEVersionConstants.J2EE_1_4_ID))))
- || facetedProject.hasProjectFacet(webFacet.getVersion(J2EEVersionUtil.convertVersionIntToString(J2EEVersionUtil.convertJ2EEVersionIDToWebVersionID(J2EEVersionConstants.J2EE_1_3_ID))))
- || facetedProject.hasProjectFacet(webFacet.getVersion(J2EEVersionUtil.convertVersionIntToString(J2EEVersionUtil.convertJ2EEVersionIDToWebVersionID(J2EEVersionConstants.J2EE_1_2_ID))))
- );
- } else if(isEJBProject(facetedProject)){
- IProjectFacet ejbFacet = ProjectFacetsManager.getProjectFacet(IModuleConstants.JST_EJB_MODULE);
- ret = (facetedProject.hasProjectFacet(ejbFacet.getVersion(J2EEVersionUtil.convertVersionIntToString(J2EEVersionUtil.convertJ2EEVersionIDToEJBVersionID(J2EEVersionConstants.J2EE_1_4_ID))))
- || facetedProject.hasProjectFacet(ejbFacet.getVersion(J2EEVersionUtil.convertVersionIntToString(J2EEVersionUtil.convertJ2EEVersionIDToEJBVersionID(J2EEVersionConstants.J2EE_1_3_ID))))
- || facetedProject.hasProjectFacet(ejbFacet.getVersion(J2EEVersionUtil.convertVersionIntToString(J2EEVersionUtil.convertJ2EEVersionIDToEJBVersionID(J2EEVersionConstants.J2EE_1_2_ID))))
- );
- } else if(isApplicationClientProject(facetedProject)){
- IProjectFacet appFacet = ProjectFacetsManager.getProjectFacet(IModuleConstants.JST_APPCLIENT_MODULE);
- ret = (facetedProject.hasProjectFacet(appFacet.getVersion(J2EEVersionUtil.convertVersionIntToString(J2EEVersionConstants.J2EE_1_4_ID)))
- || facetedProject.hasProjectFacet(appFacet.getVersion(J2EEVersionUtil.convertVersionIntToString(J2EEVersionConstants.J2EE_1_3_ID)))
- || facetedProject.hasProjectFacet(appFacet.getVersion(J2EEVersionUtil.convertVersionIntToString(J2EEVersionConstants.J2EE_1_2_ID)))
- );
- } else if(isJCAProject(facetedProject)){
- IProjectFacet jcaFacet = ProjectFacetsManager.getProjectFacet(IModuleConstants.JST_CONNECTOR_MODULE);
- ret = (facetedProject.hasProjectFacet(jcaFacet.getVersion(J2EEVersionUtil.convertVersionIntToString(J2EEVersionUtil.convertJ2EEVersionIDToConnectorVersionID(J2EEVersionConstants.J2EE_1_4_ID))))
- || facetedProject.hasProjectFacet(jcaFacet.getVersion(J2EEVersionUtil.convertVersionIntToString(J2EEVersionUtil.convertJ2EEVersionIDToConnectorVersionID(J2EEVersionConstants.J2EE_1_3_ID))))
- );
- } else if(isUtilityProject(facetedProject)){
- // not sure if there is a better way
- ret = true;
- }
- } catch (CoreException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return ret;
- }
-
- /**
- * This method will return the an IVirtualComponent for the given module name. The method take
- * either moduleName or moduleName + ".module_extension" (module_extension = ".jar" || ".war" ||
- * ".rar") which allows users to get a IVirtualComponent for a given entry in an application.xml
- *
- * @return - a IVirtualComponent for module name
- * @deprecated - see {@link EarUtilities.getModule(IVirtualComponent earComponent, String moduleName)}
- */
- public static IVirtualComponent getModule(IVirtualComponent earComponent, String moduleName) {
- return EarUtilities.getModule(earComponent, moduleName);
- }
-
- /**
- * This method will return the list of IVirtualReferences for the J2EE module components
- * contained in this EAR application.
- *
- * @return - an array of IVirtualReferences for J2EE modules in the EAR
- * @deprecated - see {@link EarUtilities.getJ2EEModuleReferences(IVirtualComponent earComponent)}
- */
- public static IVirtualReference[] getJ2EEModuleReferences(IVirtualComponent earComponent) {
- return EarUtilities.getJ2EEModuleReferences(earComponent);
- }
-
- /**
- * This method will return the list of IVirtualReferences for all of the components contained in
- * an EAR application.
- *
- * @return - an array of IVirtualReferences for components in the EAR
- * @deprecated - see {@link EarUtilities.getComponentReferences(IVirtualComponent earComponent)}
- */
- public static IVirtualReference[] getComponentReferences(IVirtualComponent earComponent) {
- return EarUtilities.getComponentReferences(earComponent);
- }
-
- /**
- * This method will return the IVirtualReference to the component of the given name
- *
- * @return - IVirtualReference or null if not found
- * @deprecated - see {@link EarUtilities.getComponentReference(IVirtualComponent earComponent, String componentName)}
- */
- public static IVirtualReference getComponentReference(IVirtualComponent earComponent, String componentName) {
- return EarUtilities.getComponentReference(earComponent, componentName);
- }
-}

Back to the top