[jboss-cvs] jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages ...
Robert Stryker
rob.stryker at jboss.com
Fri Mar 2 16:37:03 EST 2007
User: rawb
Date: 07/03/02 16:37:03
Modified: as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages
WarPackageType.java
ObscurelyNamedPackageTypeSuperclass.java
Log:
recent changes for integration w./ packaging
Revision Changes Path
1.4 +76 -12 jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/WarPackageType.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: WarPackageType.java
===================================================================
RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/WarPackageType.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- WarPackageType.java 8 Feb 2007 00:12:21 -0000 1.3
+++ WarPackageType.java 2 Mar 2007 21:37:03 -0000 1.4
@@ -21,23 +21,25 @@
*/
package org.jboss.ide.eclipse.as.core.packages;
-import org.eclipse.core.resources.IContainer;
+import java.util.ArrayList;
+
+import org.apache.tools.ant.DirectoryScanner;
import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.Path;
+import org.eclipse.jdt.core.IClasspathEntry;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jst.server.core.IWebModule;
import org.eclipse.wst.server.core.IModule;
-import org.eclipse.wst.server.core.IModuleArtifact;
-import org.eclipse.wst.server.core.internal.ServerPlugin;
+import org.jboss.ide.eclipse.packages.core.model.DirectoryScannerFactory;
import org.jboss.ide.eclipse.packages.core.model.IPackage;
import org.jboss.ide.eclipse.packages.core.model.IPackageFileSet;
import org.jboss.ide.eclipse.packages.core.model.IPackageFolder;
-import org.jboss.ide.eclipse.packages.core.model.IPackageNode;
-import org.jboss.ide.eclipse.packages.core.model.PackagesCore;
-import org.jboss.ide.eclipse.packages.core.model.types.IPackageType;
/**
*
@@ -60,15 +62,78 @@
protected IPackage createDefaultConfiguration2(IProject project, IProgressMonitor monitor) {
IPackage topLevel = createGenericIPackage(project, null, project.getName() + ".war");
+ return fillDefaultConfiguration(project, topLevel, monitor);
+ }
+
+ public IPackage fillDefaultConfiguration(IProject project, IPackage topLevel, IProgressMonitor monitor) {
topLevel.setDestinationContainer(project);
IPackageFolder webinf = addFolder(project, topLevel, WEBINF);
- IPackageFolder metainf = addFolder(project, topLevel, METAINF);
- IPackageFolder lib = addFolder(project, metainf, LIB);
- addFileset(project, metainf, METAINF, null);
- addFileset(project, webinf, WEBINF, null);
+ IPackageFolder lib = addFolder(project, webinf, LIB);
+ IPackageFolder classes = addFolder(project, webinf, CLASSES);
+ addWebinfFileset(project, webinf);
+ addLibFileset(project, lib);
+ addClassesFileset(project, classes);
return topLevel;
}
+ protected void addClassesFileset(IProject project, IPackageFolder folder) {
+ IJavaProject jp = JavaCore.create(project);
+ if( jp != null ) {
+ try {
+ IPath outputLoc = project.getWorkspace().getRoot().getLocation();
+ outputLoc = outputLoc.append(jp.getOutputLocation());
+ addFileset(project, folder, jp.getOutputLocation().removeFirstSegments(1).toOSString(), "**/*.class");
+ } catch( JavaModelException jme ) {
+ }
+ }
+ }
+ protected void addWebinfFileset(IProject project, IPackageFolder folder) {
+ IPath projectPath = project.getLocation();
+ DirectoryScanner scanner =
+ DirectoryScannerFactory.createDirectoryScanner(projectPath, "**/web.xml", null);
+ String[] files = scanner.getIncludedFiles();
+ // just take the first
+ if( files.length > 0 ) {
+ IPath path = new Path(files[0]);
+ path = path.removeLastSegments(1);
+ path.removeFirstSegments(projectPath.segmentCount());
+ addFileset(project, folder, path.toOSString(), "**/*");
+ }
+ }
+ protected void addLibFileset(IProject project, IPackageFolder folder) {
+ addFileset(project, folder, "", "**/*.jar"); // add default jars
+
+ // now add referenced projects
+ ArrayList list = new ArrayList();
+ IJavaProject jp = JavaCore.create(project);
+ if( jp != null ) {
+ try {
+ IClasspathEntry[] entries = jp.getRawClasspath();
+ for( int i = 0; i < entries.length; i++ ) {
+ System.out.println(entries[i].getContentKind());
+ if( entries[i].getEntryKind() == IClasspathEntry.CPE_PROJECT) {
+ IPath path = entries[i].getPath();
+ IResource res = ResourcesPlugin.getWorkspace().getRoot().findMember(path);
+ if( res instanceof IProject ) {
+ createLibFromProject((IProject)res, folder);
+ }
+ }
+ }
+ } catch( JavaModelException jme ) {
+ jme.printStackTrace();
+ }
+ }
+ }
+ protected void createLibFromProject(IProject project, IPackageFolder folder) {
+ IPackage pack = createGenericIPackage(project, null, project.getName() + ".jar");
+ folder.addChild(pack);
+ System.out.println("creating library from " + project);
+ }
+
+
+
+
+
protected IPackage createDefaultConfigFromModule(IModule mod, IProgressMonitor monitor) {
try {
IProject project = mod.getProject();
@@ -78,7 +143,6 @@
IPackageFolder webinf = addFolder(project, topLevel, WEBINF);
IPackageFolder metainf = addFolder(project, topLevel, METAINF);
IPackageFolder lib = addFolder(project, metainf, LIB);
- addFileset(project, metainf, WEBCONTENT + Path.SEPARATOR + METAINF, null);
addFileset(project, webinf, WEBCONTENT + Path.SEPARATOR + WEBINF, null);
IWebModule webModule = (IWebModule)mod.loadAdapter(IWebModule.class, monitor);
1.4 +16 -2 jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/ObscurelyNamedPackageTypeSuperclass.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: ObscurelyNamedPackageTypeSuperclass.java
===================================================================
RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/ObscurelyNamedPackageTypeSuperclass.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- ObscurelyNamedPackageTypeSuperclass.java 15 Feb 2007 14:52:04 -0000 1.3
+++ ObscurelyNamedPackageTypeSuperclass.java 2 Mar 2007 21:37:03 -0000 1.4
@@ -47,6 +47,7 @@
public abstract class ObscurelyNamedPackageTypeSuperclass extends AbstractPackageType {
protected static final String METAINF = "META-INF";
protected static final String WEBINF = "WEB-INF";
+ protected static final String CLASSES = "classes";
protected static final String LIB = "lib";
protected static final String WEBCONTENT = "WebContent";
protected static final String EARCONTENT = "EarContent";
@@ -78,7 +79,11 @@
return null;
}
sourcePath = sourcePath.removeFirstSegments(1);
- IContainer sourcePathContainer = project.getFolder(sourcePath);
+ IContainer sourcePathContainer;
+ if( sourcePath.segmentCount() == 0 )
+ sourcePathContainer = project;
+ else
+ sourcePathContainer = project.getFolder(sourcePath);
return createGenericIPackage(project, deployDirectory, packageName, sourcePathContainer);
} catch( Exception e ) {
e.printStackTrace();
@@ -93,6 +98,9 @@
if( deployDirectory != null ) {
jar.setDestinationPath(new Path(deployDirectory));
jar.setExploded(false);
+ } else {
+ jar.setDestinationContainer(project);
+ jar.setExploded(false);
}
jar.setName(packageName);
@@ -115,7 +123,13 @@
Assert.isNotNull(project);
IJavaProject javaProject = JavaCore.create(project);
Assert.isNotNull(javaProject);
- IContainer sourceContainer = project.getFolder(new Path(sourcePath));
+
+ IContainer sourceContainer;
+ if( sourcePath != null && !sourcePath.equals("")) {
+ sourceContainer = project.getFolder(new Path(sourcePath));
+ } else {
+ sourceContainer = project;
+ }
fs.setSourceContainer(sourceContainer);
fs.setIncludesPattern( includePattern == null ? "**/*" : includePattern );
More information about the jboss-cvs-commits
mailing list