Author: rob.stryker(a)jboss.com
Date: 2007-05-24 17:11:03 -0400 (Thu, 24 May 2007)
New Revision: 2073
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/ArchivesBuildListener.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/ModulePackageTypeConverter.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/PackageModuleFactory.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/types/EarArchiveType.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/types/EjbArchiveType.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/types/J2EEArchiveType.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/types/WarArchiveType.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PackagesPublisher.java
Log:
Changes regarding the archives API change
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/ArchivesBuildListener.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/ArchivesBuildListener.java 2007-05-24
21:10:30 UTC (rev 2072)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/ArchivesBuildListener.java 2007-05-24
21:11:03 UTC (rev 2073)
@@ -23,7 +23,6 @@
import java.util.ArrayList;
-import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.NullProgressMonitor;
@@ -34,10 +33,10 @@
import org.eclipse.wst.server.core.internal.ModuleFactory;
import org.eclipse.wst.server.core.internal.ServerPlugin;
import org.eclipse.wst.server.core.model.ServerBehaviourDelegate;
-import org.jboss.ide.eclipse.archives.core.model.ArchivesCore;
+import org.jboss.ide.eclipse.archives.core.model.ArchivesModel;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
-import org.jboss.ide.eclipse.archives.core.model.IArchiveBuildListener;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFileSet;
+import org.jboss.ide.eclipse.archives.core.model.other.IArchiveBuildListener;
import org.jboss.ide.eclipse.archives.core.util.ModelUtil;
import
org.jboss.ide.eclipse.as.core.packages.PackageModuleFactory.PackagedModuleDelegate;
import org.jboss.ide.eclipse.as.core.server.attributes.IDeployableServer;
@@ -62,7 +61,7 @@
}
public ArchivesBuildListener() {
- ArchivesCore.getInstance().addBuildListener(this);
+ ArchivesModel.instance().addBuildListener(this);
}
public void cleanArchive(IArchive pkg) {
@@ -170,7 +169,7 @@
}
- public void finishedBuild(IProject project) {
+ public void finishedBuild(IPath project) {
// TODO Auto-generated method stub
}
@@ -180,7 +179,7 @@
}
- public void startedBuild(IProject project) {
+ public void startedBuild(IPath project) {
// TODO Auto-generated method stub
}
@@ -197,7 +196,7 @@
// TODO Auto-generated method stub
}
- public void cleanProject(IProject project) {
+ public void cleanProject(IPath project) {
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/ModulePackageTypeConverter.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/ModulePackageTypeConverter.java 2007-05-24
21:10:30 UTC (rev 2072)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/ModulePackageTypeConverter.java 2007-05-24
21:11:03 UTC (rev 2073)
@@ -22,7 +22,7 @@
package org.jboss.ide.eclipse.as.core.packages;
import org.eclipse.wst.server.core.IModule;
-import org.jboss.ide.eclipse.archives.core.model.ArchivesCore;
+import org.jboss.ide.eclipse.archives.core.ArchivesCore;
import org.jboss.ide.eclipse.archives.core.model.IArchiveType;
import org.jboss.ide.eclipse.as.core.packages.types.EarArchiveType;
import org.jboss.ide.eclipse.as.core.packages.types.EjbArchiveType;
@@ -36,13 +36,13 @@
public static IArchiveType getPackageTypeFor(IModule module) {
String modType = module.getModuleType().getId();
if("jst.web".equals(modType)) {
- return ArchivesCore.getArchiveType(WarArchiveType.WAR_PACKAGE_TYPE);
+ return
ArchivesCore.getInstance().getExtensionManager().getArchiveType(WarArchiveType.WAR_PACKAGE_TYPE);
} else if("jst.ear".equals(modType)) {
- return ArchivesCore.getArchiveType(EarArchiveType.ID);
+ return
ArchivesCore.getInstance().getExtensionManager().getArchiveType(EarArchiveType.ID);
} else if("jbide.ejb30".equals(modType)) {
- return ArchivesCore.getArchiveType(EjbArchiveType.ID);
+ return
ArchivesCore.getInstance().getExtensionManager().getArchiveType(EjbArchiveType.ID);
} else if("jst.ejb".equals(modType)) {
- return ArchivesCore.getArchiveType(EjbArchiveType.ID);
+ return
ArchivesCore.getInstance().getExtensionManager().getArchiveType(EjbArchiveType.ID);
}
return null;
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/PackageModuleFactory.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/PackageModuleFactory.java 2007-05-24
21:10:30 UTC (rev 2072)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/PackageModuleFactory.java 2007-05-24
21:11:03 UTC (rev 2073)
@@ -28,12 +28,14 @@
import java.util.Map;
import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.preferences.InstanceScope;
import org.eclipse.wst.server.core.IModule;
import org.eclipse.wst.server.core.internal.ModuleFactory;
import org.eclipse.wst.server.core.internal.ModuleFile;
@@ -41,9 +43,10 @@
import org.eclipse.wst.server.core.model.IModuleResource;
import org.eclipse.wst.server.core.model.ModuleDelegate;
import org.eclipse.wst.server.core.util.ProjectModuleFactoryDelegate;
-import org.jboss.ide.eclipse.archives.core.model.ArchivesCore;
import org.jboss.ide.eclipse.archives.core.model.ArchivesModel;
+import org.jboss.ide.eclipse.archives.core.model.ArchivesModelCore;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
import org.jboss.ide.eclipse.as.core.JBossServerCorePlugin;
/**
@@ -54,10 +57,15 @@
protected Map moduleDelegates = new HashMap(5);
protected HashMap packageToModule = new HashMap(5);
+ private static int nextArchiveId = -1;
+ private static final String NEXT_ARCHIVE_KEY =
"org.jboss.ide.eclipse.as.core.PackageModuleFactory.nextId";
+
public static final String FACTORY_TYPE_ID =
"org.jboss.ide.eclipse.as.core.PackageModuleFactory";
public static final String MODULE_TYPE = "jboss.package";
public static final String VERSION = "1.0";
+ public static final String MODULE_ID_PROPERTY_KEY =
"org.jboss.ide.eclipse.as.core.packages.ModuleIDPropertyKey";
+
private static PackageModuleFactory factory;
public static PackageModuleFactory getFactory() {
if( factory != null ) return factory;
@@ -81,11 +89,31 @@
super();
}
+ /**
+ * @param archives
+ * @return returns whether a save has occurred
+ */
+ protected boolean ensureArchivesHaveIDs(IProject project, IArchive[] archives) {
+ boolean requiresSave = false;
+ for( int i = 0; i < archives.length; i++ ) {
+ if( getID(archives[i]) == null ) {
+ requiresSave = true;
+ archives[i].setProperty(MODULE_ID_PROPERTY_KEY, getID(archives[i], true));
+ }
+ }
+ if( requiresSave ) {
+ // save
+ ArchivesModel.instance().saveModel(project.getLocation(), new NullProgressMonitor());
+ }
+ return requiresSave;
+ }
protected IModule[] createModules(IProject project) {
- if( ArchivesCore.getProjectPackages(project, null, true).length > 0 ) {
+ try {
+ if( ArchivesModelCore.getProjectPackages(project.getLocation(), null, true).length >
0 ) {
ArrayList list = new ArrayList();
IModule module;
- IArchive[] packages = ArchivesCore.getProjectPackages(project, new
NullProgressMonitor(), true);
+ IArchive[] packages = ArchivesModelCore.getProjectPackages(project.getLocation(), new
NullProgressMonitor(), true);
+ boolean saved = ensureArchivesHaveIDs(project, packages);
for( int i = 0; i < packages.length; i++ ) {
module = createModule(getID(packages[i]), getName(packages[i]),
MODULE_TYPE, VERSION, project);
@@ -96,15 +124,43 @@
}
return (IModule[]) list.toArray(new IModule[list.size()]);
}
+ } catch( Throwable t ) {
+ t.printStackTrace();
+ }
return null;
}
public static String getID(IArchive pack) {
- return pack.getProject().getName() + ":" + pack.getArchiveFilePath();
+ return getID(pack, false);
}
+ protected static String getID(IArchive pack, boolean create) {
+ String propVal = pack.getProperty(MODULE_ID_PROPERTY_KEY);
+ if( propVal == null && create ) {
+ if( nextArchiveId == -1 ) {
+ nextArchiveId =
+ new
InstanceScope().getNode(JBossServerCorePlugin.PLUGIN_ID).getInt(MODULE_ID_PROPERTY_KEY,
0);
+ }
+ nextArchiveId++;
+ new
InstanceScope().getNode(JBossServerCorePlugin.PLUGIN_ID).putInt(MODULE_ID_PROPERTY_KEY,
nextArchiveId);
+ return MODULE_ID_PROPERTY_KEY + "." + nextArchiveId;
+ } else if( propVal == null ) {
+ return null;
+ }
+ return propVal;
+ }
+ public static String getProjectName(IArchiveNode node) {
+ IPath projPath = node.getProjectPath();
+ if( projPath == null ) return null;
+ IProject[] list = ResourcesPlugin.getWorkspace().getRoot().getProjects();
+ for( int i = 0; i < list.length; i++ )
+ if( list[i].getLocation().equals(projPath))
+ return list[i].getName();
+ return null;
+ }
public static String getName(IArchive pack) {
- return pack.getProject().getName() + "/" + pack.getName();
+ String projName = getProjectName(pack);
+ return projName + "/" + pack.getName();
}
public ModuleDelegate getModuleDelegate(IModule module) {
return (ModuleDelegate) moduleDelegates.get(module);
@@ -123,7 +179,7 @@
public IModule[] getModulesFromProject(IProject project) {
ArrayList mods = new ArrayList();
- IArchive[] packs = ArchivesCore.getProjectPackages(project, new NullProgressMonitor(),
true);
+ IArchive[] packs = ArchivesModelCore.getProjectPackages(project.getLocation(), new
NullProgressMonitor(), true);
for( int i = 0; i < packs.length; i++ ) {
IModule mod = getModuleFromPackage(packs[i]);
if( mod != null ) mods.add(mod);
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/types/EarArchiveType.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/types/EarArchiveType.java 2007-05-24
21:10:30 UTC (rev 2072)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/types/EarArchiveType.java 2007-05-24
21:11:03 UTC (rev 2073)
@@ -2,6 +2,7 @@
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
@@ -27,7 +28,7 @@
}
- public IArchive createDefaultConfiguration(IProject project, IProgressMonitor monitor)
{
+ public IArchive createDefaultConfiguration(String project, IProgressMonitor monitor) {
IModule mod = getModule(project);
if( mod != null )
return createDefaultConfigFromModule(mod, monitor);
@@ -35,13 +36,14 @@
return createDefaultConfiguration2(project, monitor);
}
- public IArchive createDefaultConfiguration2(IProject project,
+ public IArchive createDefaultConfiguration2(String projectName,
IProgressMonitor monitor) {
+ IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
IArchive topLevel = createGenericIArchive(project, null, project.getName() +
".ear");
topLevel.setDestinationPath(project.getLocation());
topLevel.setInWorkspace(true);
- fillDefaultConfiguration(project, topLevel, monitor);
+ fillDefaultConfiguration(projectName, topLevel, monitor);
return topLevel;
}
@@ -53,17 +55,18 @@
topLevel.setDestinationPath(project.getLocation());
topLevel.setInWorkspace(true);
- fillDefaultConfiguration(project, topLevel, monitor);
+ fillDefaultConfiguration(project.getName(), topLevel, monitor);
return topLevel;
}
- public IArchive fillDefaultConfiguration(IProject project, IArchive topLevel,
IProgressMonitor monitor) {
- IModule mod = getModule(project);
+ public IArchive fillDefaultConfiguration(String projectName, IArchive topLevel,
IProgressMonitor monitor) {
+ IModule mod = getModule(projectName);
+ IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
if( mod == null ) {
// add fileset
IArchiveFolder metainf = addFolder(project, topLevel, METAINF);
- addFileset(project, metainf, new Path(project.getName()).append(METAINF).toOSString(),
null);
+ addFileset(project, metainf, new Path(projectName).append(METAINF).toOSString(),
null);
} else {
// now add children
@@ -77,7 +80,7 @@
if( type == null ) {
childPack = createGenericIArchive(child.getProject(), null,
child.getProject().getName() + ".jar");
} else {
- childPack = type.createDefaultConfiguration(child.getProject(), new
NullProgressMonitor());
+ childPack = type.createDefaultConfiguration(child.getProject().getName(), new
NullProgressMonitor());
}
topLevel.addChild(childPack);
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/types/EjbArchiveType.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/types/EjbArchiveType.java 2007-05-24
21:10:30 UTC (rev 2072)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/types/EjbArchiveType.java 2007-05-24
21:11:03 UTC (rev 2073)
@@ -23,14 +23,18 @@
return "EJB JAR";
}
- public IArchive createDefaultConfiguration(IProject project, IProgressMonitor monitor)
{
+ public IArchive createDefaultConfiguration(String projectName, IProgressMonitor monitor)
{
+ IProject project = getProject(projectName);
IArchive topLevel = createGenericIArchive(project, null, project.getName() +
".jar");
- fillDefaultConfiguration(project, topLevel, monitor);
- return fillDefaultConfiguration(project, topLevel, monitor);
+ return fillDefaultConfiguration(project, topLevel, monitor);
}
+ public IArchive fillDefaultConfiguration(String projectName, IArchive topLevel,
IProgressMonitor monitor) {
+ return fillDefaultConfiguration(getProject(projectName), topLevel, monitor);
+ }
public IArchive fillDefaultConfiguration(IProject project, IArchive topLevel,
IProgressMonitor monitor) {
- IModule mod = getModule(project);
+
+ IModule mod = getModule(project.getName());
// TODO: module artifact to adapt a jboss ejb 30 to a module is MIA. CREATE IT
if( mod == null ) {
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/types/J2EEArchiveType.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/types/J2EEArchiveType.java 2007-05-24
21:10:30 UTC (rev 2072)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/types/J2EEArchiveType.java 2007-05-24
21:11:03 UTC (rev 2073)
@@ -61,11 +61,14 @@
return false;
}
- protected IModule getModule(IProject project) {
- IModuleArtifact moduleArtifact = ServerPlugin.loadModuleArtifact(project);
+ protected IModule getModule(String projectName) {
+ IModuleArtifact moduleArtifact =
ServerPlugin.loadModuleArtifact(getProject(projectName));
return moduleArtifact == null ? null : moduleArtifact.getModule();
}
+ protected IProject getProject(String projectName) {
+ return ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
+ }
// Find the source folder, then create the IPackage appropriately
public static IArchive createGenericIArchive(IProject project, String deployDirectory,
String packageName) {
try {
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/types/WarArchiveType.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/types/WarArchiveType.java 2007-05-24
21:10:30 UTC (rev 2072)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/packages/types/WarArchiveType.java 2007-05-24
21:11:03 UTC (rev 2073)
@@ -36,7 +36,6 @@
import org.eclipse.wst.server.core.IModule;
import org.jboss.ide.eclipse.archives.core.model.DirectoryScannerFactory;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
-import org.jboss.ide.eclipse.archives.core.model.IArchiveFileSet;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFolder;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
@@ -51,21 +50,25 @@
return "jst.web";
}
- public IArchive createDefaultConfiguration(IProject project, IProgressMonitor monitor)
{
- IModule mod = getModule(project);
+ public IArchive createDefaultConfiguration(String projectName, IProgressMonitor monitor)
{
+ IModule mod = getModule(projectName);
if( mod == null )
- return createDefaultConfiguration2(project, monitor);
+ return createDefaultConfiguration2(projectName, monitor);
else
return createDefaultConfigFromModule(mod, monitor);
}
- protected IArchive createDefaultConfiguration2(IProject project, IProgressMonitor
monitor) {
+ protected IArchive createDefaultConfiguration2(String projectName, IProgressMonitor
monitor) {
+ IProject project = getProject(projectName);
IArchive topLevel = createGenericIArchive(project, null, project.getName() +
".war");
return fillDefaultConfiguration(project, topLevel, monitor);
}
- public IArchive fillDefaultConfiguration(IProject project, IArchive topLevel,
IProgressMonitor monitor) {
- IModule mod = getModule(project);
+ public IArchive fillDefaultConfiguration(String projectName, IArchive topLevel,
IProgressMonitor monitor) {
+ return fillDefaultConfiguration(getProject(projectName), topLevel, monitor);
+ }
+ public IArchive fillDefaultConfiguration(IProject project, IArchive topLevel,
IProgressMonitor monitor) {
+ IModule mod = getModule(project.getName());
// topLevel.setDestinationPath(new Path(project.getName()));
// topLevel.setInWorkspace(true);
IArchiveFolder webinf = addFolder(project, topLevel, WEBINF);
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PackagesPublisher.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PackagesPublisher.java 2007-05-24
21:10:30 UTC (rev 2072)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PackagesPublisher.java 2007-05-24
21:11:03 UTC (rev 2073)
@@ -91,11 +91,13 @@
IArchive pack = getPackage(module);
// remove all of the deployed items
PublishEvent event = PublisherEventLogger.createSingleModuleTopEvent(eventRoot, module,
kind, deltaKind);
- IPath sourcePath = pack.getArchiveFilePath();
- IPath destPath = new
Path(server.getDeployDirectory()).append(sourcePath.lastSegment());
- // remove the entire file or folder
- PublisherFileUtilListener listener = new PublisherFileUtilListener(event);
- FileUtil.safeDelete(destPath.toFile(), listener);
+ if( pack != null ) {
+ IPath sourcePath = pack.getArchiveFilePath();
+ IPath destPath = new
Path(server.getDeployDirectory()).append(sourcePath.lastSegment());
+ // remove the entire file or folder
+ PublisherFileUtilListener listener = new PublisherFileUtilListener(event);
+ FileUtil.safeDelete(destPath.toFile(), listener);
+ }
}