Author: max.andersen(a)jboss.com
Date: 2007-08-08 21:07:40 -0400 (Wed, 08 Aug 2007)
New Revision: 2990
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/stripped/DeployableServerBehavior.java
trunk/seam/plugins/org.jboss.tools.seam.core/META-INF/MANIFEST.MF
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/project/facet/SeamFacetInstallDelegete.java
Log:
trying to auto deploy ds.xml
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/stripped/DeployableServerBehavior.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/stripped/DeployableServerBehavior.java 2007-08-08
23:50:12 UTC (rev 2989)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/stripped/DeployableServerBehavior.java 2007-08-09
01:07:40 UTC (rev 2990)
@@ -8,6 +8,7 @@
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.MultiStatus;
import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Status;
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
import org.eclipse.wst.server.core.IModule;
import org.eclipse.wst.server.core.IServer;
@@ -168,12 +169,12 @@
((Server)getServer()).getServerPublishInfo().clearCache();
((Server)getServer()).getServerPublishInfo().save();
- return null;
+ return Status.OK_STATUS;
} catch( Exception e ) {
}
- return null;
+ return Status.CANCEL_STATUS;
}
protected void addAndRemoveModules(IModule[] module, int deltaKind) {
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/META-INF/MANIFEST.MF
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/META-INF/MANIFEST.MF 2007-08-08 23:50:12
UTC (rev 2989)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/META-INF/MANIFEST.MF 2007-08-09 01:07:40
UTC (rev 2990)
@@ -33,7 +33,9 @@
org.eclipse.datatools.connectivity.db.generic.ui,
org.eclipse.datatools.connectivity.ui,
org.eclipse.datatools.connectivity.ui.dse,
- org.eclipse.jst.common.project.facet.core
+ org.eclipse.jst.common.project.facet.core,
+ org.jboss.ide.eclipse.as.core,
+ org.eclipse.wst.server.core
Provide-Package: org.jboss.tools.seam.core,
org.jboss.tools.seam.internal.core,
org.jboss.tools.seam.internal.core.scanner,
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/project/facet/SeamFacetInstallDelegete.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/project/facet/SeamFacetInstallDelegete.java 2007-08-08
23:50:12 UTC (rev 2989)
+++
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/project/facet/SeamFacetInstallDelegete.java 2007-08-09
01:07:40 UTC (rev 2990)
@@ -12,6 +12,7 @@
import java.io.File;
import java.io.IOException;
+import java.util.Iterator;
import org.apache.tools.ant.types.FilterSet;
import org.apache.tools.ant.types.FilterSetCollection;
@@ -20,6 +21,7 @@
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Path;
@@ -32,7 +34,16 @@
import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
import org.eclipse.wst.common.project.facet.core.IDelegate;
+import org.eclipse.wst.common.project.facet.core.IFacetedProject;
import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
+import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
+import org.eclipse.wst.server.core.IModule;
+import org.eclipse.wst.server.core.IRuntime;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.ServerCore;
+import org.eclipse.wst.server.core.model.ServerBehaviourDelegate;
+import org.jboss.ide.eclipse.as.core.server.stripped.DeployableServerBehavior;
+import org.jboss.ide.eclipse.as.core.singledeployable.SingleDeployableFactory;
import org.jboss.tools.common.model.util.EclipseResourceUtil;
import org.jboss.tools.seam.core.ISeamProject;
import org.jboss.tools.seam.core.SeamCorePlugin;
@@ -172,7 +183,7 @@
WebArtifactEdit edit = WebArtifactEdit.getWebArtifactEditForRead(project);
IVirtualComponent com = ComponentCore.createComponent(project);
IVirtualFolder webRootFolder = com.getRootFolder().getFolder(new Path("/"));
- IVirtualFolder srcRootFolder = com.getRootFolder().getFolder(new
Path("/WEB-INF/classes"));
+ final IVirtualFolder srcRootFolder = com.getRootFolder().getFolder(new
Path("/WEB-INF/classes"));
IContainer folder = webRootFolder.getUnderlyingFolder();
edit.dispose();
model.setProperty(ISeamFacetDataModelProperties.SEAM_PROJECT_NAME, project.getName());
@@ -296,6 +307,68 @@
if(model.getProperty(ISeamFacetDataModelProperties.JDBC_DRIVER_JAR_PATH)!=null)
AntCopyUtils.copyFiles((String[])model.getProperty(ISeamFacetDataModelProperties.JDBC_DRIVER_JAR_PATH),
webLibFolder);
+ Job create = new Job("Deploying datasource to server") {
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+
+ IFacetedProject facetedProject;
+ try {
+ facetedProject = ProjectFacetsManager.create(project);
+ } catch (CoreException e) {
+ return new Status(Status.WARNING, SeamCorePlugin.PLUGIN_ID, "No server
selected to deploy datasource to");
+ }
+ org.eclipse.wst.common.project.facet.core.runtime.IRuntime primaryRuntime =
facetedProject.getPrimaryRuntime();
+ IServer s = null;
+ IServer[] servers = ServerCore.getServers();
+ for (IServer server : servers) {
+ String primaryName = primaryRuntime.getName();
+ IRuntime runtime = server.getRuntime();
+ if(runtime!=null) {
+ String serverName = runtime.getName();
+ if(primaryName.equals(serverName)) {
+ s = server;
+ }
+ }
+ }
+
+
+
+
+
+
+ if(s==null) {
+ return new Status(Status.WARNING, SeamCorePlugin.PLUGIN_ID, "No server
selected to deploy datasource to");
+ }
+
+ // convert it to a DeployableServer instance
+ DeployableServerBehavior deployer = (DeployableServerBehavior)
s.loadAdapter(DeployableServerBehavior.class, null);
+
+ // if its not null, the adaptation worked.
+ if( deployer == null ) {
+ return new Status(Status.WARNING, SeamCorePlugin.PLUGIN_ID,
"Server did not support deploy of datasource.");
+ }
+
+ IContainer underlyingFolder = srcRootFolder.getUnderlyingFolder();
+
+ IPath projectPath = new
Path("/"+underlyingFolder.getProject().getName());
+ IPath projectRelativePath = underlyingFolder.getProjectRelativePath();
+
+ IPath append =
projectPath.append(projectRelativePath).append(project.getName()+"-ds.xml");
+
+ if(SingleDeployableFactory.makeDeployable(append)) {
+
+ IModule module = SingleDeployableFactory.findModule(append);
+
+ // custom API to deploy / publish only one module.
+ IStatus t = deployer.publishOneModule(IServer.PUBLISH_FULL, new IModule[] {
module}, ServerBehaviourDelegate.ADDED, monitor);
+ return t;
+ } else {
+ return new Status(Status.WARNING, SeamCorePlugin.PLUGIN_ID, "Could not deploy
datasource " + append);
+ }
+ }
+ };
+ create.setRule(ResourcesPlugin.getWorkspace().getRoot());
+ create.schedule();
} else {
Show replies by date