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 2005/11/09 14:57:28 UTC

svn commit: r332036 - /geronimo/devtools/trunk/modules/eclipse-plugin/plugins/org.apache.geronimo.devtools.eclipse.core/src/org/apache/geronimo/core/internal/GeronimoServerBehaviour.java

Author: sppatel
Date: Wed Nov  9 05:57:22 2005
New Revision: 332036

URL: http://svn.apache.org/viewcvs?rev=332036&view=rev
Log:
better way to check for full server startup

Modified:
    geronimo/devtools/trunk/modules/eclipse-plugin/plugins/org.apache.geronimo.devtools.eclipse.core/src/org/apache/geronimo/core/internal/GeronimoServerBehaviour.java

Modified: geronimo/devtools/trunk/modules/eclipse-plugin/plugins/org.apache.geronimo.devtools.eclipse.core/src/org/apache/geronimo/core/internal/GeronimoServerBehaviour.java
URL: http://svn.apache.org/viewcvs/geronimo/devtools/trunk/modules/eclipse-plugin/plugins/org.apache.geronimo.devtools.eclipse.core/src/org/apache/geronimo/core/internal/GeronimoServerBehaviour.java?rev=332036&r1=332035&r2=332036&view=diff
==============================================================================
--- geronimo/devtools/trunk/modules/eclipse-plugin/plugins/org.apache.geronimo.devtools.eclipse.core/src/org/apache/geronimo/core/internal/GeronimoServerBehaviour.java (original)
+++ geronimo/devtools/trunk/modules/eclipse-plugin/plugins/org.apache.geronimo.devtools.eclipse.core/src/org/apache/geronimo/core/internal/GeronimoServerBehaviour.java Wed Nov  9 05:57:22 2005
@@ -16,18 +16,13 @@
 package org.apache.geronimo.core.internal;
 
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.net.MalformedURLException;
-import java.net.URI;
-import java.net.URISyntaxException;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Set;
 import java.util.jar.Attributes;
-import java.util.jar.JarEntry;
 import java.util.jar.JarFile;
-import java.util.jar.JarOutputStream;
 
 import javax.enterprise.deploy.shared.CommandType;
 import javax.enterprise.deploy.shared.factories.DeploymentFactoryManager;
@@ -42,17 +37,17 @@
 import javax.enterprise.deploy.spi.status.ProgressListener;
 import javax.enterprise.deploy.spi.status.ProgressObject;
 import javax.management.MBeanServerConnection;
-import javax.management.MalformedObjectNameException;
 import javax.management.ObjectName;
 import javax.management.remote.JMXConnector;
 import javax.management.remote.JMXConnectorFactory;
 import javax.management.remote.JMXServiceURL;
 
 import org.apache.geronimo.deployment.plugin.factories.DeploymentFactoryImpl;
+import org.apache.geronimo.gbean.GBeanQuery;
 import org.apache.geronimo.kernel.GBeanNotFoundException;
-import org.apache.geronimo.kernel.InternalKernelException;
 import org.apache.geronimo.kernel.Kernel;
-import org.apache.geronimo.kernel.config.Configuration;
+import org.apache.geronimo.kernel.NoSuchAttributeException;
+import org.apache.geronimo.kernel.config.PersistentConfigurationList;
 import org.apache.geronimo.kernel.jmx.KernelDelegate;
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.resources.IProject;
@@ -60,11 +55,9 @@
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.jst.j2ee.application.internal.operations.EARComponentExportDataModelProvider;
 import org.eclipse.jst.j2ee.application.internal.operations.J2EEComponentExportDataModelProvider;
-import org.eclipse.jst.j2ee.internal.deployables.J2EEFlexProjDeployable;
 import org.eclipse.jst.j2ee.internal.ejb.project.operations.EJBComponentExportDataModelProvider;
 import org.eclipse.jst.j2ee.internal.jca.operations.ConnectorComponentExportDataModelProvider;
 import org.eclipse.jst.j2ee.internal.web.archive.operations.WebComponentExportDataModelProvider;
@@ -83,7 +76,7 @@
 
 	private final static String J2EE_DEPLOYER_ID = "org/apache/geronimo/RuntimeDeployer";
 
-	private static final int MAX_TRIES = 10;
+	private static final int MAX_TRIES = 15;
 
 	private static final long TIMEOUT = 10000;
 
@@ -94,9 +87,8 @@
 	private IProgressMonitor _monitor = null;
 
 	private Kernel kernel = null;
-	
 
