[jboss-cvs] jbosside/core/plugins/org.jboss.ide.eclipse.packages.core/src/main/org/jboss/ide/eclipse/packages/core/model/types ...
Marshall Culpepper
mculpepper at jboss.com
Mon Nov 20 16:06:03 EST 2006
User: mculpepper
Date: 06/11/20 16:06:03
Added: core/plugins/org.jboss.ide.eclipse.packages.core/src/main/org/jboss/ide/eclipse/packages/core/model/types
JARPackageType.java AbstractPackageType.java
IPackageType.java
Log:
Added initial support for IPackageType for rob to start playing.. needs more testing
Revision Changes Path
1.1 date: 2006/11/20 21:06:03; author: mculpepper; state: Exp;jbosside/core/plugins/org.jboss.ide.eclipse.packages.core/src/main/org/jboss/ide/eclipse/packages/core/model/types/JARPackageType.java
Index: JARPackageType.java
===================================================================
package org.jboss.ide.eclipse.packages.core.model.types;
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
import org.jboss.ide.eclipse.packages.core.Trace;
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.IPackageFileSetWorkingCopy;
import org.jboss.ide.eclipse.packages.core.model.IPackageWorkingCopy;
import org.jboss.ide.eclipse.packages.core.model.PackagesCore;
/**
* The default JAR package type will simply jar-up all the classes in a project's output directory, and place it in the top-level of the project.
* The name of the resulting JAR will be the project's name followed by a ".jar" extension.
* @author Marshall
*/
public class JARPackageType extends AbstractPackageType {
public static final String TYPE_ID = "org.jboss.ide.eclipse.packages.core.jar";
public IPackage createDefaultConfiguration(IProject project, IProgressMonitor monitor)
{
Assert.isNotNull(project);
IJavaProject javaProject = JavaCore.create(project);
Assert.isNotNull(javaProject);
if (monitor == null) monitor = new NullProgressMonitor();
monitor.beginTask("Creating default JAR configuration for java project \"" + project.getName() + "\"", 2);
IPath outputPath;
try {
outputPath = javaProject.getOutputLocation();
} catch (JavaModelException e) {
Trace.trace(JARPackageType.class, e);
return null;
}
IContainer outputContainer = ResourcesPlugin.getWorkspace().getRoot().getContainerForLocation(outputPath);
IPackage jar = PackagesCore.createPackage(project, true);
IPackageWorkingCopy jarWC = jar.createPackageWorkingCopy();
jarWC.setDestinationContainer(project);
jarWC.setExploded(false);
jarWC.setName(project.getName() + ".jar");
jarWC.setPackageType(this);
jar = jarWC.savePackage();
IPackageFileSet classes = PackagesCore.createPackageFileSet(project);
IPackageFileSetWorkingCopy classesWC = classes.createFileSetWorkingCopy();
classesWC.setIncludesPattern("**/*");
classesWC.setSourceContainer(outputContainer);
classes = classesWC.saveFileSet();
jar.addChild(classes);
monitor.worked(1);
monitor.done();
return jar;
}
}
1.1 date: 2006/11/20 21:06:03; author: mculpepper; state: Exp;jbosside/core/plugins/org.jboss.ide.eclipse.packages.core/src/main/org/jboss/ide/eclipse/packages/core/model/types/AbstractPackageType.java
Index: AbstractPackageType.java
===================================================================
package org.jboss.ide.eclipse.packages.core.model.types;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IProgressMonitor;
import org.jboss.ide.eclipse.packages.core.model.IPackage;
/**
* All package types should extend this base class
* @author Marshall
*/
public abstract class AbstractPackageType implements IPackageType {
protected String id;
protected String label;
public String getId() {
return id;
}
public String getLabel() {
return label;
}
public void setId(String id) {
this.id = id;
}
public void setLabel(String label) {
this.label = label;
}
}
1.1 date: 2006/11/20 21:06:03; author: mculpepper; state: Exp;jbosside/core/plugins/org.jboss.ide.eclipse.packages.core/src/main/org/jboss/ide/eclipse/packages/core/model/types/IPackageType.java
Index: IPackageType.java
===================================================================
package org.jboss.ide.eclipse.packages.core.model.types;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IProgressMonitor;
import org.jboss.ide.eclipse.packages.core.model.IPackage;
/**
* This interface represents a package type (i.e. JAR,WAR,SAR etc).
*
* A package type's main focus right now is to provide a default "template" Package for a given Project, making it easier
* for users and adopters to automatically adapt projects into a deployable package type.
*
* @author Marshall
*/
public interface IPackageType {
/**
* @return The ID for this PackageType, i.e. "jar", "war" etc
*/
public String getId();
/**
* @return The label for this PackageType (usually shown in UI)
*/
public String getLabel();
/**
* This will create a "default" packaging configuration for this project using this package type.
*
* If the passed-in project does not support this package type, a null IPackage should be returned.
*
* @param project The project to create the packages configuration for
* @return The top level package that was created
*/
public IPackage createDefaultConfiguration(IProject project, IProgressMonitor monitor);
}
More information about the jboss-cvs-commits
mailing list