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/04/30 17:41:06 UTC

svn commit: r398358 - in /geronimo/devtools/eclipse-plugin/trunk/plugins: org.apache.geronimo.st.jmxagent/src/org/apache/geronimo/st/jmxagent/ org.apache.geronimo.st.v11.core/src/org/apache/geronimo/st/v11/core/

Author: sppatel
Date: Sun Apr 30 08:41:04 2006
New Revision: 398358

URL: http://svn.apache.org/viewcvs?rev=398358&view=rev
Log:
install on startup

Added:
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.core/src/org/apache/geronimo/st/v11/core/ConfigStoreInstaller.java   (with props)
Modified:
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.jmxagent/src/org/apache/geronimo/st/jmxagent/Activator.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.core/src/org/apache/geronimo/st/v11/core/GeronimoServer.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.core/src/org/apache/geronimo/st/v11/core/GeronimoServerBehaviour.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.core/src/org/apache/geronimo/st/v11/core/ServerLifeCycleListener.java

Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.jmxagent/src/org/apache/geronimo/st/jmxagent/Activator.java
URL: http://svn.apache.org/viewcvs/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.jmxagent/src/org/apache/geronimo/st/jmxagent/Activator.java?rev=398358&r1=398357&r2=398358&view=diff
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.jmxagent/src/org/apache/geronimo/st/jmxagent/Activator.java (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.jmxagent/src/org/apache/geronimo/st/jmxagent/Activator.java Sun Apr 30 08:41:04 2006
@@ -27,6 +27,8 @@
 
 	// The plug-in ID
 	public static final String PLUGIN_ID = "org.apache.geronimo.st.jmxagent";
+	
+	public static final String SERVICE_ID = "default/eclipse-config-store/1.0/car";
 
 	// The shared instance
 	private static Activator plugin;

Added: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.core/src/org/apache/geronimo/st/v11/core/ConfigStoreInstaller.java
URL: http://svn.apache.org/viewcvs/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.core/src/org/apache/geronimo/st/v11/core/ConfigStoreInstaller.java?rev=398358&view=auto
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.core/src/org/apache/geronimo/st/v11/core/ConfigStoreInstaller.java (added)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.core/src/org/apache/geronimo/st/v11/core/ConfigStoreInstaller.java Sun Apr 30 08:41:04 2006
@@ -0,0 +1,83 @@
+package org.apache.geronimo.st.v11.core;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+
+import javax.enterprise.deploy.spi.Target;
+import javax.enterprise.deploy.spi.TargetModuleID;
+import javax.enterprise.deploy.spi.exceptions.DeploymentManagerCreationException;
+import javax.enterprise.deploy.spi.status.ProgressObject;
+
+import org.apache.geronimo.deployment.plugin.GeronimoDeploymentManager;
+import org.apache.geronimo.deployment.plugin.TargetModuleIDImpl;
+import org.apache.geronimo.st.core.GeronimoConnectionFactory;
+import org.apache.geronimo.st.jmxagent.Activator;
+import org.apache.geronimo.st.v11.core.internal.Trace;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.IServerListener;
+import org.eclipse.wst.server.core.ServerEvent;
+
+public class ConfigStoreInstaller implements IServerListener {
+
+	public void serverChanged(ServerEvent event) {
+		Trace.trace(Trace.INFO, "--> ConfigStoreInstaller.serverChanged()");
+		if (event.getKind() == (ServerEvent.SERVER_CHANGE | ServerEvent.STATE_CHANGE)) {
+			if (event.getServer().getServerState() == IServer.STATE_STARTED) {
+				install(event.getServer());
+			}
+		}
+		Trace.trace(Trace.INFO, "<-- ConfigStoreInstaller().serverChanged()");
+	}
+
+	private void install(IServer server) {
+		Trace.trace(Trace.INFO, "--> ConfigStoreInstaller.install()");
+		try {
+
+			GeronimoDeploymentManager dm = (GeronimoDeploymentManager) GeronimoConnectionFactory
+					.getInstance().getDeploymentManager(server);
+
+			Target target = dm.getTargets()[0];
+			Trace.trace(Trace.INFO, "target name: " + target.getName());
+
+			File jar = new File(resolveFromBundle(
+					"/lib/config-store-service-1.0-SNAPSHOT.jar").getFile());
+			File plan = new File(resolveFromBundle("/plan.xml").getFile());
+
+			ProgressObject po = dm.distribute(new Target[] { target }, jar,
+					plan);
+			waitForCompletion(po);
+
+			TargetModuleID id = new TargetModuleIDImpl(target,
+					Activator.SERVICE_ID);
+
+			po = dm.start(new TargetModuleID[] { id });
+			waitForCompletion(po);
+
+		} catch (DeploymentManagerCreationException e) {
+			e.printStackTrace();
+		}
+		Trace.trace(Trace.INFO, "--> ConfigStoreInstaller.install()");
+	}
+
+	private URL resolveFromBundle(String path) {
+		try {
+			return Platform.resolve(Activator.getDefault().getBundle()
+					.getEntry(path));
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
+
+	private void waitForCompletion(ProgressObject po) {
+		while (po.getDeploymentStatus().isRunning()) {
+			try {
+				Thread.sleep(100);
+			} catch (InterruptedException e) {
+
+			}
+		}
+	}
+}

Propchange: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.core/src/org/apache/geronimo/st/v11/core/ConfigStoreInstaller.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.core/src/org/apache/geronimo/st/v11/core/ConfigStoreInstaller.java
------------------------------------------------------------------------------
    svn:keywords = Date Rev

Propchange: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.core/src/org/apache/geronimo/st/v11/core/ConfigStoreInstaller.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.core/src/org/apache/geronimo/st/v11/core/GeronimoServer.java
URL: http://svn.apache.org/viewcvs/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.core/src/org/apache/geronimo/st/v11/core/GeronimoServer.java?rev=398358&r1=398357&r2=398358&view=diff
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.core/src/org/apache/geronimo/st/v11/core/GeronimoServer.java (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.core/src/org/apache/geronimo/st/v11/core/GeronimoServer.java Sun Apr 30 08:41:04 2006
@@ -16,11 +16,13 @@
 package org.apache.geronimo.st.v11.core;
 
 import javax.enterprise.deploy.spi.DeploymentManager;
+import javax.enterprise.deploy.spi.exceptions.DeploymentManagerCreationException;
 import javax.enterprise.deploy.spi.factories.DeploymentFactory;
 
 import org.apache.geronimo.deployment.plugin.factories.DeploymentFactoryImpl;
 import org.apache.geronimo.deployment.plugin.jmx.JMXDeploymentManager;
 import org.apache.geronimo.st.core.GenericGeronimoServer;
+import org.apache.geronimo.st.core.GeronimoConnectionFactory;
 import org.apache.geronimo.st.core.IGeronimoVersionHandler;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.wst.server.core.IModule;
@@ -92,10 +94,13 @@
 	 * @see org.apache.geronimo.st.core.IGeronimoServer#getJSR88DeployerJar()
 	 */
 	public IPath getJSR88DeployerJar() {
-		return getServer().getRuntime().getLocation().append("/lib/geronimo-deploy-jsr88-1.1-SNAPSHOT.jar");
+		return getServer().getRuntime().getLocation().append(
+				"/lib/geronimo-deploy-jsr88-1.1-SNAPSHOT.jar");
 	}
-	
-	/* (non-Javadoc)
+
+	/*
+	 * (non-Javadoc)
+	 * 
 	 * @see org.apache.geronimo.st.core.IGeronimoServer#getDeploymentFactory()
 	 */
 	public DeploymentFactory getDeploymentFactory() {
@@ -109,7 +114,6 @@
 	 */
 	public void configureDeploymentManager(DeploymentManager dm) {
 		((JMXDeploymentManager) dm).setLogConfiguration(true, true);
-		((JMXDeploymentManager) dm).setInPlace(true);
 	}
 
 	/*
@@ -121,6 +125,16 @@
 		if (versionHandler == null)
 			versionHandler = new GeronimoV11VersionHandler();
 		return versionHandler;
+	}
+
+	public void setInPlaceDeployment(boolean enable) {
+		try {
+			JMXDeploymentManager mgr = (JMXDeploymentManager) GeronimoConnectionFactory
+					.getInstance().getDeploymentManager(getServer());
+			mgr.setInPlace(enable);
+		} catch (DeploymentManagerCreationException e) {
+			e.printStackTrace();
+		}
 	}
 
 }

Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.core/src/org/apache/geronimo/st/v11/core/GeronimoServerBehaviour.java
URL: http://svn.apache.org/viewcvs/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.core/src/org/apache/geronimo/st/v11/core/GeronimoServerBehaviour.java?rev=398358&r1=398357&r2=398358&view=diff
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.core/src/org/apache/geronimo/st/v11/core/GeronimoServerBehaviour.java (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.core/src/org/apache/geronimo/st/v11/core/GeronimoServerBehaviour.java Sun Apr 30 08:41:04 2006
@@ -36,9 +36,13 @@
 import org.apache.geronimo.st.jmxagent.Activator;
 import org.apache.geronimo.st.v11.core.internal.Trace;
 import org.apache.geronimo.system.jmx.KernelDelegate;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.Status;
+import org.eclipse.debug.core.ILaunch;
 import org.eclipse.wst.server.core.IModule;
 import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.util.SocketUtil;
 
 public class GeronimoServerBehaviour extends GenericGeronimoServerBehaviour {
 
@@ -168,5 +172,13 @@
 	 */
 	public String getConfigId(IModule module) {
 		return GeronimoV11Utils.getConfigId(module);
+	}
+
+	protected void setupLaunch(ILaunch launch, String launchMode,
+			IProgressMonitor monitor) throws CoreException {
+		if (SocketUtil.isLocalhost(getServer().getHost())) {
+			getServer().addServerListener(new ConfigStoreInstaller());
+		}
+		super.setupLaunch(launch, launchMode, monitor);
 	}
 }

Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.core/src/org/apache/geronimo/st/v11/core/ServerLifeCycleListener.java
URL: http://svn.apache.org/viewcvs/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.core/src/org/apache/geronimo/st/v11/core/ServerLifeCycleListener.java?rev=398358&r1=398357&r2=398358&view=diff
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.core/src/org/apache/geronimo/st/v11/core/ServerLifeCycleListener.java (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v11.core/src/org/apache/geronimo/st/v11/core/ServerLifeCycleListener.java Sun Apr 30 08:41:04 2006
@@ -21,12 +21,14 @@
 
 import org.apache.geronimo.kernel.config.IOUtil;
 import org.apache.geronimo.st.jmxagent.Activator;
+import org.apache.geronimo.st.v11.core.internal.Trace;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.wst.server.core.IServer;
 
 import org.eclipse.wst.server.core.IServerLifecycleListener;
+import org.eclipse.wst.server.core.util.SocketUtil;
 
 public class ServerLifeCycleListener implements IServerLifecycleListener {
 
@@ -36,10 +38,8 @@
 	 * @see org.eclipse.wst.server.core.IServerLifecycleListener#serverAdded(org.eclipse.wst.server.core.IServer)
 	 */
 	public void serverAdded(IServer server) {
-		if (isSupportedServer(server)) {
-			copyToSharedLib(server, "hessian-3.0.8.jar");
-			copyToSharedLib(server, "mx4j-tools-3.0.1.jar");
-		}
+		Trace.trace(Trace.INFO, "--> ServerLifeCycleListener.serverAdded()");
+		copyJars(server);
 	}
 
 	/*
@@ -48,7 +48,8 @@
 	 * @see org.eclipse.wst.server.core.IServerLifecycleListener#serverChanged(org.eclipse.wst.server.core.IServer)
 	 */
 	public void serverChanged(IServer server) {
-
+		Trace.trace(Trace.INFO, "--> ServerLifeCycleListener.serverChanged()");
+		copyJars(server);
 	}
 
 	/*
@@ -70,6 +71,7 @@
 			try {
 				URL url = Platform.resolve(Activator.getDefault().getBundle()
 						.getEntry(path));
+				Trace.trace(Trace.INFO, "copying " + path + " to shared lib");
 				IOUtil.copyFile(new File(url.getFile()), destFile.toFile());
 			} catch (IOException e) {
 				e.printStackTrace();
@@ -78,6 +80,15 @@
 	}
 
 	private boolean isSupportedServer(IServer server) {
-		return server.getAdapter(GeronimoServer.class) != null;
+		return "1.1".equals(server.getServerType().getRuntimeType()
+				.getVersion())
+				&& SocketUtil.isLocalhost(server.getHost());
+	}
+
+	private void copyJars(IServer server) {
+		if (isSupportedServer(server)) {
+			copyToSharedLib(server, "lib/hessian-3.0.8.jar");
+			copyToSharedLib(server, "lib/mx4j-tools-3.0.1.jar");
+		}
 	}
 }