[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