You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by sp...@apache.org on 2006/12/11 18:59:08 UTC
svn commit: r485779 - in /geronimo/devtools/eclipse-plugin/trunk: ./
modules/eclipse-support/
modules/eclipse-support/src/main/java/org/apache/geronimo/deployment/
modules/eclipse-support/src/main/resources/
plugins/org.apache.geronimo.st.core/src/org/...
Author: sppatel
Date: Mon Dec 11 09:59:07 2006
New Revision: 485779
URL: http://svn.apache.org/viewvc?view=rev&rev=485779
Log:
r3165@sppatel-009027040242: sppatel | 2006-12-05 12:31:45 -0500
G1526 local branch
r3166@sppatel-009027040242: sppatel | 2006-12-05 12:49:05 -0500
update EclipseDeployable to new interface
r3167@sppatel-009027040242: sppatel | 2006-12-05 12:51:52 -0500
throw DeploymentException on constructor
r3168@sppatel-009027040242: sppatel | 2006-12-05 13:27:17 -0500
make EclipseDeployable a gbean and create plan
r3194@sppatel-009027040242: sppatel | 2006-12-06 13:54:53 -0500
need empty constructor
r3214@sppatel-009027040242: sppatel | 2006-12-07 13:15:06 -0500
add dependency
r3215@sppatel-009027040242: sppatel | 2006-12-07 13:17:18 -0500
enable run resource from workspace
r3216@sppatel-009027040242: sppatel | 2006-12-07 13:18:30 -0500
move config gen to command
r3217@sppatel-009027040242: sppatel | 2006-12-07 13:19:27 -0500
remove moved methods
r3218@sppatel-009027040242: sppatel | 2006-12-07 14:11:10 -0500
need to make dependency on configuration due to class cast
r3224@sppatel-009027040242: sppatel | 2006-12-07 15:29:29 -0500
fix resolve and getModuleContextResource methods
r3233@sppatel-009027040242: sppatel | 2006-12-07 16:51:26 -0500
fix NPE
r3237@sppatel-009027040242: sppatel | 2006-12-07 18:11:47 -0500
utility method to get deployment plan file
r3238@sppatel-009027040242: sppatel | 2006-12-07 18:12:34 -0500
pass in deployment plan for redeploy
Added:
geronimo/devtools/eclipse-plugin/trunk/modules/eclipse-support/src/main/resources/
geronimo/devtools/eclipse-plugin/trunk/modules/eclipse-support/src/main/resources/geronimo-service.xml (with props)
Modified:
geronimo/devtools/eclipse-plugin/trunk/ (props changed)
geronimo/devtools/eclipse-plugin/trunk/modules/eclipse-support/pom.xml
geronimo/devtools/eclipse-plugin/trunk/modules/eclipse-support/src/main/java/org/apache/geronimo/deployment/EclipseDeployableModule.java
geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.core/src/org/apache/geronimo/st/core/GeronimoServerBehaviourDelegate.java
geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.core/src/org/apache/geronimo/st/core/GeronimoUtils.java
geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.core/src/org/apache/geronimo/st/core/commands/DeployCommand.java
geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.core/src/org/apache/geronimo/st/core/commands/RedeployCommand.java
geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.ui/src/org/apache/geronimo/st/v11/ui/sections/ServerEditorTestEnvSection.java
Propchange: geronimo/devtools/eclipse-plugin/trunk/
------------------------------------------------------------------------------
svk:merge = 47d51c14-9805-4038-8224-40f2b3020a56:/local/G1526-eclipse:3238
Modified: geronimo/devtools/eclipse-plugin/trunk/modules/eclipse-support/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/modules/eclipse-support/pom.xml?view=diff&rev=485779&r1=485778&r2=485779
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/modules/eclipse-support/pom.xml (original)
+++ geronimo/devtools/eclipse-plugin/trunk/modules/eclipse-support/pom.xml Mon Dec 11 09:59:07 2006
@@ -42,11 +42,11 @@
<version>1.0-SNAPSHOT</version>
<name>Geronimo Eclipse Plugin :: Eclipse Deployment Support</name>
<dependencies>
- <!--<dependency>
+ <dependency>
<groupId>org.apache.geronimo.modules</groupId>
<artifactId>geronimo-deployment</artifactId>
<version>1.2-SNAPSHOT</version>
- </dependency>-->
+ </dependency>
<dependency>
<groupId>xmlbeans</groupId>
<artifactId>xbean</artifactId>
Modified: geronimo/devtools/eclipse-plugin/trunk/modules/eclipse-support/src/main/java/org/apache/geronimo/deployment/EclipseDeployableModule.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/modules/eclipse-support/src/main/java/org/apache/geronimo/deployment/EclipseDeployableModule.java?view=diff&rev=485779&r1=485778&r2=485779
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/modules/eclipse-support/src/main/java/org/apache/geronimo/deployment/EclipseDeployableModule.java (original)
+++ geronimo/devtools/eclipse-plugin/trunk/modules/eclipse-support/src/main/java/org/apache/geronimo/deployment/EclipseDeployableModule.java Mon Dec 11 09:59:07 2006
@@ -14,62 +14,49 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
package org.apache.geronimo.deployment;
import java.io.File;
import java.io.IOException;
import java.net.URL;
+import java.util.jar.JarFile;
+import org.apache.geronimo.common.DeploymentException;
+import org.apache.geronimo.gbean.GBeanInfo;
+import org.apache.geronimo.gbean.GBeanInfoBuilder;
import org.apache.geronimo.xbeans.eclipse.deployment.ModuleDocument;
import org.apache.geronimo.xbeans.eclipse.deployment.ClassesDocument.Classes;
import org.apache.geronimo.xbeans.eclipse.deployment.ModuleDocument.Module;
import org.apache.geronimo.xbeans.eclipse.deployment.ResourcesDocument.Resources;
-import org.apache.xmlbeans.XmlException;
/**
* @version $Rev$ $Date$
*/
-public class EclipseDeployableModule /*implements DeployableModule*/ {
+public class EclipseDeployableModule implements DeployableModule {
private Module module = null;
private File root;
-
+
private String uri;
private File[] classesFolders = null;
private File[] resourcesFolders = null;
- //private DeployableModule[] children = null;
-
+ private DeployableModule[] children = null;
+
private boolean archived = false;
-
- public EclipseDeployableModule(File config) {
+
+ public EclipseDeployableModule() {
+ }
+
+ public EclipseDeployableModule(File config) throws DeploymentException {
try {
module = ModuleDocument.Factory.parse(config).getModule();
init();
- } catch (XmlException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
+ } catch (Exception e) {
+ throw new DeploymentException(e);
}
}
@@ -125,13 +112,9 @@
Resources[] resources = module.getResourcesArray();
resourcesFolders = new File[resources.length];
- for (int i = 0; i < classesFolders.length; i++) {
+ for (int i = 0; i < resourcesFolders.length; i++) {
File file = new File(resources[i].getPath());
- if (file.exists()) {
- resourcesFolders[i] = file;
- } else {
-
- }
+ resourcesFolders[i] = file;
}
return resourcesFolders;
@@ -142,20 +125,24 @@
*
* @see org.apache.geronimo.deployment.DeployableModule#getModules()
*/
- /*public DeployableModule[] getModules() {
+ public DeployableModule[] getModules() {
if (children != null) {
return children;
}
- Module[] childModules = module.getChildren().getModuleArray();
- children = new DeployableModule[childModules.length];
- for (int i = 0; i < childModules.length; i++) {
- Module child = childModules[i];
- children[i] = new EclipseDeployableModule(child);
+ if (module.getChildren() != null) {
+ Module[] childModules = module.getChildren().getModuleArray();
+ children = new DeployableModule[childModules.length];
+ for (int i = 0; i < childModules.length; i++) {
+ Module child = childModules[i];
+ children[i] = new EclipseDeployableModule(child);
+ }
+ } else {
+ children = new EclipseDeployableModule[]{};
}
return children;
- }*/
+ }
/*
* (non-Javadoc)
@@ -166,7 +153,11 @@
if (root != null) {
return root;
}
- root = new File(module.getPath());
+ if (module.getPath() != null) {
+ root = new File(module.getPath());
+ } else {
+ root = new File(module.getResourcesArray(0).getPath());
+ }
return root;
}
@@ -176,7 +167,7 @@
* @see org.apache.geronimo.deployment.DeployableModule#getURI()
*/
public String getURI() {
- if(uri != null) {
+ if (uri != null) {
return uri;
}
uri = module.getName();
@@ -198,12 +189,14 @@
* @see org.apache.geronimo.deployment.DeployableModule#resolve(java.lang.String)
*/
public URL resolve(String path) throws IOException {
+ System.out.println("Resolving: " + path);
File[] search = getModuleContextResources();
- for(int i = 0; i < search.length; i++) {
- String findPath = search[i].getAbsolutePath().concat(path);
- File file = new File(findPath);
- if(file.exists())
+ for (int i = 0; i < search.length; i++) {
+ File file = new File(search[i].getAbsolutePath(), path);
+ if (file.exists()) {
+ System.out.println("Resolved to: " + file);
return file.toURL();
+ }
}
return null;
}
@@ -213,17 +206,40 @@
*
* @see org.apache.geronimo.deployment.DeployableModule#resolveModule(java.lang.String)
*/
-/* public DeployableModule resolveModule(String uri) throws IOException {
+ public DeployableModule resolveModule(String uri) throws IOException {
DeployableModule[] children = getModules();
- for(int i = 0; i < children.length; i++) {
- if(children[i].getURI().equals(uri)) {
+ for (int i = 0; i < children.length; i++) {
+ if (children[i].getURI().equals(uri)) {
return children[i];
}
}
return null;
- }*/
-
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.geronimo.deployment.DeployableModule#getArchive()
+ */
+ public JarFile getArchive() {
+ return null;
+ }
+
private void init() {
archived = getRoot().isFile();
}
+
+ public static final GBeanInfo GBEAN_INFO;
+
+ static {
+ GBeanInfoBuilder infoBuilder = GBeanInfoBuilder.createStatic(
+ EclipseDeployableModule.class, "DeployableModule");
+ infoBuilder.addInterface(DeployableModule.class);
+ GBEAN_INFO = infoBuilder.getBeanInfo();
+ }
+
+ public static GBeanInfo getGBeanInfo() {
+ return GBEAN_INFO;
+ }
+
}
Added: geronimo/devtools/eclipse-plugin/trunk/modules/eclipse-support/src/main/resources/geronimo-service.xml
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/modules/eclipse-support/src/main/resources/geronimo-service.xml?view=auto&rev=485779
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/modules/eclipse-support/src/main/resources/geronimo-service.xml (added)
+++ geronimo/devtools/eclipse-plugin/trunk/modules/eclipse-support/src/main/resources/geronimo-service.xml Mon Dec 11 09:59:07 2006
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<module xmlns="http://geronimo.apache.org/xml/ns/deployment-1.1">
+ <environment>
+ <moduleId>
+ <groupId>org.apache.geronimo.eclipse.deployment</groupId>
+ <artifactId>eclipse-deployment-support</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <type>car</type>
+ </moduleId>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.geronimo.configs</groupId>
+ <artifactId>geronimo-gbean-deployer</artifactId>
+ <version>1.2-SNAPSHOT</version>
+ <type>car</type>
+ </dependency>
+ <dependency>
+ <groupId>xmlbeans</groupId>
+ <artifactId>xbean</artifactId>
+ <version>2.0.0</version>
+ <type>jar</type>
+ <import>classes</import>
+ </dependency>
+ <dependency>
+ <groupId>stax</groupId>
+ <artifactId>stax-api</artifactId>
+ <version>1.0</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </environment>
+ <gbean name="EclipseDeployable" class="org.apache.geronimo.deployment.EclipseDeployableModule" />
+</module>
\ No newline at end of file
Propchange: geronimo/devtools/eclipse-plugin/trunk/modules/eclipse-support/src/main/resources/geronimo-service.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/devtools/eclipse-plugin/trunk/modules/eclipse-support/src/main/resources/geronimo-service.xml
------------------------------------------------------------------------------
svn:keywords = Date Rev
Propchange: geronimo/devtools/eclipse-plugin/trunk/modules/eclipse-support/src/main/resources/geronimo-service.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.core/src/org/apache/geronimo/st/core/GeronimoServerBehaviourDelegate.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.core/src/org/apache/geronimo/st/core/GeronimoServerBehaviourDelegate.java?view=diff&rev=485779&r1=485778&r2=485779
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.core/src/org/apache/geronimo/st/core/GeronimoServerBehaviourDelegate.java (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.core/src/org/apache/geronimo/st/core/GeronimoServerBehaviourDelegate.java Mon Dec 11 09:59:07 2006
@@ -16,8 +16,6 @@
*/
package org.apache.geronimo.st.core;
-import java.io.File;
-import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
@@ -43,12 +41,7 @@
import org.apache.geronimo.st.core.operations.ISharedLibEntryCreationDataModelProperties;
import org.apache.geronimo.st.core.operations.SharedLibEntryCreationOperation;
import org.apache.geronimo.st.core.operations.SharedLibEntryDataModelProvider;
-import org.apache.geronimo.xbeans.eclipse.deployment.ModuleDocument;
-import org.apache.geronimo.xbeans.eclipse.deployment.ChildrenDocument.Children;
-import org.apache.geronimo.xbeans.eclipse.deployment.ModuleDocument.Module;
-import org.apache.xmlbeans.XmlOptions;
import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.resources.IContainer;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
@@ -67,11 +60,6 @@
import org.eclipse.jdt.launching.IRuntimeClasspathEntry;
import org.eclipse.jdt.launching.IVMInstall;
import org.eclipse.jdt.launching.JavaRuntime;
-import org.eclipse.jst.j2ee.internal.deployables.J2EEFlexProjDeployable;
-import org.eclipse.wst.common.componentcore.ComponentCore;
-import org.eclipse.wst.common.componentcore.internal.resources.VirtualArchiveComponent;
-import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
-import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
import org.eclipse.wst.common.frameworks.datamodel.IDataModelOperation;
@@ -364,7 +352,6 @@
}
protected void invokeCommand(int deltaKind, IModule module) throws CoreException {
- generateRunFromWorkspaceConfig(module);
ClassLoader old = Thread.currentThread().getContextClassLoader();
try {
@@ -398,72 +385,7 @@
} finally {
Thread.currentThread().setContextClassLoader(old);
}
- }
-
- private void generateRunFromWorkspaceConfig(IModule module) {
- if (getGeronimoServer().isRunFromWorkspace()) {
- IPath configDir = Activator.getDefault().getStateLocation().append("looseconfig").append("server_" + getServer().getId());
- configDir.toFile().mkdirs();
-
- ModuleDocument doc = ModuleDocument.Factory.newInstance();
- Module deployable = doc.addNewModule();
- processModuleConfig(deployable, module);
-
- XmlOptions options = new XmlOptions();
- options.setSavePrettyPrint();
- File file = configDir.append(module.getName()).addFileExtension("xml").toFile();
- Trace.trace(Trace.INFO,doc.xmlText(options));
- try {
- doc.save(file, options);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
-
- private void processModuleConfig(Module deployable, IModule serverModule) {
-
- deployable.setName(serverModule.getName());
-
- J2EEFlexProjDeployable j2eeModule = (J2EEFlexProjDeployable) serverModule.loadAdapter(J2EEFlexProjDeployable.class, null);
- if (j2eeModule != null) {
-
- if(j2eeModule.isBinary()) {
- deployable.setPath(serverModule.getName());
- return;
- }
-
- IContainer[] containers = j2eeModule.getResourceFolders();
- for (int i = 0; i < containers.length; i++) {
- deployable.addNewResources().setPath(containers[i].getLocation().toOSString());
- }
- containers = j2eeModule.getJavaOutputFolders();
- for (int i = 0; i < containers.length; i++) {
- deployable.addNewClasses().setPath(containers[i].getLocation().toOSString());
- }
- }
-
- IModule[] children = j2eeModule.getChildModules();
- if (children.length > 0) {
- Children modChild = deployable.addNewChildren();
- for (int i = 0; i < children.length; i++) {
- processModuleConfig(modChild.addNewModule(), children[i]);
- }
- }
-
- IVirtualComponent vc = ComponentCore.createComponent(serverModule.getProject());
- IVirtualReference[] refs = vc.getReferences();
- for(int i = 0; i< refs.length; i++) {
- IVirtualComponent refComp = refs[i].getReferencedComponent();
- if(refComp.isBinary()) {
- Children modChild = deployable.getChildren() == null ? deployable.addNewChildren() : deployable.getChildren();
- Module binaryModule = modChild.addNewModule();
- VirtualArchiveComponent archiveComp = (VirtualArchiveComponent) refComp;
- binaryModule.setName(archiveComp.getUnderlyingDiskFile().getName());
- binaryModule.setPath(archiveComp.getUnderlyingDiskFile().getAbsolutePath());
- }
- }
- }
+ }
/**
* @param module
Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.core/src/org/apache/geronimo/st/core/GeronimoUtils.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.core/src/org/apache/geronimo/st/core/GeronimoUtils.java?view=diff&rev=485779&r1=485778&r2=485779
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.core/src/org/apache/geronimo/st/core/GeronimoUtils.java (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.core/src/org/apache/geronimo/st/core/GeronimoUtils.java Mon Dec 11 09:59:07 2006
@@ -23,6 +23,7 @@
import org.apache.geronimo.st.core.internal.Trace;
import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.emf.common.util.URI;
@@ -31,9 +32,11 @@
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.xmi.XMIResource;
import org.eclipse.jst.j2ee.internal.deployables.J2EEFlexProjDeployable;
+import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities;
import org.eclipse.jst.server.core.IWebModule;
import org.eclipse.wst.common.componentcore.ArtifactEdit;
import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.internal.util.IModuleConstants;
import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
import org.eclipse.wst.server.core.IModule;
@@ -85,6 +88,24 @@
Trace.trace(Trace.SEVERE, "getJSR88ModuleType = null");
return null;
}
+ }
+
+ public static IFile getDeploymentPlanFile(IModule module) {
+ IProject project = module.getProject();
+ IVirtualComponent comp = ComponentCore.createComponent(project);
+ String type = J2EEProjectUtilities.getJ2EEProjectType(project);
+ if (IModuleConstants.JST_WEB_MODULE.equals(type)) {
+ return getWebDeploymentPlanFile(comp);
+ } else if (IModuleConstants.JST_EJB_MODULE.equals(type)) {
+ return getOpenEjbDeploymentPlanFile(comp);
+ } else if (IModuleConstants.JST_EAR_MODULE.equals(type)) {
+ return getApplicationDeploymentPlanFile(comp);
+ } else if (IModuleConstants.JST_CONNECTOR_MODULE.equals(type)) {
+ return getConnectorDeploymentPlanFile(comp);
+ } else if (IModuleConstants.JST_UTILITY_MODULE.equals(type)) {
+ return getServiceDeploymentPlanFile(comp);
+ }
+ return null;
}
public static IFile getWebDeploymentPlanFile(IVirtualComponent comp) {
Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.core/src/org/apache/geronimo/st/core/commands/DeployCommand.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.core/src/org/apache/geronimo/st/core/commands/DeployCommand.java?view=diff&rev=485779&r1=485778&r2=485779
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.core/src/org/apache/geronimo/st/core/commands/DeployCommand.java (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.core/src/org/apache/geronimo/st/core/commands/DeployCommand.java Mon Dec 11 09:59:07 2006
@@ -17,15 +17,23 @@
package org.apache.geronimo.st.core.commands;
import java.io.File;
+import java.io.IOException;
+import org.apache.geronimo.st.core.Activator;
import org.apache.geronimo.st.core.DeploymentUtils;
-import org.apache.geronimo.st.core.GeronimoUtils;
import org.apache.geronimo.st.core.IGeronimoServer;
import org.apache.geronimo.st.core.internal.Trace;
+import org.apache.geronimo.xbeans.eclipse.deployment.ModuleDocument;
+import org.apache.geronimo.xbeans.eclipse.deployment.ChildrenDocument.Children;
+import org.apache.geronimo.xbeans.eclipse.deployment.ModuleDocument.Module;
+import org.apache.xmlbeans.XmlOptions;
+import org.eclipse.core.resources.IContainer;
import org.eclipse.core.runtime.IPath;
-import org.eclipse.wst.common.componentcore.internal.StructureEdit;
-import org.eclipse.wst.common.componentcore.internal.WorkbenchComponent;
-import org.eclipse.wst.common.componentcore.internal.impl.WorkbenchComponentImpl;
+import org.eclipse.jst.j2ee.internal.deployables.J2EEFlexProjDeployable;
+import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.internal.resources.VirtualArchiveComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
import org.eclipse.wst.server.core.IModule;
import org.eclipse.wst.server.core.IServer;
@@ -45,25 +53,78 @@
public File getTargetFile() {
File file = null;
IGeronimoServer gs = getGeronimoServer();
- if (gs.isRunFromWorkspace() && !GeronimoUtils.isEarModule(getModule())) {
- StructureEdit moduleCore = StructureEdit.getStructureEditForRead(getModule().getProject());
- try {
- WorkbenchComponent component = moduleCore.getComponent();
- IPath loc = ((WorkbenchComponentImpl) component).getDefaultSourceRoot();
- file = getModule().getProject().findMember(loc).getLocation().toFile();
- } finally {
- if (moduleCore != null)
- moduleCore.dispose();
- }
+ if (gs.isRunFromWorkspace()) {
+ file = generateRunFromWorkspaceConfig(getModule());
} else {
IPath outputDir = DeploymentUtils.STATE_LOC.append("server_" + getServer().getId());
outputDir.toFile().mkdirs();
file = DeploymentUtils.createJarFile(getModule(), outputDir);
}
-
Trace.trace(Trace.INFO, "File: " + file.getAbsolutePath());
-
return file;
+ }
+
+ protected File generateRunFromWorkspaceConfig(IModule module) {
+ IPath configDir = Activator.getDefault().getStateLocation().append("looseconfig").append("server_" + getServer().getId());
+ configDir.toFile().mkdirs();
+
+ ModuleDocument doc = ModuleDocument.Factory.newInstance();
+ Module deployable = doc.addNewModule();
+ processModuleConfig(deployable, module);
+
+ XmlOptions options = new XmlOptions();
+ options.setSavePrettyPrint();
+ File file = configDir.append(module.getName()).addFileExtension("xml").toFile();
+ Trace.trace(Trace.INFO,doc.xmlText(options));
+ try {
+ doc.save(file, options);
+ return file;
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ private void processModuleConfig(Module deployable, IModule serverModule) {
+ deployable.setName(serverModule.getName());
+ J2EEFlexProjDeployable j2eeModule = (J2EEFlexProjDeployable) serverModule.loadAdapter(J2EEFlexProjDeployable.class, null);
+ if (j2eeModule != null) {
+
+ if(j2eeModule.isBinary()) {
+ deployable.setPath(serverModule.getName());
+ return;
+ }
+
+ IContainer[] containers = j2eeModule.getResourceFolders();
+ for (int i = 0; i < containers.length; i++) {
+ deployable.addNewResources().setPath(containers[i].getLocation().toOSString());
+ }
+ containers = j2eeModule.getJavaOutputFolders();
+ for (int i = 0; i < containers.length; i++) {
+ deployable.addNewClasses().setPath(containers[i].getLocation().toOSString());
+ }
+ }
+
+ IModule[] children = j2eeModule.getChildModules();
+ if (children.length > 0) {
+ Children modChild = deployable.addNewChildren();
+ for (int i = 0; i < children.length; i++) {
+ processModuleConfig(modChild.addNewModule(), children[i]);
+ }
+ }
+
+ IVirtualComponent vc = ComponentCore.createComponent(serverModule.getProject());
+ IVirtualReference[] refs = vc.getReferences();
+ for(int i = 0; i< refs.length; i++) {
+ IVirtualComponent refComp = refs[i].getReferencedComponent();
+ if(refComp.isBinary()) {
+ Children modChild = deployable.getChildren() == null ? deployable.addNewChildren() : deployable.getChildren();
+ Module binaryModule = modChild.addNewModule();
+ VirtualArchiveComponent archiveComp = (VirtualArchiveComponent) refComp;
+ binaryModule.setName(archiveComp.getUnderlyingDiskFile().getName());
+ binaryModule.setPath(archiveComp.getUnderlyingDiskFile().getAbsolutePath());
+ }
+ }
}
}
Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.core/src/org/apache/geronimo/st/core/commands/RedeployCommand.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.core/src/org/apache/geronimo/st/core/commands/RedeployCommand.java?view=diff&rev=485779&r1=485778&r2=485779
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.core/src/org/apache/geronimo/st/core/commands/RedeployCommand.java (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.core/src/org/apache/geronimo/st/core/commands/RedeployCommand.java Mon Dec 11 09:59:07 2006
@@ -20,6 +20,7 @@
import javax.enterprise.deploy.spi.TargetModuleID;
import org.apache.geronimo.st.core.DeploymentUtils;
+import org.apache.geronimo.st.core.GeronimoUtils;
import org.apache.geronimo.st.core.IGeronimoServer;
import org.apache.geronimo.st.core.ModuleArtifactMapper;
import org.eclipse.core.runtime.CoreException;
@@ -57,7 +58,7 @@
ids = new TargetModuleID[] {id};
}
- return new DeploymentCmdStatus(Status.OK_STATUS, getDeploymentManager().redeploy(ids, getTargetFile(), null));
+ return new DeploymentCmdStatus(Status.OK_STATUS, getDeploymentManager().redeploy(ids, getTargetFile(), GeronimoUtils.getDeploymentPlanFile(getModule()).getLocation().toFile()));
}
/*
Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.ui/src/org/apache/geronimo/st/v11/ui/sections/ServerEditorTestEnvSection.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.ui/src/org/apache/geronimo/st/v11/ui/sections/ServerEditorTestEnvSection.java?view=diff&rev=485779&r1=485778&r2=485779
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.ui/src/org/apache/geronimo/st/v11/ui/sections/ServerEditorTestEnvSection.java (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.ui/src/org/apache/geronimo/st/v11/ui/sections/ServerEditorTestEnvSection.java Mon Dec 11 09:59:07 2006
@@ -87,12 +87,11 @@
runFromWorkspace = toolkit.createButton(composite, Messages.editorSectionRunFromWorkspace, SWT.CHECK);
runFromWorkspace.setSelection(gs.isRunFromWorkspace());
// TODO temporarily disable support until new implementation
- runFromWorkspace.setEnabled(false);
+ //runFromWorkspace.setEnabled(false);
runFromWorkspace.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
- execute(new SetRunFromWorkspaceCommand(server, runFromWorkspace
- .getSelection()));
+ execute(new SetRunFromWorkspaceCommand(server, runFromWorkspace.getSelection()));
}
public void widgetDefaultSelected(SelectionEvent e) {