-	public GeronimoServerBehaviour() {		
+	public GeronimoServerBehaviour() {
 		super();
 	}
 
@@ -223,39 +215,55 @@
 
 		boolean started = false;
 
-		try {
-			ObjectName configName = Configuration
-					.getConfigurationObjectName(new URI(J2EE_DEPLOYER_ID));
+		GBeanQuery query = new GBeanQuery(null,
+				PersistentConfigurationList.class.getName());
 
-			for (int tries = MAX_TRIES; tries > 0 && !started; tries--) {
+		for (int tries = MAX_TRIES; tries > 0 && !started; tries--) {
+			try {
+				Thread.sleep(5000);
+			} catch (InterruptedException e1) {
+			}
+			Set configLists = getKernel().listGBeans(query);
+			if (!configLists.isEmpty()) {
+				ObjectName on = (ObjectName) configLists.toArray()[0];
 				try {
-					if (getKernel() != null) {
-						if (kernel.getGBeanState(configName) == 1) {
-							started = true;
-							setServerState(IServer.STATE_STARTED);
-							Trace.trace(Trace.INFO,
-									"RuntimeDeployer has started.");
-						} else {
-							Trace.trace(Trace.INFO,
-									"RuntimeDeployer has not yet started.");
-						}
+					Boolean b = (Boolean) getKernel().getAttribute(on,
+							"kernelFullyStarted");
+					if (b.booleanValue()) {
+						Trace.trace(Trace.INFO, "kernelFullyStarted = true");
+						setServerState(IServer.STATE_STARTED);
+						started = true;
+					} else {
+						Trace.trace(Trace.INFO, "kernelFullyStarted = false");
 					}
-				} catch (InternalKernelException e) {
 				} catch (GBeanNotFoundException e) {
+				} catch (NoSuchAttributeException e) {
+				} catch (Exception e) {
+					e.printStackTrace();
 				}
-				Thread.sleep(2000);
+			} else {
+				Trace.trace(Trace.INFO, "configList is Empty");
 			}
-		} catch (MalformedObjectNameException e) {
-			e.printStackTrace();
-		} catch (URISyntaxException e) {
-			e.printStackTrace();
-		} catch (InterruptedException e) {
-			e.printStackTrace();
 		}
 
-		if (!started) {
-			Trace.trace(Trace.SEVERE, "Runtime deployer failed to start.");
-		}
+		/*
+		 * try { ObjectName configName = Configuration
+		 * .getConfigurationObjectName(new URI(J2EE_DEPLOYER_ID));
+		 * 
+		 * for (int tries = MAX_TRIES; tries > 0 && !started; tries--) { try {
+		 * if (getKernel() != null) { if (kernel.getGBeanState(configName) == 1) {
+		 * started = true; setServerState(IServer.STATE_STARTED);
+		 * Trace.trace(Trace.INFO, "RuntimeDeployer has started."); } else {
+		 * Trace.trace(Trace.INFO, "RuntimeDeployer has not yet started."); } } }
+		 * catch (InternalKernelException e) { } catch (GBeanNotFoundException
+		 * e) { } Thread.sleep(2000); } } catch (MalformedObjectNameException e) {
+		 * e.printStackTrace(); } catch (URISyntaxException e) {
+		 * e.printStackTrace(); } catch (InterruptedException e) {
+		 * e.printStackTrace(); }
+		 * 
+		 * if (!started) { Trace.trace(Trace.SEVERE, "Runtime deployer failed to
+		 * start."); }
+		 */
 
 	}
 
@@ -493,32 +501,36 @@
 		}
 		return null;
 	}
-	
+
 	private File createJarFile(IModule module) {
 		IDataModel model = getExportDataModel(module);
-		
+
 		IVirtualComponent comp = ComponentCore.createComponent(module
-				.getProject());		
-		
+				.getProject());
+
 		IPath path = GeronimoPlugin.getInstance().getStateLocation();
-		
+
 		model.setProperty(J2EEComponentExportDataModelProvider.PROJECT_NAME,
 				module.getProject());
 		model.setProperty(
-				J2EEComponentExportDataModelProvider.ARCHIVE_DESTINATION,
-				path.append(module.getName()) + ".zip");
+				J2EEComponentExportDataModelProvider.ARCHIVE_DESTINATION, path
+						.append(module.getName())
+						+ ".zip");
 		model.setProperty(J2EEComponentExportDataModelProvider.COMPONENT, comp);
