Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.jst.ws/src/org/eclipse/jst/ws/internal/common/ResourceUtils.java')
-rw-r--r--bundles/org.eclipse.jst.ws/src/org/eclipse/jst/ws/internal/common/ResourceUtils.java1919
1 files changed, 0 insertions, 1919 deletions
diff --git a/bundles/org.eclipse.jst.ws/src/org/eclipse/jst/ws/internal/common/ResourceUtils.java b/bundles/org.eclipse.jst.ws/src/org/eclipse/jst/ws/internal/common/ResourceUtils.java
deleted file mode 100644
index 21b03100b..000000000
--- a/bundles/org.eclipse.jst.ws/src/org/eclipse/jst/ws/internal/common/ResourceUtils.java
+++ /dev/null
@@ -1,1919 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 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
- * yyyymmdd bug Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060330 124667 kathy@ca.ibm.com - Kathy Chan
- * 20060421 136761 rsinha@ca.ibm.com - Rupam Kuehner
- * 20060424 115690 sengpl@ca.ibm.com - Seng Phung-Lu
- * 20060503 126819 rsinha@ca.ibm.com - Rupam Kuehner
- * 20080122 215866 trungha@ca.ibm.com - Trung Ha
- * 20080303 218696 ericdp@ca.ibm.com - Eric D. Peters, APIs using EJBArtifactEdit not able to deal with some EJB 3.0 beans properly
- *******************************************************************************/
-package org.eclipse.jst.ws.internal.common;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.URL;
-import java.net.URLEncoder;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.core.JavaConventions;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jem.util.emf.workbench.ProjectUtilities;
-import org.eclipse.jst.j2ee.applicationclient.componentcore.util.AppClientArtifactEdit;
-import org.eclipse.jst.j2ee.componentcore.util.EARArtifactEdit;
-import org.eclipse.jst.j2ee.ejb.EnterpriseBean;
-import org.eclipse.jst.j2ee.ejb.componentcore.util.EJBArtifactEdit;
-import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities;
-import org.eclipse.jst.javaee.ejb.SessionBean;
-import org.eclipse.jst.ws.internal.plugin.WebServicePlugin;
-import org.eclipse.wst.common.componentcore.ComponentCore;
-import org.eclipse.wst.common.componentcore.internal.StructureEdit;
-import org.eclipse.wst.common.componentcore.internal.WorkbenchComponent;
-import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
-import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
-import org.eclipse.wst.common.componentcore.resources.IVirtualResource;
-import org.eclipse.wst.common.environment.EnvironmentService;
-import org.eclipse.wst.common.environment.ILog;
-import org.eclipse.wst.server.core.IModule;
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.core.ServerUtil;
-import org.eclipse.wst.server.core.model.IURLProvider;
-
-/**
- * This class contains useful methods for working with Eclipse resources.
- */
-public final class ResourceUtils {
-
- // Keeps the IWorkspaceRoot hanging around. See getWorkspaceRoot().
- private static IWorkspaceRoot root_ = null;
-
- // Keeps the IWorkspace hanging around. See getWorkspace().
-
- private static IWorkspace workspace_ = null;
-
- /**
- * As returned by {@link #getProjectType getProjectType()}, indicates that
- * the given project has no Java or Web nature.
- */
- public static byte PROJECT_TYPE_NONE = 0;
-
- /**
- * As returned by {@link #getProjectType getProjectType()}, indicates that
- * the given project has a Java project nature.
- */
- public static byte PROJECT_TYPE_JAVA = 1;
-
- /**
- * As returned by {@link #getProjectType getProjectType()}, indicates that
- * the given project has a Web project nature.
- */
- public static byte PROJECT_TYPE_WEB = 2;
-
- /**
- * As returned by {@link #getProjectType getProjectType()}, indicates that
- * the given project has an EJB project nature.
- */
- public static byte PROJECT_TYPE_EJB = 4;
-
- /**
- * As returned by {@link #getProjectType getProjectType()}, indicates that
- * the given project has an Application client project nature.
- */
- public static byte PROJECT_TYPE_APPCLIENT = 8;
-
- /**
- * The SOAP rpcrouter servlet extension to be added to web project URL
- */
- public static String SERVLET_EXT = "/servlet/rpcrouter";
-
- private static final String DEFAULT_CLIENT_WEB_PROJECT_EXT = "Client";
- private static final String DEFAULT_CLIENT_EJB_PROJECT_EXT = "EJBClient";
- private static final String DEFAULT_EJB_PROJECT_NAME = "WebServiceEJBProject";
- private static final String DEFAULT_EJB_COMPONENT_NAME = "WebServiceEJB";
- private static final String DEFAULT_WEB_PROJECT_NAME = "WebServiceProject";
- private static final String DEFAULT_WEB_COMPONENT_NAME = "WebServiceProject";
- private static final String DEFAULT_ROUTER_PROJECT_EXT = "Router";
-
- private static final String DEFAULT_SERVICE_EAR_PROJECT_NAME = "WebServiceProjectEAR";
- private static final String DEFAULT_SERVICE_EAR_COMPONENT_NAME = "WebServiceProjectEAR";
- private static final String DEFAULT_CLIENT_EAR_PROJECT_NAME = "WebServiceProjectClientEAR";
- private static final String DEFAULT_CLIENT_EAR_COMPONENT_NAME = "WebServiceProjectClientEAR";
-
- private static final String DEFAULT_EAR_EXT = "EAR";
-
- /**
- * Returns the IWorkspaceRoot object.
- * @return The IWorkspaceRoot object.
- */
- public static IWorkspaceRoot getWorkspaceRoot() {
- if (root_ == null) {
- root_ = ResourcesPlugin.getWorkspace().getRoot();
- }
- return root_;
- }
-
- /**
- * Returns the IWorkspace object.
- * @return The IWorkspace object.
- */
- public static IWorkspace getWorkspace() {
- if (workspace_ == null) {
- if (root_ == null) {
- root_ = ResourcesPlugin.getWorkspace().getRoot();
- }
- workspace_ = root_.getWorkspace();
- }
- return workspace_;
- }
-
- /**
- * Returns an {@link org.eclipse.core.resources.IResource IResource}of the
- * given absolute pathname or null if no such resource exists.
- *
- * @param absolutePathname
- * The absolute path of the resource.
- * @return The <code>IResource</code>.
- */
- public static IResource findResource(String absolutePathname) {
- if (absolutePathname == null) {
- return null;
- }
- return findResource(new Path(absolutePathname));
- }
-
- /**
- * Returns an {@link org.eclipse.core.resources.IResource IResource}of the
- * given absolute path or null if no such resource exists.
- *
- * @param absolutePath
- * The absolute <code>IPath</code> of the resource.
- * @return The <code>IResource</code>.
- */
- public static IResource findResource(IPath absolutePath) {
- if (absolutePath == null) {
- return null;
- }
- return ResourceUtils.getWorkspaceRoot().findMember(absolutePath);
- }
-
- /**
- * Returns an {@link org.eclipse.core.resources.IResource IResource}of the
- * given file system relative pathname and project or null if no such resource exists.
- *
- * @param filePath File system relative pathname
- * @param project Project
- * @return The <code>IResource</code>.
- */
- public static IResource findResourceAtLocation(String filePath, IProject project) {
-
- return findResource(findPathAtLocation( new Path(filePath), project));
- }
-
- /**
- * This method attempts to convert a path that is relative to a file system
- * to a path that is relative to the workspace. Instead of comparing the
- * filePath with the install location of the workspace (i.e.
- * Platform.getLocation()), the filePath is compared with the location of the project
- * since the project could be in a location other than the the default location relative to the
- * workspace.
- *
- * @param filePath File path relative to a file system
- * @param project The project the file is in
- * @return Path relative to the workspace
- */
- public static IPath findPathAtLocation(IPath filePath, IProject project) {
- IPath result = null;
-
- IPath projectLocation = project.getLocation();
-
- if (projectLocation.matchingFirstSegments(filePath) == projectLocation
- .segmentCount()) {
- filePath = filePath.removeFirstSegments(projectLocation
- .segmentCount() - 1);
- result = filePath.setDevice(null);
- }
-
- return result;
- }
- /**
- * Validates the given string as a name for a resource of the given type(s).
- * This method obeys the contract of
- * {@link org.eclipse.core.resources.IWorkspace#validateName IWorkspace.validateName()}.
- *
- * @param segment
- * The path to validate.
- * @param typeMask
- * The <code>IResource</code> type or types.
- * @return The status with a value if <code>IStatus.OK</code> if the path
- * is valid, or with appropriate severity and message information if
- * the path is not valid.
- *
- * @deprecated not used
- */
- public static IStatus validateName(String segment, int typeMask) {
- return getWorkspace().validateName(segment, typeMask);
- }
-
- /**
- * Validates the given string as the path of a resource of the given
- * type(s). This method obeys the contract of
- * {@link org.eclipse.core.resources.IWorkspace#validatePath IWorkspace.validatePath()}.
- *
- * @param path
- * The path to validate.
- * @param typeMask
- * The <code>IResource</code> type or types.
- * @return The status with a value if <code>IStatus.OK</code> if the path
- * is valid, or with appropriate severity and message information if
- * the path is not valid.
- * @deprecated not used
- */
- public static IStatus validatePath(String path, int typeMask) {
- return getWorkspace().validatePath(path, typeMask);
- }
-
- /**
- * Validates the given Java type name.
- *
- * @param typeName
- * The Java type name.
- * @return The status with a value of <code>IStatus.OK</code> if the name
- * is valid, or with appropriate severity and message information if
- * name is not valid. The primitive types (boolean, char, byte,
- * short, int, long, float, double) are valid. Arrays of valid types
- * are themselves valid.
- * @deprecated use JavaConventions in the jdt core
- */
- public static IStatus validateJavaTypeName(String typeName) {
- //
- // Strip off the trailing array bits, if any.
- //
- int a = typeName.indexOf('[');
- if (a > 0) {
- typeName = typeName.substring(0, a);
- }
- //
- // Allow primitives.
- //
- if (isPrimitiveJavaType(typeName)) {
- return new Status(IStatus.OK, WebServicePlugin.ID, 0, "", null);
- }
- //
- // Defer to JavaConventions.
- //
- return JavaConventions.validateJavaTypeName(typeName);
- }
-
- /**
- * Returns true if the given <code>typeName</code> is a Java primitive
- * (boolean, char, byte, short, int, long, float, double).
- *
- * @return True if the type name is a Java primitive.
- *
- * @deprecated
- */
- public static boolean isPrimitiveJavaType(String typeName) {
- return (typeName.equals("boolean") || typeName.equals("char")
- || typeName.equals("byte") || typeName.equals("short")
- || typeName.equals("int") || typeName.equals("long")
- || typeName.equals("float") || typeName.equals("double"));
- }
-
- /**
- * Returns the handle of the IProject at the beginning of the given
- * <code>absolutePath</code>. Neither the given path nor the project need
- * exist in the workspace. The path must be absolute, and must consist of at
- * least one segment.
- *
- * @return An IProject handle for the project at the beginning of the given
- * <code>absolutePath</code>, or null if the path does not
- * specify a project.
- */
- public static IProject getProjectOf(IPath absolutePath) {
- if (absolutePath.isAbsolute()) {
- String projectName = absolutePath.segment(0);
- if (projectName != null) {
- return getWorkspaceRoot().getProject(projectName);
- }
- }
- return null;
- }
-
- /**
- *
- * @param absolutePath
- * @return
- */
- public static IVirtualComponent getComponentOf(IPath absolutePath){
- if (absolutePath.isAbsolute()) {
- String projectName = absolutePath.segment(0);
- IProject project = getWorkspaceRoot().getProject(projectName);
- if (projectName != null) {
- return ComponentCore.createComponent(project);
- }
- }
- return null;
- }
-
- public static IVirtualComponent getComponentOf(IResource res)
- {
- IVirtualResource[] vresources = ComponentCore.createResources(res);
- IVirtualComponent vcomp = null;
- if (vresources != null && vresources.length>0)
- {
- IVirtualResource vres = vresources[0];
- vcomp = vres.getComponent();
- }
- return vcomp;
- }
-
-
- /**
- * Returns true if the given <code>project</code> is a Java Project.
- *
- * @param project
- * The project.
- * @return True if the project is a Java Project.
- */
- public static boolean isJavaProject(IProject project) {
- try
- {
- return project.hasNature(JavaCore.NATURE_ID);
- }
- catch (CoreException ce)
- {
- //Return false if CoreException occurs while checking nature.
- return false;
- }
- }
-
- /**
- * Returns true if the given <code>project</code> is a Java Project.
- *
- * @param project
- * The project.
- * @return True if the project is a Java Project.
- */
- public static boolean isTrueJavaProject(IProject project) {
- return (!isWebProject(project) && !isAppClientProject(project) && !isEARProject(project)
- && !isEJBProject(project) && isJavaProject(project));
- /*
- * try { String[] natures = project.getDescription().getNatureIds();
- * return (natures.length == 1 &&
- * natures[0].equals(JavaCore.NATURE_ID)); } catch (CoreException e) { }
- * return false;
- */
- }
-
- /**
- * Returns true if the given <code>project</code> is a Web Project.
- * Note: For components; use J2EEUtils.isWebComponent()
- * @param project
- * The project.
- * @return True if the project is a Web Project.
- *
- * @deprecated
- */
- public static boolean isWebProject(IProject project) {
- boolean isWeb = false;
- StructureEdit mc = null;
- try {
- mc = StructureEdit.getStructureEditForRead(project);
- WorkbenchComponent[] wbcs = mc.getWorkbenchModules();
- if (wbcs.length!=0) {
- //isWeb = WebArtifactEdit.isValidWebModule(wbcs[0]);
- }
- }
- catch(Exception ex){
- // handle exception
- }
- finally{
- if (mc!=null)
- mc.dispose();
- }
-
- return isWeb;
- }
-
- /**
- * Note: for components; use J2EEUtils.isEARComponent()
- * @param project
- * @return
- *
- * @deprecated
- */
- public static boolean isEARProject(IProject project){
- boolean isEAR = false;
- StructureEdit mc = null;
- try {
- mc = StructureEdit.getStructureEditForRead(project);
- WorkbenchComponent[] wbcs = mc.getWorkbenchModules();
- if (wbcs.length!=0) {
- EARArtifactEdit earEdit = null;
- try {
- //earEdit = EARArtifactEdit.getEARArtifactEditForRead(wbcs[0]);
- if (earEdit!=null){
- isEAR = true;
- }
- }
- finally{
- if (earEdit!=null)
- earEdit.dispose();
- }
- }
- }
- catch(Exception ex){}
- finally{
- if (mc!=null)
- mc.dispose();
- }
-
- return isEAR;
- }
- /**
- * Returns true if the given <code>project</code> is an EJB 1.1 or EJB 2.0
- * Project.
- * Note: for components, use J2EEUtils.isEJBComponent
- * @param project
- * The project.
- * @return True if the project is an EJB 1.1 or an EJB 2.0 Project.
- *
- * @deprecated
- *
- */
- public static boolean isEJBProject(IProject project) {
- boolean isEJB = false;
- StructureEdit mc = null;
- try {
- mc = StructureEdit.getStructureEditForRead(project);
- WorkbenchComponent[] wbcs = mc.getWorkbenchModules();
- if (wbcs.length!=0) {
- EJBArtifactEdit ejbEdit = null;
- try {
- //ejbEdit = EJBArtifactEdit.getEJBArtifactEditForRead(wbcs[0]);
- if (ejbEdit!=null){
- isEJB = true;
- }
- }
- finally{
- if (ejbEdit!=null)
- ejbEdit.dispose();
- }
- }
- }
- catch(Exception ex){}
- finally{
- if (mc!=null)
- mc.dispose();
- }
-
- return isEJB;
- }
-
- /**
- * Returns true if the given <code>project</code> is an Application Client
- * Project.
- * Note: for components, use J2EEUtils.isAppClientComponent()
- * @param project
- * The project.
- * @return True if the project is an Application Client Project
- *
- * @deprecated
- */
- public static boolean isAppClientProject(IProject project) {
- boolean isAppClient = false;
- StructureEdit mc = null;
- try {
- mc = StructureEdit.getStructureEditForRead(project);
- WorkbenchComponent[] wbcs = mc.getWorkbenchModules();
- if (wbcs.length!=0) {
- AppClientArtifactEdit appClientEdit = null;
- try {
- //appClientEdit = AppClientArtifactEdit.getAppClientArtifactEditForRead(wbcs[0]);
- if (appClientEdit!=null){
- isAppClient = true;
- }
- }
- finally{
- if (appClientEdit!=null)
- appClientEdit.dispose();
- }
- }
- }
- catch(Exception ex){}
- finally{
- if (mc!=null)
- mc.dispose();
- }
-
- return isAppClient;
- }
-
- /**
- * Returns the type of the given <code>project</code> as a bitmask.
- * Relevant bitmask values are:
- * <ol>
- * <li>{@link #PROJECT_TYPE_JAVA PROJECT_TYPE_JAVA}
- * <li>{@link #PROJECT_TYPE_WEB PROJECT_TYPE_WEB}
- * <li>{@link #PROJECT_TYPE_EJB PROJECT_TYPE_EJB}
- * <li>{@link #PROJECT_TYPE_NONE PROJECT_TYPE_NONE}
- * </ol>
- *
- * @param project
- * The project.
- * @return The type bitmask of the project.
- *
- * @deprecated use getComponentType
- */
- public static byte getProjectType(IProject project) {
- byte projectType = PROJECT_TYPE_NONE;
- if (ResourceUtils.isJavaProject(project)) {
- projectType |= PROJECT_TYPE_JAVA;
- }
- if (ResourceUtils.isWebProject(project)) {
- projectType |= PROJECT_TYPE_WEB;
- }
- if (ResourceUtils.isEJBProject(project)) {
- projectType |= PROJECT_TYPE_EJB;
- }
- return projectType;
- }
-
- /**
- * Returns the component type id as defined in IModuleConstants
- * i.e. IModuleConstants.JST_WEB_MODULE = "jst.web"
- * @param project
- * @return
- */
- public static String getComponentType(IProject project){
- return J2EEProjectUtilities.getJ2EEProjectType(project);
- }
-
- /**
- * Returns the component type
- * @param component
- * @return
- */
- public static String getComponentType(IVirtualComponent component){
- return getComponentType(component.getProject());
- }
-
- /**
- * Returns WebModule Deployable of the <code>project</code> as an
- * <code>IDeployable</code>, or null if the project has no Web nature.
- *
- * @param project
- * The project.
- * @return WebModule Deployable of the <code>project</code> or null if the
- * project has no Web nature.
- */
- public static IModule getModule(IProject project) {
- return ServerUtil.getModule(project);
-}
-
-// Workaround for 113621
-//public static IModule getModule(IProject project) {
-// IModule[] modules = ServerUtil.getModules(project);
-// if (modules!=null && modules.length!=0) {
-// return modules[0];
-// }
-// return null;
-//}
-
- /**
- * Returns the build output location of the <code>project</code> as an
- * <code>IPath</code>, or null if the project has no Java nature.
- * i.e. WP\.deployables\webModule\WEB-INF\classes
- * @param project
- * The project.
- * @return The build output location of the <code>project</code> or null
- * if the project has no Java nature.
- * @deprecated not used
- */
- public static IPath getJavaOutputLocation(IProject project) {
- IPath outputLocation = null;
- try {
- IJavaProject javaProject = JavaCore.create(project);
- if (javaProject != null) {
- outputLocation = javaProject.getOutputLocation();
- }
- } catch (JavaModelException e) {
- }
- ILog log = EnvironmentService.getEclipseLog();
- log.log(ILog.INFO, 5032, ResourceUtils.class, "getJavaOutputLocation",
- "project=" + project + ",outputLocation=" + outputLocation);
-
- return outputLocation;
- }
-
- /**
- * Returns a build source location of the <code>project</code> as an
- * <code>IPath</code>, or null if the project either has no Java nature
- * or if the project's build classpath contains no folders local to the
- * project. If the project has more than one of its own folders on the build
- * classpath, then one of them is chosen arbitrarily as the build source
- * location. To work with all entries on the build classpath, use
- * {@link #getJavaPackageFragmentRoots getJavaPackageFragmentRoots()}or
- * {@link #getJavaClasspath getJavaClasspath()}.
- *
- * @param project
- * The project.
- * @return A build source location of the <code>project</code> or null if
- * the project has no Java nature or if the project's build
- * classpath contains no folders local to the project.
- */
-
- public static IPath getJavaSourceLocation(IProject project) {
- IPath sourceLocation = null;
- IPackageFragmentRoot[] fragmentRoots = getJavaPackageFragmentRoots(project);
- for (int i = 0; i < fragmentRoots.length && sourceLocation == null; i++) {
- try {
- IResource fragmentRoot = fragmentRoots[i]
- .getCorrespondingResource();
- if (fragmentRoot != null
- && (fragmentRoot.getProject().equals(project))
- && (fragmentRoot.getType() != IResource.FILE)) {
- sourceLocation = fragmentRoot.getFullPath();
- }
- } catch (JavaModelException e) {
- }
- }
-
- ILog log = EnvironmentService.getEclipseLog();
- log.log(ILog.INFO, 5030, ResourceUtils.class, "getJavaSourceLocation",
- "project=" + project + ",sourceLocation=" + sourceLocation);
-
- return sourceLocation;
- }
-
-
- /**
- * Returns the "JavaSource" folder
- * @param project
- * @return
- */
- /*
- public static IPath getJavaSourceLocation(IProject project){
- IVirtualComponent component = ComponentCore.createComponent(project);
- return getJavaSourceLocation(component);
- }
- */
- /**
- * Returns the JavaSource location folder
- * @param comp
- * @return
- */
- public static IPath getJavaSourceLocation(IVirtualComponent comp){
- if (comp!=null){
- IVirtualFolder folder = comp.getRootFolder().getFolder(new Path("/WEB-INF/classes"));
- return folder.getWorkspaceRelativePath();
- }
- return null;
- }
-
- /**
- * Returns the JavaSource locations in each project
- * @param project
- * @return
- */
- public static IPath[] getAllJavaSourceLocations(IProject project) {
- Vector pathVector = new Vector();
- IPackageFragmentRoot[] fragmentRoots = getJavaPackageFragmentRoots(project);
-
- for (int i = 0; i < fragmentRoots.length; i++) {
- try {
- IResource fragmentRoot = fragmentRoots[i].getCorrespondingResource();
- if (fragmentRoot != null && (fragmentRoot.getProject().equals(project))
- && (fragmentRoot.getType() != IResource.FILE)) {
- pathVector.add(fragmentRoot.getFullPath());
- }
- } catch (JavaModelException e) {
- }
- }
- return (IPath[]) pathVector.toArray(new Path[pathVector.size()]);
- }
-
- public static IPath[] getAllJavaSourceLocations(IVirtualComponent[] components) {
-
- if (components!=null){
- List javaSourcePaths = new ArrayList();
- for (int i=0;i<components.length;i++){
- IPath path = getJavaSourceLocation(components[i]);
- javaSourcePaths.add(path);
- }
- return (IPath[])javaSourcePaths.toArray(new IPath[0]);
- }
- return null;
- }
-
- /**
- * Returns a build source package fragment root of the <code>project</code>
- * as an <code>IPackageFragmentRoot</code>, or null if the project either
- * has no Java nature or if the project's build classpath contains no
- * folders local to the project. If the project has more than one of its own
- * folders on the build classpath, then one of them is chosen arbitrarily as
- * the build source location.
- *
- * @param project
- * The project.
- * @return A build source package fragment root of the <code>project</code>
- * or null if the project has no Java nature or if the project's
- * build classpath contains no folders local to the project.
- *
- * @deprecated not used
- */
- public static IPackageFragmentRoot getJavaSourcePackageFragmentRoot(IProject project) {
- IPackageFragmentRoot packageFragmentRoot = null;
- IPath javaSourceLocation = getJavaSourceLocation(project);
- try {
- IJavaProject javaProject = JavaCore.create(project);
- if (javaProject != null) {
- packageFragmentRoot = javaProject.findPackageFragmentRoot(javaSourceLocation);
- }
- } catch (JavaModelException e) {
- }
- return packageFragmentRoot;
- }
-
- /**
- * Returns the package fragment roots of the <code>project</code> as an
- * array of <code>IPackageFragmentRoot</code> objects. If the project has
- * no Java nature then the returned array will be of length zero.
- *
- * @param project
- * The project.
- * @return The package fragment roots of the <code>project</code>.
- */
- public static IPackageFragmentRoot[] getJavaPackageFragmentRoots(IProject project) {
- try {
- IJavaProject javaProject = JavaCore.create(project);
- if (javaProject != null) {
- IPackageFragmentRoot[] packageFragmentRoots = javaProject
- .getPackageFragmentRoots();
- return packageFragmentRoots;
- }
- } catch (JavaModelException e) {
- }
- return new IPackageFragmentRoot[0];
- }
-
- /**
- * Returns the build classpath entries of the <code>project</code> as an
- * array of <code>IClasspathEntry</code> objects. If the project has no
- * Java nature then the returned array will be of length zero.
- *
- * @param project
- * The project.
- * @return The classpath entries of the <code>project</code>.
- *
- * @deprecated not used
- */
- public static IClasspathEntry[] getJavaClasspath(IProject project) {
- try {
- IJavaProject javaProject = JavaCore.create(project);
- if (javaProject != null) {
- IClasspathEntry[] classpathEntries = javaProject.getRawClasspath();
- return classpathEntries;
- }
- } catch (JavaModelException e) {
- }
- return new IClasspathEntry[0];
- }
-
- /**
- *
- * @param project
- * @return
- */
- public static IFolder getWebComponentServerRoot(IProject project){
-
- IFolder webModuleServerRoot = null;
- IVirtualComponent vc = ComponentCore.createComponent(project);
- if (vc.exists())
- webModuleServerRoot = J2EEUtils.getOutputContainerRoot(vc);
-
- return webModuleServerRoot;
- }
-
- /**
- *
- * @param project
- * @return
- */
- public static IPath getWebComponentServerRootPath(IProject project){
-
- IContainer webModuleServerRoot = null;
- IVirtualComponent vc = ComponentCore.createComponent(project);
- if (vc != null && vc.exists()){
- IContainer[] containers = J2EEProjectUtilities.getOutputContainers(project.getProject());
- if (containers.length > 0)
- webModuleServerRoot = containers[0];
- }
-
- if (webModuleServerRoot != null)
- return webModuleServerRoot.getFullPath();
- return null;
- }
-
- /**
- * Returns the URL string corresponding to the web server module root of the
- * project in a server instance or null if the project has no Web nature or
- * has no association to a server instance.
- *
- * @param project
- * The project.
- * @return The web server module root URL or null if the project has no Web
- * nature or has no association to a server instance.
- * @deprecated use getWebComponentURL(..) which belongs in ServerUtils
- */
- public static String getWebProjectURL(IProject project,
- String serverFactoryId, IServer server) {
-
- String webProjectURL = null;
- IModule module = getModule(project);
- if (module != null) {
- IServer serverInstance = ServerUtils.getServerForModule(module,
- serverFactoryId, server, true, new NullProgressMonitor());
- if (serverInstance != null) {
-// URL url = ((IURLProvider) serverInstance.getDelegate()).getModuleRootURL(module);
- URL url = ((IURLProvider)serverInstance.getAdapter(IURLProvider.class)).getModuleRootURL(module);
- if (url != null) {
- String s = url.toString();
- webProjectURL = (s.endsWith("/") ? s.substring(0, s
- .length() - 1) : s);
- }
- }
- }
-
- ILog log = EnvironmentService.getEclipseLog();
- log.log(ILog.INFO, 5036, ResourceUtils.class, "getWebProjectURL",
- "project=" + project + ",webProjectURL=" + webProjectURL);
-
- return webProjectURL;
- }
-
- /**
- * Returns the forged URL string corresponding to the web server module root
- * of the project in a server instance or null if the project has no Web
- * nature or has no association to a server instance.
- *
- * @param project
- * @return The web server module root URL or null if the project has no Web
- * nature or has no association to a server instance.
- * @deprecated not used
- */
-// public static String getForgedWebProjectURL(IProject project, String serverFactoryId, IServer server){
-//
-// String webProjectURL = null;
-// IModule module = getModule(project);
-// if (module != null)
-// {
-// //IServer serverInstance = ServerUtils.getServerForModule(module,
-// // serverFactoryId, server, true, new NullProgressMonitor());
-// if (server != null)
-// {
-// String hostname = server.getHost();
-//
-// // get ServerPort
-// int portNumber = 0;
-//
-// ServerPort[] ports = server.getServerPorts(null);
-// ServerPort port = null;
-// for (int it = 0; it<ports.length; it++)
-// {
-// ServerPort p = ports[it];
-// String protocol = p.getProtocol();
-// if (protocol != null && protocol.trim().toLowerCase().equals("http"))
-// {
-// port = p;
-// portNumber = p.getPort();
-// break;
-// }
-// }
-//
-//
-//
-// URL url = null;
-// try {
-// url = new URL("http", hostname, portNumber, "");
-// }
-// catch(Exception e){
-// e.printStackTrace();
-// }
-//
-//
-// //URL url = ((IURLProvider) serverInstance.getDelegate()).getModuleRootURL(module);
-//
-// if (url != null)
-// {
-// String s = url.toString();
-// webProjectURL = s + "/"+project.getName();
-// //webProjectURL = (s.endsWith("/") ? s.substring(0,s.length()-1) : s);
-// }
-// }
-// }
-// ILog log = new EclipseLog();
-// log.log(ILog.INFO, 5036, ResourceUtils.class, "getWebProjectURL", "project="+project+",webProjectURL="+webProjectURL);
-// return webProjectURL;
-// }
- /**
- * Returns the URL string corresponding to the web server module root of the
- * project in a server instance or null if the project has no Web nature or
- * has no association to a server instance.
- *
- * @param project
- * The project.
- * @return The web server module root URL or null if the project has no Web
- * nature or has no association to a server instance.
- * @deprecated belongs in ServerUtils
- *
- */
- public static String getWebProjectURL(IProject project) {
- String webProjectURL = null;
- IModule module = getModule(project);
- if (module != null) {
- IServer serverInstance = ServerUtils.getServerForModule(module);
- if (serverInstance != null) {
- URL url = ((IURLProvider)serverInstance.getAdapter(IURLProvider.class)).getModuleRootURL(module);
- if (url != null) {
- String s = url.toString();
- webProjectURL = (s.endsWith("/") ? s.substring(0, s
- .length() - 1) : s);
- }
- }
- }
- ILog log = EnvironmentService.getEclipseLog();
- log.log(ILog.INFO, 5037, ResourceUtils.class, "getWebProjectURL",
- "project=" + project + ",webProjectURL=" + webProjectURL);
-
- return webProjectURL;
- }
-
- /**
- *
- * @param project
- * @return
- *
- * @deprecated should be in ServerUtils
- */
- public static String getEncodedWebProjectURL(IProject project) {
- String url = getWebProjectURL(project);
- if (url != null) {
- int index = url.lastIndexOf('/');
- if (index != -1) {
- StringBuffer encodedURL = new StringBuffer();
- encodedURL.append(url.substring(0, index + 1));
- try {
- String ctxtRoot = URLEncoder.encode(url.substring(index + 1, url.length()), "UTF-8");
- int plusIndex = ctxtRoot.indexOf('+');
- while (plusIndex != -1) {
- StringBuffer sb = new StringBuffer();
- sb.append(ctxtRoot.substring(0, plusIndex));
- sb.append("%20");
- sb.append(ctxtRoot.substring(plusIndex + 1, ctxtRoot
- .length()));
- ctxtRoot = sb.toString();
- plusIndex = ctxtRoot.indexOf('+');
- }
- encodedURL.append(ctxtRoot);
- }catch (IOException io){
- //handler exception
- }
- url = encodedURL.toString();
- }
- }
- return url;
- }
-
- /**
- * Given the <code>absolutePath</code> of a Java resource, returns the
- * package name of the resource or null if the resource is not properly
- * located in a project or folder on the build classpath or that is the
- * build output path.
- *
- * @param absolutePath
- * The absolute path of the Java resource.
- * @return the package name of the Java resource.
- */
- public static String getJavaResourcePackageName(IPath absolutePath) {
- try {
- IPath javaFolderPath = absolutePath.removeLastSegments(1);
- IProject project = getProjectOf(absolutePath);
- IJavaProject javaProject = JavaCore.create(project);
- if (javaProject != null) {
- IPackageFragment fragment = javaProject
- .findPackageFragment(javaFolderPath);
- if (fragment != null) {
- return fragment.getElementName();
- }
- IPath outputPath = getJavaOutputLocation(project);
- if (outputPath.isPrefixOf(javaFolderPath)) {
- IPath javaPackagePath = javaFolderPath
- .removeFirstSegments(outputPath.segmentCount());
- return javaPackagePath.isEmpty() ? null : javaPackagePath
- .toString().replace(IPath.SEPARATOR, '.');
- }
- }
- } catch (JavaModelException e) {
- }
- return null;
- }
-
- /**
- * Given the <code>absolutePath</code> of a Java resource, returns the
- * package name of the resource as a relative pathname or null if the
- * resource is not properly located in a project or folder on the build
- * classpath.
- *
- * @param absolutePath
- * The absolute path of the Java resource.
- * @return the package name of the Java resource as a relative path.
- */
- public static IPath getJavaResourcePackagePath(IPath absolutePath) {
- String packageName = ResourceUtils
- .getJavaResourcePackageName(absolutePath);
- return (packageName == null ? null : new Path(packageName.replace('.',
- IPath.SEPARATOR)));
- }
-
- /**
- * Given the <code>absolutePath</code> of a Java resource, returns the
- * absolute path of the project or folder that is on the build classpath or
- * is the build output path and that contains the fully qualified Java
- * resource, or null if no such project or folder exists.
- *
- * @param absolutePath
- * The absolute path of the Java resource.
- * @return The absolute path of the project or folder containing the fully
- * qualified Java resource.
- * @deprecated not used
- */
- public static IPath getJavaResourceRootPath(IPath absolutePath) {
- try {
- IProject project = getProjectOf(absolutePath);
- IJavaProject javaProject = JavaCore.create(project);
- if (javaProject != null) {
- IPackageFragmentRoot[] pfrs = javaProject
- .getPackageFragmentRoots();
- for (int i = 0; i < pfrs.length; i++) {
- IResource fragmentRoot = pfrs[i].getCorrespondingResource();
- if (fragmentRoot != null) {
- IPath fragmentPath = fragmentRoot.getFullPath();
- if (fragmentPath.isPrefixOf(absolutePath)) {
- return fragmentPath;
- }
- }
- }
- IPath outputPath = getJavaOutputLocation(project);
- if (outputPath.isPrefixOf(absolutePath)) {
- return outputPath;
- }
- }
- } catch (JavaModelException e) {
- }
- return null;
- }
-
- /**
- * Determines an URL (HTTP or FILE) to an Eclipse resource, returning the
- * URL string if successful and false otherwise. A value of null will
- * definitely be returned if any of the following conditions are not met:
- * <ol>
- * <li>The absolute path begins with a Web Project.
- * <li>The leading portion of the absolute path matches the path of the
- * container returned by {#link #getWebModuleServerRoot
- * getWebModuleServerRoot} for the project.
- * <li>The path does not lead to the WEB-INF folder or any descendent
- * thereof.
- * <li>The Web Project is associated with an explicit or default server
- * instance.
- * </ol>
- *
- * @param absolutePath
- * The absolute path of the resource.
- * @return The URL of the file, or null if no URL can be determined.
- * @deprecated not used
- */
-// public static String getURLFromPath(IPath absolutePath,
-// String serverFactoryId, IServer server) {
-// return getURLFromPath(absolutePath, getWebProjectURL(
-// getProjectOf(absolutePath), serverFactoryId, server));
-// }
-
- /**
- *
- * @param absolutePath
- * @param webProjectURL
- * @return
- * @deprecated not used
- */
-// public static String getURLFromPath(IPath absolutePath, String webProjectURL) {
-// StringBuffer url = new StringBuffer();
-// IProject project = getProjectOf(absolutePath);
-// IContainer webModuleServerRoot = getWebModuleServerRoot(project);
-// if (webModuleServerRoot != null) {
-// IPath webModuleServerRootPath = webModuleServerRoot.getFullPath();
-// if (webModuleServerRootPath.isPrefixOf(absolutePath)) {
-// int numSegment = webModuleServerRootPath.segmentCount();
-// int numSegmentFromPath = absolutePath.segmentCount();
-// if (numSegmentFromPath > numSegment) {
-// String nextSegment = absolutePath.segment(numSegment);
-// // check if the segment after the WebModuleServerRoot is
-// // WEB-INF (ignoring case)
-// if (nextSegment != null && !nextSegment.equalsIgnoreCase("WEB-INF")) {
-// IPath relativePath = absolutePath.removeFirstSegments(numSegment);
-// if (webProjectURL != null)
-// url.append(webProjectURL).append(IPath.SEPARATOR).append(relativePath.toString());
-// }
-// } else if (numSegmentFromPath == numSegment)
-// url.append(webProjectURL);
-// }
-// }
-// if (url.length() < 1) {
-// IWorkspaceRoot workspace = getWorkspaceRoot();
-// url.append(getResourceURI(workspace.getFile(absolutePath)));
-// }
-// ILog log = new EclipseLog();
-// log.log(ILog.INFO, 5038, ResourceUtils.class, "getURLFromPath",
-// "absolutePath=" + absolutePath + ",url=" + url);
-//
-// return url.toString();
-// }
-
- /**
- * Copies a set of files from a plugin's installation location to a native
- * directory. The files are named in an index file located relative to the
- * plugin's installation location.
- *
- * @param plugin
- * The plugin containing the files to copy. Must not be null.
- * @param sourcePath
- * The path, relative to the <code>plugin</code> install
- * location, containing the files to copy. If null, then the
- * plugin install location is the source path (ie. null is
- * equivalent to ".").
- * @param indexPathname
- * A file containing a whitespace-delimitted list of pathnames of
- * the files to copy. The pathnames are relative to the
- * <code>plugin sourcePath</code>. Must not be null.
- * @param targetPath
- * The absolute path of the native directory to which the files
- * will be copied. The relative pathnames of the files named in
- * the <code>indexPathname</code> file are preserved. Must not
- * be null.
- * @param progressMonitor
- * The progress monitor for the operation, or null.
- * @throws IOException
- * An exception indicating an IO error has occured.
- */
- static public void copyIndexedFilesToOS(Plugin plugin, IPath sourcePath,
- IPath indexPathname, IPath targetPath,
- IProgressMonitor progressMonitor) throws IOException {
- InputStream input = plugin.openStream(indexPathname);
- Enumeration filenames = StringUtils.parseFilenamesFromStream(input);
- copyEnumeratedFilesToOS(plugin, sourcePath, filenames, targetPath,
- progressMonitor);
- }
-
- /**
- * Copies a set of files from a plugin's installation location to a native
- * directory. The files are named in an enumeration.
- *
- * @param plugin
- * The plugin containing the files to copy. Must not be null.
- * @param sourcePath
- * The path, relative to the <code>plugin</code> install
- * location, containing the files to copy. If null, then the
- * plugin install location is the source path (ie. null is
- * equivalent to ".").
- * @param pathnames
- * An enumeration of pathnames of the files to copy. The
- * pathnames are relative to the <code>plugin sourcePath</code>.
- * Must not be null.
- * @param targetPath
- * The absolute path of the native directory to which the files
- * will be copied. The relative pathnames of the files named in
- * the <code>pathnames</code> enumeration are preserved. Must
- * not be null.
- * @param progressMonitor
- * The progress monitor for the operation, or null.
- * @throws IOException
- * An exception indicating an IO error has occured.
- */
- static public void copyEnumeratedFilesToOS(Plugin plugin, IPath sourcePath,
- Enumeration pathnames, IPath targetPath,
- IProgressMonitor progressMonitor) throws IOException {
- while (pathnames.hasMoreElements()) {
- String filename = (String) pathnames.nextElement();
- copyFileToOS(plugin, sourcePath, new Path(filename), targetPath,
- progressMonitor);
- }
- }
-
- /**
- * Copies a file from a plugin's installation location to a native
- * directory.
- *
- * @param plugin
- * The plugin containing the files to copy. Must not be null.
- * @param sourcePath
- * The path, relative to the <code>plugin</code> install
- * location, containing the files to copy. If null, then the
- * plugin install location is the source path (ie. null is
- * equivalent to ".").
- * @param pathname
- * The pathname of the file to copy. The pathname is relative to
- * the <code>plugin sourcePath</code>. Must not be null.
- * @param targetPath
- * The absolute path of the native directory to which the file
- * will be copied. The relative pathname of the file is
- * preserved. Must not be null.
- * @param progressMonitor
- * The progress monitor for the operation, or null.
- * @throws IOException
- * An exception indicating an IO error has occured.
- */
- static public void copyFileToOS(Plugin plugin, IPath sourcePath,
- IPath pathname, IPath targetPath, IProgressMonitor progressMonitor)
- throws IOException {
- IPath target = targetPath.append(pathname);
- IPath source = sourcePath == null ? pathname : sourcePath
- .append(pathname);
- InputStream input = plugin.openStream(source);
- OutputStream output = new FileOutputStream(target.toOSString());
- copyStream(input, output);
- input.close();
- output.close();
- }
-
- /**
- * Copies data from one stream to another.
- *
- * @param input
- * The input stream.
- * @param output
- * The output stream.
- * @return The number of bytes copied.
- * @throws IOException
- * An exception if an error occurs while processing either of
- * the streams.
- */
- static public int copyStream(InputStream input, OutputStream output)
- throws IOException {
- int t = 0;
- byte[] buffer = new byte[1024];
- int n = input.read(buffer);
- while (n >= 0) {
- output.write(buffer, 0, n);
- t += n;
- n = input.read(buffer);
- }
- return t;
- }
-
- /**
- * Creates a native directory path equal to the parent portion of the given
- * <code>pathname</code>. If the directory already exists, then no action
- * is taken.
- *
- * @param pathname
- * The pathname to the file whose parent directory should be
- * created.
- * @throws IOException
- * An exception if an IO error occurs.
- */
- static public void createParentDirectoryFor(String pathname)
- throws IOException {
- File file = new File(pathname);
- File parent = file.getParentFile();
- if (parent != null) {
- parent.mkdirs();
- }
- }
-
- /**
- * Returns the IResource represented by the given selection.
- *
- * @param object
- * The selection
- * @return IResource if the selection represents an IResource. Returns null
- * otherwise.
- * @throws CoreException
- */
- static public IResource getResourceFromSelection(Object obj)
- throws CoreException {
- IResource res = null;
- if (obj != null) {
- if (obj instanceof IResource) {
- res = (IResource) obj;
- } else if (obj instanceof IJavaElement) {
- IJavaElement javaElement = (IJavaElement) obj;
- res = javaElement.getCorrespondingResource();
- } else if (obj instanceof EnterpriseBean) {
- EnterpriseBean ejbBean = (EnterpriseBean) obj;
- IProject ejbProject = ProjectUtilities.getProject(ejbBean);
- if (ejbProject != null)
- res = ejbProject;
- } else if (obj instanceof SessionBean) {
- SessionBean JEE5Bean = (SessionBean) obj;
- IProject ejbProject = ProjectUtilities.getProject(JEE5Bean);
- if (ejbProject != null)
- res = ejbProject;
- }
-
- }
-
- return res;
- }
-
- //----------------------------------------------------------------------
- // Naughty bits...
- //----------------------------------------------------------------------
-
- //
- // Creates a path of folders.
- // Do not call with an absolutePath of less than one segment.
- //
- // private static IContainer makeFolderPath (
- // ResourceContext resourceContext,
- // IPath absolutePath,
- // IProgressMonitor progressMonitor,
- // StatusMonitor statusMonitor
- // )
- // throws CoreException
- // {
- // if (absolutePath.segmentCount() <= 1)
- // {
- // return getWorkspaceRoot().getProject(absolutePath.segment(0));
- // }
- // else
- // {
- // IContainer parent = makeFolderPath(resourceContext,
- // absolutePath.removeLastSegments(1), progressMonitor, statusMonitor);
- // String folderName = absolutePath.lastSegment();
- // return makeFolder(resourceContext, parent,folderName, progressMonitor ,
- // statusMonitor);
- // }
- // }
- //
- // Creates a folder under a container.
- // The container must already exist.
- //
- // private static IFolder makeFolder (
- // ResourceContext resourceContext,
- // IContainer parent,
- // String folderName,
- // IProgressMonitor progressMonitor,
- // StatusMonitor statusMonitor
- // )
- // throws CoreException
- // {
- // IResource child = parent.findMember(folderName);
- // if (child == null)
- // {
- // if (!resourceContext.isCreateFoldersEnabled()) {
- // int result = statusMonitor.reportStatus(new
- // Status(IStatus.WARNING,WebServicePlugin.ID,0,
- // WebServicePlugin.getMessage("%MSG_ERROR_FOLDER_CREATION_DISABLED",
- // new Object[] {parent.getFullPath().toString(),folderName}),null),
- // getThreeStateFileOptions());
- // if (result == IStatusDialogConstants.CANCEL_ID)
- // return null;
- //
- // if ( result == IStatusDialogConstants.YES_TO_ALL_ID)
- // resourceContext.setCreateFoldersEnabled(true);
- //
- // }
- // IFolder folder = parent.getFolder(new Path(folderName));
- // folder.create(true,true,progressMonitor);
- // return folder;
- // }
- // else if (child.getType() == IResource.FOLDER)
- // {
- // return (IFolder)child;
- // }
- // else
- // {
- // throw new CoreException(new
- // Status(IStatus.ERROR,WebServicePlugin.ID,0,WebServicePlugin.getMessage("%MSG_ERROR_RESOURCE_NOT_FOLDER",new
- // Object[] {parent.getFullPath().append(folderName).toString()}),null));
- // }
- // }
-
- //
- // Creates a file under a container.
- // The container must already exist.
- //
- // private static IFile makeFile (
- // ResourceContext resourceContext,
- // IContainer parent,
- // String fileName,
- // InputStream inputStream,
- // IProgressMonitor progressMonitor,
- // StatusMonitor statusMonitor
- // )
- // throws CoreException
- // {
- // IResource child = parent.findMember(fileName);
- // if (child != null)
- // {
- // if (child.getType() == IResource.FILE)
- // {
- // if (!resourceContext.isOverwriteFilesEnabled()) {
- // int result = statusMonitor.reportStatus( new
- // Status(IStatus.WARNING,WebServicePlugin.ID,0,
- // WebServicePlugin.getMessage("%MSG_ERROR_FILE_OVERWRITE_DISABLED",
- // new Object[] {parent.getFullPath().toString(),fileName}),null),
- // getThreeStateFileOptions());
- //
- // if (result == IStatusDialogConstants.CANCEL_ID)
- // return null;
- //
- // if ( result == IStatusDialogConstants.YES_TO_ALL_ID)
- // resourceContext.setOverwriteFilesEnabled(true);
- // }
- // //We have permission to overwrite so check if file is read-only
- // if (child.isReadOnly())
- // {
- // if (!resourceContext.isCheckoutFilesEnabled()) {
- //
- // int result = statusMonitor.reportStatus( new
- // Status(IStatus.WARNING,WebServicePlugin.ID,0,
- // WebServicePlugin.getMessage("%MSG_ERROR_FILE_CHECKOUT_DISABLED",
- // new Object[] {parent.getFullPath().toString(),fileName}),null),
- // getThreeStateFileOptions());
- //
- // if (result == IStatusDialogConstants.CANCEL_ID)
- // return null;
- //
- // if ( result == IStatusDialogConstants.YES_TO_ALL_ID)
- // resourceContext.setCheckoutFilesEnabled(true);
- // }
- //
- // IFile[] files = new IFile[1];
- // files[0] = (IFile)child;
- //
- // if (
- // !statusMonitor.reportStatus(getWorkspace().validateEdit(files,null)))
- // return null;
- // }
- //
- // //Change the contents of the existing file.
- // IFile file = parent.getFile(new Path(fileName));
- // file.setContents(inputStream,true,true,progressMonitor);
- // return file;
- //
- // }
- // else
- // {
- // throw new CoreException(new
- // Status(IStatus.ERROR,WebServicePlugin.ID,0,WebServicePlugin.getMessage("%MSG_ERROR_RESOURCE_NOT_FILE",new
- // Object[] {parent.getFullPath().append(fileName)}),null));
- // }
- // }
- // else
- // {
- // //Create a new file.
- // IFile file = parent.getFile(new Path(fileName));
- // file.create(inputStream,true,progressMonitor);
- // return file;
- // }
- // }
-
- /**
- * Deletes a file under a container. The container must already exist.
- *
- * @param file -
- * the IFile to be deleted
- * @param progressMonitor
- * @param statusMonitor
- * @return True if the file does not exist or if it exists and is
- * successfully deleted. False otherwise.
- */
- // public static boolean deleteFile (
- // ResourceContext resourceContext,
- // IFile file,
- // IProgressMonitor progressMonitor,
- // StatusMonitor statusMonitor )
- // throws CoreException
- // {
- // if (file.exists())
- // {
- // if (!resourceContext.isOverwriteFilesEnabled()) {
- // int result = statusMonitor.reportStatus( new
- // Status(IStatus.WARNING,WebServicePlugin.ID,0,
- // WebServicePlugin.getMessage("%MSG_ERROR_FILE_OVERWRITE_DISABLED",
- // new Object[]
- // {file.getParent().getFullPath().toString(),file.getName()}),null),
- // getThreeStateFileOptions());
- //
- // if (result == IStatusDialogConstants.CANCEL_ID)
- // return false;
- //
- // if ( result == IStatusDialogConstants.YES_TO_ALL_ID)
- // resourceContext.setOverwriteFilesEnabled(true);
- // }
- // //We have permission to overwrite so check if file is read-only
- // if (file.isReadOnly())
- // {
- // if (!resourceContext.isCheckoutFilesEnabled()) {
- // int result = statusMonitor.reportStatus( new
- // Status(IStatus.WARNING,WebServicePlugin.ID,0,
- // WebServicePlugin.getMessage("%MSG_ERROR_FILE_CHECKOUT_DISABLED",
- // new Object[]
- // {file.getParent().getFullPath().toString(),file.getName()}),null),
- // getThreeStateFileOptions());
- // if (result == IStatusDialogConstants.CANCEL_ID)
- // return false;
- //
- // if ( result == IStatusDialogConstants.YES_TO_ALL_ID)
- // resourceContext.setCheckoutFilesEnabled(true);
- //
- // }
- // IFile[] files = new IFile[1];
- // files[0] = file;
- //
- // if (
- // !statusMonitor.reportStatus(getWorkspace().validateEdit(files,null)))
- // return false;
- // }
- // file.delete(true,progressMonitor);
- // }
- // //At this point, either the file did not exist or we successfully deleted
- // it. Return success.
- // return true;
- // }
- /**
- * Deletes a folder under a container.
- *
- * @param folder -
- * the IFolder to be deleted
- * @param progressMonitor
- * @param statusMonitor
- * @return True if the folder does not exist or if it exists and is
- * successfully deleted along with its members. False otherwise.
- */
- // public static boolean deleteFolder (
- // ResourceContext resourceContext,
- // IFolder folder,
- // IProgressMonitor progressMonitor,
- // StatusMonitor statusMonitor
- // )
- // throws CoreException
- // {
- // if (!folder.exists()) return true;
- //
- // boolean deleted = true;
- // IResource[] resources = folder.members();
- // for (int i=0; i<resources.length; i++)
- // {
- // IResource resource = resources[i];
- // if (resource instanceof IFile)
- // {
- // deleted = deleteFile(resourceContext, (IFile)resource, progressMonitor,
- // statusMonitor);
- // }
- // if (resource instanceof IFolder)
- // {
- // deleted = deleteFolder( resourceContext, (IFolder)resource,
- // progressMonitor, statusMonitor);
- // }
- //
- // if (!deleted) break;
- // }
- // if (deleted) {
- // folder.delete(true, true, progressMonitor);
- // return true;
- // }
- // else
- // return false;
- //
- // }
- /**
- * Deletes a set of files that are named in an index file located relative
- * to the plugin's installation location.
- *
- * @param plugin
- * The plugin containing the indexed file Must not be null.
- * @param sourcePath -
- * relative path of the indexed file passing a null in has the
- * same effect as passing a "." in
- * @param indexFilePath -
- * the indexed filename Must not be null
- * @param targetPath -
- * path containing the files named in the indexed file Must not
- * be null, this path must end with a trailing separator
- * @param progressMonitor
- */
- // public static void deleteIndexFilesFromOS (
- // Plugin plugin,
- // IPath indexFilePath,
- // IPath targetPath
- // )
- // throws IOException {
- // InputStream input = plugin.openStream(indexFilePath);
- // Enumeration filenames = StringUtils.parseFilenamesFromStream(input);
- // while (filenames.hasMoreElements()) {
- // File targetFile =
- // targetPath.append((String)filenames.nextElement()).toFile();
- // if (targetFile.exists())
- // targetFile.delete();
- // }
- // }
- /**
- * Returns a URI reference to the given Eclipse resource, or null if no such
- * reference can be determined (for example, if the resource does not exist
- * in the underlying filesystem).
- *
- * @param resource
- * The resource.
- * @return The URI as a string, or null if there is no URI to the resource.
- */
- public static String getResourceURI(IResource resource) {
- String uri = null;
- IPath location = resource.getLocation();
- if (location != null) {
- uri = "file:" + location.toString();
- }
- return uri;
- }
-
- /**
- * Returns a URI reference to the given Eclipse resource using the
- * "platform:" protocol, or null if no such reference can be determined (for
- * example, if the resource does not exist in the underlying filesystem).
- *
- * @param resource
- * The resource.
- * @return The URI as a string, or null if there is no URI to the resource.
- */
- public static String getPlatformResourceURI(IResource resource) {
- String uri = null;
- IPath location = resource.getFullPath();
- if (location != null) {
- uri = "platform:/resource" + location.toString();
- }
- return uri;
- }
-
- /**
- * Returns the default binding namespace string given a Java bean name
- * (using the convention used by CTC in GM). e.g. Java bean MyClass result
- * in binding namespace of
- * "http://www.myclass.com/definitions/MyClassRemoteInterface"
- *
- * @param beanName
- * The java bean.
- * @return The binding namespace as a string.
- */
- public static String getBindingNamespace(String beanName) {
- return "http://www." + beanName.toLowerCase() + ".com/definitions/"
- + beanName + "RemoteInterface";
- }
-
- /**
- * Returns the default schema namespace string given a Java bean name (using
- * the convention used by CTC in GM). e.g. Java bean MyClass result in
- * schema namespace of
- * "http://www.myclass.com/schemas/MyClassRemoteInterface"
- *
- * @param beanName
- * The java bean.
- * @return The schemas namespace as a string.
- */
- public static String getSchemaNamespace(String beanName) {
- return "http://www." + beanName.toLowerCase() + ".com/schemas/"
- + beanName + "RemoteInterface";
- }
-
- // public static Vector getThreeStateFileOptions() {
- // Vector options = new Vector();
- // options.add(new
- // StatusOption(IStatusDialogConstants.YES_ID,IStatusDialogConstants.YES_LABEL,"",""));
- // options.add(new
- // StatusOption(IStatusDialogConstants.YES_TO_ALL_ID,IStatusDialogConstants.YES_TO_ALL_LABEL,"",""));
- // options.add(new
- // StatusOption(IStatusDialogConstants.CANCEL_ID,IStatusDialogConstants.CANCEL_LABEL,"",""));
- // return options;
- // }
-
- //----------------------------------------------------------------------
-
- /**
- * Gets the SOAP rpcrouter servlet URL for the service project
- *
- * @param project
- * The project.
- * @param serverFactoryId
- * The server factory id
- * @param server
- * The server
- * @return The URL, possibly null.
- */
-
- public static String getServletURL(IProject project,
- String serverFactoryId, IServer server) {
- return getServletURL(getWebProjectURL(project, serverFactoryId, server));
- }
-
- public static String getServletURL(String webProjectURL) {
- if (webProjectURL == null)
- return null;
- else
- return webProjectURL + SERVLET_EXT;
- }
-
- /**
- * Gets the client Web project name
- *
- * @param projectName
- * The project name to base on.
- * @param typeId the webservice type id.
- * @return The client Web project name.
- *
- * @deprecated
- */
- public static String getClientWebProjectName(String projectName, String typeId)
- {
- String baseClientWebProjectName = projectName + DEFAULT_CLIENT_WEB_PROJECT_EXT;
- IPath projectPath;
- IProject project;
- boolean foundWebProject = false;
- int i = 1;
-
- if( isSkeletonEJBType( typeId ) )
- {
- // For the skeleton EJB scenario we need to create a slightly different
- // base name. When the EJB project is created another project
- // is created with "Client" tacked onto the end. We will
- // add "WS" to our client so we don't collide with the other
- // client project.
- baseClientWebProjectName = projectName + "WS" + DEFAULT_CLIENT_WEB_PROJECT_EXT;
- }
-
- String clientWebProjectName = baseClientWebProjectName;
-
- while (!foundWebProject)
- {
- projectPath = new Path(clientWebProjectName).makeAbsolute();
- project = ResourceUtils.getProjectOf(projectPath);
-
- if (project.exists() && !ResourceUtils.isWebProject(project))
- {
- clientWebProjectName = baseClientWebProjectName + i;
- i++;
- }
- else
- {
- foundWebProject = true;
- }
- }
-
- return clientWebProjectName;
- }
-
- public static String[] getClientProjectComponentName(String projectName, String componentName, boolean isEJB)
- {
- String clientProjectName = null;
- String clientComponentName = null;
- if (isEJB)
- {
- clientProjectName = projectName + DEFAULT_CLIENT_EJB_PROJECT_EXT;
- clientComponentName = componentName + DEFAULT_CLIENT_EJB_PROJECT_EXT;
- }
- else
- {
- clientProjectName = projectName + DEFAULT_CLIENT_WEB_PROJECT_EXT;
-// String baseName = clientProjectName;
- clientComponentName = componentName + DEFAULT_CLIENT_WEB_PROJECT_EXT;
-// String baseCompName = clientComponentName;
- }
-
- //TODO we may want to remove this if statement once defect 103366 is resolved.
- //TODO: Defect 107997 - Revisit prject and module creation logic
-// if( !FlexibleJavaProjectPreferenceUtil.getMultipleModulesPerProjectProp() )
-// {
-// clientComponentName = clientProjectName;
-// }
-
-// boolean foundWebProject = false;
-// int i = 1;
-//
-// while (!foundWebProject)
-// {
-// IPath projectPath = new Path(clientProjectName).makeAbsolute();
-// IProject project = ResourceUtils.getProjectOf(projectPath);
-//
-// if (project.exists())
-// {
-// clientProjectName = baseName + i;
-// clientComponentName = baseCompName + i;
-// i++;
-// }
-// else
-// {
-// foundWebProject = true;
-// }
-// }
-
- return new String[]{clientProjectName, clientComponentName};
- }
-
- /**
- *
- * @param typeID
- * @return
- *
- * @deprecated
- */
- public static boolean isSkeletonEJBType( String typeID )
- {
- return typeID.equals( "org.eclipse.jst.ws.type.wsdl.ejb" );
- }
-
- public static String getDefaultEJBProjectName() {
- return DEFAULT_EJB_PROJECT_NAME;
- }
-
- public static String getDefaultEJBComponentName() {
- return DEFAULT_EJB_COMPONENT_NAME;
- }
-
- public static String getDefaultWebProjectName() {
- return DEFAULT_WEB_PROJECT_NAME;
- }
-
- public static String getDefaultWebComponentName() {
- return DEFAULT_WEB_COMPONENT_NAME;
- }
-
- public static String getDefaultClientExtension() {
- return DEFAULT_CLIENT_WEB_PROJECT_EXT;
- }
-
- /**
- *
- * @param projectName
- * @return
- *
- */
- public static String getRouterProjectName(String projectName) {
- return projectName + DEFAULT_ROUTER_PROJECT_EXT;
- }
-
- public static String getDefaultServiceEARProjectName() {
- return DEFAULT_SERVICE_EAR_PROJECT_NAME;
- }
-
- public static String getDefaultServiceEARComponentName() {
- return DEFAULT_SERVICE_EAR_COMPONENT_NAME;
- }
-
- public static String getDefaultClientEARProjectName() {
- return DEFAULT_CLIENT_EAR_PROJECT_NAME;
- }
-
- public static String getDefaultClientEARComponentName() {
- return DEFAULT_CLIENT_EAR_COMPONENT_NAME;
- }
-
- public static String getDefaultEARExtension() {
- return DEFAULT_EAR_EXT;
- }
-}
-

Back to the top