Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 179144 Details for
Bug 325644
Imported Utility JARs should have their deploy path set to the library directory
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Proposed Patch
325644 - Sept 17 2010 2pm.patch (text/plain), 15.85 KB, created by
Aidyl Kareh
on 2010-09-17 15:18:45 EDT
(
hide
)
Description:
Proposed Patch
Filename:
MIME Type:
Creator:
Aidyl Kareh
Created:
2010-09-17 15:18:45 EDT
Size:
15.85 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jst.j2ee >Index: earproject/org/eclipse/jst/j2ee/application/internal/operations/CopyArchiveIntoProjectOperation.java >=================================================================== >RCS file: /cvsroot/webtools/jeetools/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/CopyArchiveIntoProjectOperation.java,v >retrieving revision 1.5 >diff -u -r1.5 CopyArchiveIntoProjectOperation.java >--- earproject/org/eclipse/jst/j2ee/application/internal/operations/CopyArchiveIntoProjectOperation.java 10 Jun 2009 19:19:03 -0000 1.5 >+++ earproject/org/eclipse/jst/j2ee/application/internal/operations/CopyArchiveIntoProjectOperation.java 17 Sep 2010 18:24:59 -0000 >@@ -21,6 +21,7 @@ > import org.eclipse.core.commands.ExecutionException; > 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.runtime.CoreException; > import org.eclipse.core.runtime.IAdaptable; >@@ -32,6 +33,7 @@ > import org.eclipse.core.runtime.SubProgressMonitor; > import org.eclipse.jst.j2ee.internal.earcreation.EARCreationResourceHandler; > import org.eclipse.jst.j2ee.internal.plugin.J2EEPlugin; >+import org.eclipse.jst.j2ee.project.EarUtilities; > import org.eclipse.osgi.util.NLS; > import org.eclipse.wst.common.componentcore.ComponentCore; > import org.eclipse.wst.common.componentcore.resources.IVirtualComponent; >@@ -54,11 +56,22 @@ > IVirtualComponent earComponent = ComponentCore.createComponent(associatedEARProject); > > IContainer underlyingFolder = earComponent.getRootFolder().getUnderlyingFolder(); >+ String uriMapping = getUtilityJar().getName(); >+ String earLib = EarUtilities.getEARLibDir(earComponent); >+ IFolder libDirFolder = null; >+ if(earLib != null && !earLib.isEmpty()) { >+ uriMapping = (new Path(earLib)).append(uriMapping).toString(); >+ if(underlyingFolder.isAccessible()) { >+ libDirFolder = getWorkspaceRoot().getFolder(underlyingFolder.getFullPath().append(earLib)); >+ } else { >+ libDirFolder = getWorkspaceRoot().getFolder(associatedEARProject.getFullPath().append(earLib)); >+ } >+ } > if(underlyingFolder.isAccessible()) { >- copiedJarFile = underlyingFolder.getFile(new Path(getUtilityJar().getName())); >+ copiedJarFile = underlyingFolder.getFile(new Path(uriMapping)); > } else { >- copiedJarFile = associatedEARProject.getFile(getUtilityJar().getName()); >- } >+ copiedJarFile = associatedEARProject.getFile(uriMapping); >+ } > if (copiedJarFile.exists()) { > if (isOverwriteIfNecessary()) > copiedJarFile.delete(true, true, new SubProgressMonitor(monitor, 1)); >@@ -66,8 +79,13 @@ > status.add(J2EEPlugin.createErrorStatus(0, NLS.bind(EARCreationResourceHandler.CopyArchiveIntoProjectOperation_Found_existing_file_0_, copiedJarFile), null)); > return status; > } >- } >- >+ } >+ >+ // Create EAR's library directory folder if it doesn't exist >+ if(libDirFolder != null && (!libDirFolder.exists() || !libDirFolder.isAccessible())) { >+ mkdirs(libDirFolder); >+ } >+ > FileInputStream fileInputStream = null; > ByteArrayOutputStream bos = null; > ByteArrayInputStream jarFileInputStream = null; >@@ -90,7 +108,7 @@ > > addLibraryToClasspath(associatedEARProject, copiedJarFile, monitor); > >- createVirtualArchiveComponent(associatedEARProject, getUtilityJar().getName(), copiedJarFile, monitor); >+ createVirtualArchiveComponent(associatedEARProject, uriMapping, copiedJarFile, monitor); > > > } catch (FileNotFoundException e) { >Index: earproject/org/eclipse/jst/j2ee/application/internal/operations/CreateProjectWithExtractedJarOperation.java >=================================================================== >RCS file: /cvsroot/webtools/jeetools/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/CreateProjectWithExtractedJarOperation.java,v >retrieving revision 1.6 >diff -u -r1.6 CreateProjectWithExtractedJarOperation.java >--- earproject/org/eclipse/jst/j2ee/application/internal/operations/CreateProjectWithExtractedJarOperation.java 14 Jul 2009 14:13:23 -0000 1.6 >+++ earproject/org/eclipse/jst/j2ee/application/internal/operations/CreateProjectWithExtractedJarOperation.java 17 Sep 2010 18:24:59 -0000 >@@ -11,7 +11,6 @@ > package org.eclipse.jst.j2ee.application.internal.operations; > > import java.io.File; >-import java.lang.reflect.InvocationTargetException; > > import org.eclipse.core.commands.ExecutionException; > import org.eclipse.core.resources.IProject; >@@ -66,17 +65,6 @@ > importModel.setProperty(IJavaUtilityJarImportDataModelProperties.EAR_PROJECT_NAME, getAssociatedEARProjectName()); > > status.add(importModel.getDefaultOperation().execute(new SubProgressMonitor(monitor, 1), info)); >- >- IProject associatedEARProject = getWorkspaceRoot().getProject(getAssociatedEARProjectName()); >- IProject utilityJarProject = getWorkspaceRoot().getProject(newProjectName); >- linkArchiveToEAR(associatedEARProject, getUtilityJar().getName(), utilityJarProject, new SubProgressMonitor(monitor, 1)); >- >- } catch (InvocationTargetException e) { >- status.add(J2EEPlugin.createErrorStatus(0, e.getMessage(), e)); >- J2EEPlugin.logError(0, e.getMessage(), e); >- } catch (InterruptedException e) { >- status.add(J2EEPlugin.createErrorStatus(0, e.getMessage(), e)); >- J2EEPlugin.logError(0, e.getMessage(), e); > } catch (CoreException e) { > status.add(J2EEPlugin.createErrorStatus(0, e.getMessage(), e)); > J2EEPlugin.logError(0, e.getMessage(), e); >Index: earproject/org/eclipse/jst/j2ee/application/internal/operations/CreateProjectWithLinkedJarOperation.java >=================================================================== >RCS file: /cvsroot/webtools/jeetools/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/CreateProjectWithLinkedJarOperation.java,v >retrieving revision 1.6 >diff -u -r1.6 CreateProjectWithLinkedJarOperation.java >--- earproject/org/eclipse/jst/j2ee/application/internal/operations/CreateProjectWithLinkedJarOperation.java 10 Jun 2009 19:19:03 -0000 1.6 >+++ earproject/org/eclipse/jst/j2ee/application/internal/operations/CreateProjectWithLinkedJarOperation.java 17 Sep 2010 18:24:59 -0000 >@@ -20,7 +20,6 @@ > import org.eclipse.core.runtime.IStatus; > import org.eclipse.core.runtime.MultiStatus; > import org.eclipse.core.runtime.Status; >-import org.eclipse.core.runtime.SubProgressMonitor; > import org.eclipse.jdt.core.IJavaProject; > import org.eclipse.jdt.core.IPackageFragmentRoot; > import org.eclipse.jdt.core.JavaCore; >@@ -63,6 +62,7 @@ > createUtilityProject.setProperty(IProjectCreationPropertiesNew.USER_DEFINED_LOCATION, projectRoot); > } > >+ createUtilityProject.setProperty(IJ2EEFacetProjectCreationDataModelProperties.ADD_TO_EAR, true); > createUtilityProject.setProperty(IJ2EEFacetProjectCreationDataModelProperties.EAR_PROJECT_NAME, getAssociatedEARProjectName()); > > status.add(createUtilityProject.getDefaultOperation().execute(monitor, info)); >@@ -81,13 +81,6 @@ > IVirtualComponent utilComponent = ComponentCore.createComponent(project); > status.add(removeRootMapping(utilComponent, "/src", monitor)); //$NON-NLS-1$ > >- /* Create the /<archive> mapping */ >- status.add(createVirtualArchiveComponent(project, getUtilityJar().getName(), project.getFile(getUtilityJar().getName()), monitor)); >- >- /* Make this project a utility jar project for the EAR */ >- IProject associatedEARProject = getWorkspaceRoot().getProject(getAssociatedEARProjectName()); >- status.add(linkArchiveToEAR(associatedEARProject, getUtilityJar().getName(), utilityJarProject, new SubProgressMonitor(monitor, 1))); >- > } catch (Exception e) { > status.add(J2EEPlugin.createErrorStatus(0, EARCreationResourceHandler.J2EEUtilityJarListImportOperation_UI_2, e)); > } >Index: earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEUtilityJarImportAssistantOperation.java >=================================================================== >RCS file: /cvsroot/webtools/jeetools/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEUtilityJarImportAssistantOperation.java,v >retrieving revision 1.4 >diff -u -r1.4 J2EEUtilityJarImportAssistantOperation.java >--- earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEUtilityJarImportAssistantOperation.java 10 Jun 2009 19:19:03 -0000 1.4 >+++ earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEUtilityJarImportAssistantOperation.java 17 Sep 2010 18:24:59 -0000 >@@ -19,6 +19,7 @@ > import org.eclipse.core.commands.ExecutionException; > import org.eclipse.core.commands.operations.AbstractOperation; > import org.eclipse.core.resources.IFile; >+import org.eclipse.core.resources.IFolder; > import org.eclipse.core.resources.IPathVariableManager; > import org.eclipse.core.resources.IProject; > import org.eclipse.core.resources.IResource; >@@ -106,11 +107,26 @@ > > IVirtualComponent utilcomponent = ComponentCore.createArchiveComponent(targetProject, VirtualArchiveComponent.LIBARCHIVETYPE + IPath.SEPARATOR + utilityJarIFile.getProjectRelativePath().toString()); > >+ IPath uriMappingPath = null; >+ String uri = uriMapping; >+ String deployPath = null; >+ if(uriMapping != null) { >+ uriMappingPath = new Path(uriMapping); >+ uri = uriMappingPath.lastSegment(); >+ if(uriMappingPath.segmentCount() > 1) >+ deployPath = uriMappingPath.removeLastSegments(1).toString(); >+ } >+ > addArchiveProjectToEARDataModel.setProperty(ICreateReferenceComponentsDataModelProperties.SOURCE_COMPONENT, earcomponent); > addArchiveProjectToEARDataModel.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST, Collections.singletonList(utilcomponent)); > Map uriMap = new HashMap(); >- uriMap.put(utilcomponent, uriMapping); >+ uriMap.put(utilcomponent, uri); > addArchiveProjectToEARDataModel.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_TO_URI_MAP, uriMap); >+ if(deployPath != null && !deployPath.isEmpty()) { >+ Map deployMap = new HashMap(); >+ deployMap.put(utilcomponent, deployPath); >+ addArchiveProjectToEARDataModel.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_DEPLOY_PATH_MAP, deployMap); >+ } > return addArchiveProjectToEARDataModel.getDefaultOperation().execute(monitor, null); > } > >@@ -191,5 +207,14 @@ > > return baseLocation != null ? (baseLocation + File.separator + proposedProjectName) : null; > } >+ >+ protected static void mkdirs(final IFolder folder) throws CoreException { >+ if (!folder.exists()) { >+ if (folder.getParent() instanceof IFolder) { >+ mkdirs((IFolder) folder.getParent()); >+ } >+ folder.create(true, true, null); >+ } >+ } > > } >Index: earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEUtilityJarImportDataModelProvider.java >=================================================================== >RCS file: /cvsroot/webtools/jeetools/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEUtilityJarImportDataModelProvider.java,v >retrieving revision 1.13 >diff -u -r1.13 J2EEUtilityJarImportDataModelProvider.java >--- earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEUtilityJarImportDataModelProvider.java 17 Feb 2010 20:56:56 -0000 1.13 >+++ earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEUtilityJarImportDataModelProvider.java 17 Sep 2010 18:24:59 -0000 >@@ -69,6 +69,7 @@ > nestedModel = (IDataModel) nestedModels.get(i); > try { > nestedModel.setProperty(IJ2EEFacetProjectCreationDataModelProperties.EAR_PROJECT_NAME, propertyValue); >+ nestedModel.setProperty(IJ2EEFacetProjectCreationDataModelProperties.ADD_TO_EAR, true); > } catch (Exception e) { > J2EEPlugin.logError(e); > } >Index: earproject/org/eclipse/jst/j2ee/application/internal/operations/LinkArchiveIntoProjectOperation.java >=================================================================== >RCS file: /cvsroot/webtools/jeetools/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/LinkArchiveIntoProjectOperation.java,v >retrieving revision 1.3 >diff -u -r1.3 LinkArchiveIntoProjectOperation.java >--- earproject/org/eclipse/jst/j2ee/application/internal/operations/LinkArchiveIntoProjectOperation.java 9 Jun 2009 19:23:40 -0000 1.3 >+++ earproject/org/eclipse/jst/j2ee/application/internal/operations/LinkArchiveIntoProjectOperation.java 17 Sep 2010 18:24:59 -0000 >@@ -14,18 +14,24 @@ > import java.lang.reflect.InvocationTargetException; > > import org.eclipse.core.commands.ExecutionException; >+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.runtime.CoreException; > import org.eclipse.core.runtime.IAdaptable; > import org.eclipse.core.runtime.IProgressMonitor; > import org.eclipse.core.runtime.IStatus; > import org.eclipse.core.runtime.MultiStatus; >+import org.eclipse.core.runtime.Path; > import org.eclipse.core.runtime.Status; > import org.eclipse.core.runtime.SubProgressMonitor; > import org.eclipse.jst.j2ee.internal.earcreation.EARCreationResourceHandler; > import org.eclipse.jst.j2ee.internal.plugin.J2EEPlugin; >+import org.eclipse.jst.j2ee.project.EarUtilities; > import org.eclipse.osgi.util.NLS; >+import org.eclipse.wst.common.componentcore.ComponentCore; >+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent; > > public class LinkArchiveIntoProjectOperation extends J2EEUtilityJarImportAssistantOperation { > >@@ -45,7 +51,27 @@ > IProject project = getWorkspaceRoot().getProject(getAssociatedEARProjectName()); > > try { >- IFile linkedJarFile = project.getFile(getUtilityJar().getName()); >+ IVirtualComponent earComponent = ComponentCore.createComponent(project); >+ IContainer underlyingFolder = earComponent.getRootFolder().getUnderlyingFolder(); >+ String uriMapping = getUtilityJar().getName(); >+ String earLib = EarUtilities.getEARLibDir(earComponent); >+ IFolder libDirFolder = null; >+ if(earLib != null && !earLib.isEmpty()) { >+ uriMapping = (new Path(earLib)).append(uriMapping).toString(); >+ if(underlyingFolder.isAccessible()) { >+ libDirFolder = getWorkspaceRoot().getFolder(underlyingFolder.getFullPath().append(earLib)); >+ } else { >+ libDirFolder = getWorkspaceRoot().getFolder(project.getFullPath().append(earLib)); >+ } >+ } >+ >+ IFile linkedJarFile = null; >+ if(underlyingFolder.isAccessible()) { >+ linkedJarFile = underlyingFolder.getFile(new Path(uriMapping)); >+ } else { >+ linkedJarFile = project.getFile(uriMapping); >+ } >+ > if (linkedJarFile.exists()) { > if (isOverwriteIfNecessary()) > linkedJarFile.delete(true, true, new SubProgressMonitor(monitor, 1)); >@@ -54,11 +80,17 @@ > return status; > } > } >- status.add(createLinkedArchive(project, getUtilityJar().getName(), getUtilityJar(), linkedPathVariable, monitor)); >+ >+ // Create EAR's library directory folder if it doesn't exist >+ if(libDirFolder != null && (!libDirFolder.exists() || !libDirFolder.isAccessible())) { >+ mkdirs(libDirFolder); >+ } >+ >+ status.add(createLinkedArchive(project, linkedJarFile.getProjectRelativePath().toString(), getUtilityJar(), linkedPathVariable, monitor)); > > addLibraryToClasspath(project, linkedJarFile, monitor); > >- createVirtualArchiveComponent(project, getUtilityJar().getName(), linkedJarFile, monitor); >+ createVirtualArchiveComponent(project, uriMapping, linkedJarFile, monitor); > > } catch (CoreException e) { > status.add(J2EEPlugin.createErrorStatus(0, e.getMessage(), e));
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 325644
:
179144
|
179852