-		model.setBooleanProperty(J2EEComponentExportDataModelProvider.OVERWRITE_EXISTING, true);
-		
+		model.setBooleanProperty(
+				J2EEComponentExportDataModelProvider.OVERWRITE_EXISTING, true);
+
 		if (model != null) {
 			try {
 				model.getDefaultOperation().execute(_monitor, null);
-				return new File(model.getStringProperty(J2EEComponentExportDataModelProvider.ARCHIVE_DESTINATION));
+				return new File(
+						model
+								.getStringProperty(J2EEComponentExportDataModelProvider.ARCHIVE_DESTINATION));
 			} catch (ExecutionException e) {
 				e.printStackTrace();
 			}
 		}
-		
+
 		return null;
 	}
 
@@ -540,64 +552,46 @@
 		return null;
 	}
 
-	/*private File createJarFile2(IModule module) {
-		J2EEFlexProjDeployable j2eeModule = (J2EEFlexProjDeployable) module
-				.loadAdapter(J2EEFlexProjDeployable.class, null);
-
-		Path path = new Path(j2eeModule.getURI(module));
-
-		try {
-			File rootDir = new File(path.toOSString());
-			String zipFilePrefix = rootDir.getName();
-			if (zipFilePrefix.length() < 3)
-				zipFilePrefix += "123";
-			File zipFile = File.createTempFile(zipFilePrefix, null);
-
-			if (zipFile.exists())
-				zipFile.delete();
-
-			FileOutputStream fos = new FileOutputStream(zipFile);
-			JarOutputStream jos = new JarOutputStream(fos);
-
-			addToJar("", rootDir, jos);
-
-			jos.close();
-			fos.close();
-
-			zipFile.deleteOnExit();
-
-			return zipFile;
-
-		} catch (IOException e) {
-			Trace.trace(Trace.SEVERE, "Error creating zip file", e);
-			return null;
-		}
-	}*/
-
-
-	/*private void addToJar(String namePrefix, File dir, JarOutputStream jos)
-			throws IOException {
-		File[] contents = dir.listFiles();
-		for (int i = 0; i < contents.length; i++) {
-			File f = contents[i];
-			if (f.isDirectory()) {
-				// Recurse into the directory
-				addToJar(namePrefix + f.getName() + "/", f, jos);
-			} else {
-				JarEntry entry = new JarEntry(namePrefix + f.getName());
-				jos.putNextEntry(entry);
+	/*
+	 * private File createJarFile2(IModule module) { J2EEFlexProjDeployable
+	 * j2eeModule = (J2EEFlexProjDeployable) module
+	 * .loadAdapter(J2EEFlexProjDeployable.class, null);
+	 * 
+	 * Path path = new Path(j2eeModule.getURI(module));
+	 * 
+	 * try { File rootDir = new File(path.toOSString()); String zipFilePrefix =
+	 * rootDir.getName(); if (zipFilePrefix.length() < 3) zipFilePrefix +=
+	 * "123"; File zipFile = File.createTempFile(zipFilePrefix, null);
+	 * 
+	 * if (zipFile.exists()) zipFile.delete();
+	 * 
+	 * FileOutputStream fos = new FileOutputStream(zipFile); JarOutputStream jos =
+	 * new JarOutputStream(fos);
+	 * 
+	 * addToJar("", rootDir, jos);
+	 * 
+	 * jos.close(); fos.close();
+	 * 
+	 * zipFile.deleteOnExit();
+	 * 
+	 * return zipFile;
+	 *  } catch (IOException e) { Trace.trace(Trace.SEVERE, "Error creating zip
+	 * file", e); return null; } }
+	 */
 
-				byte[] buffer = new byte[10000];
-				FileInputStream fis = new FileInputStream(f);
-				int bytesRead = 0;
-				while (bytesRead != -1) {
-					bytesRead = fis.read(buffer);
-					if (bytesRead > 0)
-						jos.write(buffer, 0, bytesRead);
-				}
-			}
-		}
-	}*/
+	/*
+	 * private void addToJar(String namePrefix, File dir, JarOutputStream jos)
+	 * throws IOException { File[] contents = dir.listFiles(); for (int i = 0; i <
+	 * contents.length; i++) { File f = contents[i]; if (f.isDirectory()) { //
+	 * Recurse into the directory addToJar(namePrefix + f.getName() + "/", f,
+	 * jos); } else { JarEntry entry = new JarEntry(namePrefix + f.getName());
+	 * jos.putNextEntry(entry);
+	 * 
+	 * byte[] buffer = new byte[10000]; FileInputStream fis = new
+	 * FileInputStream(f); int bytesRead = 0; while (bytesRead != -1) {
+	 * bytesRead = fis.read(buffer); if (bytesRead > 0) jos.write(buffer, 0,
+	 * bytesRead); } } } }
+	 */
 
 	public Map getServerInstanceProperties() {
 		return getRuntimeDelegate().getServerInstanceProperties();