[jbosstools-commits] JBoss Tools SVN: r30638 - in trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core: server/internal/v7 and 1 other directory.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Mon Apr 18 14:02:26 EDT 2011


Author: rob.stryker at jboss.com
Date: 2011-04-18 14:02:26 -0400 (Mon, 18 Apr 2011)
New Revision: 30638

Added:
   trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/IJBoss7DeploymentManager.java
   trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/IJBoss7ManagementInterface.java
   trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/IJBoss7ManagementService.java
   trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/JBoss7ManagementUtil.java
Modified:
   trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/JBossServerCorePlugin.java
   trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/JBoss7JSTPublisher.java
Log:
introducing as7 management plugin interfaces in as.core

Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/JBossServerCorePlugin.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/JBossServerCorePlugin.java	2011-04-18 17:57:32 UTC (rev 30637)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/JBossServerCorePlugin.java	2011-04-18 18:02:26 UTC (rev 30638)
@@ -10,7 +10,6 @@
  ******************************************************************************/ 
 package org.jboss.ide.eclipse.as.core;
 
-import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IExtension;
 import org.eclipse.core.runtime.IExtensionPoint;
 import org.eclipse.core.runtime.IExtensionRegistry;
@@ -57,7 +56,6 @@
 	 */
 	public void start(BundleContext context) throws Exception {
 		super.start(context);
-		
 		// Start the array of models that need to be started
 		UnitedServerListenerManager.getDefault();
 		UnitedServerListenerManager.getDefault().addListener(XPathModel.getDefault());
@@ -81,6 +79,10 @@
 	public static JBossServerCorePlugin getDefault() {
 		return plugin;
 	}
+	
+	public static BundleContext getContext() {
+		return plugin.getBundle().getBundleContext();
+	}
 
 	public static IPath getServerStateLocation(IServer server) {
 		return ServerUtil.getServerStateLocation(server);

Added: trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/IJBoss7DeploymentManager.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/IJBoss7DeploymentManager.java	                        (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/IJBoss7DeploymentManager.java	2011-04-18 18:02:26 UTC (rev 30638)
@@ -0,0 +1,79 @@
+package org.jboss.ide.eclipse.as.core.server.internal.v7;
+
+import java.io.File;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+
+/**
+ * 
+ * This class is interim API and may change drastically 
+ * as development on the application server continues. 
+ * I expect credentials to be required eventually,
+ * and the API will need to adjust to handle them. 
+ * 
+ */
+public interface IJBoss7DeploymentManager {
+	/**
+	 * Asynchronously deploy a file to a server
+	 * 
+	 * @param host The host
+	 * @param port The port
+	 * @param name The deployment's name
+	 * @param file The file to be deployed
+	 * @param monitor The progress monitor
+	 * 
+	 * @return Not sure what to return yet
+	 * @throws Exception 
+	 */
+	public Object deployAsync(String host, int port, 
+					String deploymentName, File file, IProgressMonitor monitor) throws Exception;
+
+	/**
+	 * Synchronously deploy a file to a server
+	 * 
+	 * @param host The host
+	 * @param port The port
+	 * @param name The deployment's name
+	 * @param file The file to be deployed
+	 * @param monitor The progress monitor
+	 * 
+	 * @return Not sure what to return yet
+	 * @throws Exception 
+	 */
+	public Object deploySync(String host, int port, 
+			String deploymentName, File file, IProgressMonitor monitor) throws Exception;
+	
+	
+	/**
+	 * Asynchronously undeploy a file to a server
+	 * 
+	 * @param host The host
+	 * @param port The port
+	 * @param name The deployment's name
+	 * @param file The file to be deployed
+	 * @param monitor The progress monitor
+	 * 
+	 * @return Not sure what to return yet
+	 * @throws Exception 
+	 */
+	public Object undeployAsync(String host, int port,
+			String deploymentName, boolean removeFile, IProgressMonitor monitor) throws Exception;
+	
+
+	/**
+	 * Synchronously undeploy a file to a server
+	 * 
+	 * @param host The host
+	 * @param port The port
+	 * @param name The deployment's name
+	 * @param file The file to be deployed
+	 * @param monitor The progress monitor
+	 * 
+	 * @return Not sure what to return yet
+	 * @throws Exception 
+	 */
+	public Object syncUndeploy(String host, int port,
+			String deploymentName, boolean removeFile, IProgressMonitor monitor) throws Exception;
+	
+
+}

Added: trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/IJBoss7ManagementInterface.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/IJBoss7ManagementInterface.java	                        (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/IJBoss7ManagementInterface.java	2011-04-18 18:02:26 UTC (rev 30638)
@@ -0,0 +1,9 @@
+package org.jboss.ide.eclipse.as.core.server.internal.v7;
+
+public interface IJBoss7ManagementInterface {
+	/**
+	 * Need a method to build a request... 
+	 * we can't just expose the entire ModelNode api, but, 
+	 * we need a good way for them to be able to build such nodes
+	 */
+}

Added: trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/IJBoss7ManagementService.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/IJBoss7ManagementService.java	                        (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/IJBoss7ManagementService.java	2011-04-18 18:02:26 UTC (rev 30638)
@@ -0,0 +1,22 @@
+package org.jboss.ide.eclipse.as.core.server.internal.v7;
+
+/**
+ * This class may belong in the main JBoss AS core plugin,
+ * in case several different plugins need to implement it
+ */
+public interface IJBoss7ManagementService {
+	/**
+	 * Get a manager which can be responsible *only* for 
+	 * deployments, both synchronously and asynchronously. 
+	 * @return
+	 */
+	public IJBoss7DeploymentManager getDeploymentManager();
+	
+	/**
+	 * Get an interface which can handle executing any and all remote
+	 * management tasks via wrappers of more raw APIs.
+	 * 
+	 * @return
+	 */
+	public IJBoss7ManagementInterface getManagementInterface();
+}

Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/JBoss7JSTPublisher.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/JBoss7JSTPublisher.java	2011-04-18 17:57:32 UTC (rev 30637)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/JBoss7JSTPublisher.java	2011-04-18 18:02:26 UTC (rev 30638)
@@ -56,6 +56,7 @@
 			IServer server, IModule[] module,
 			int publishType, IModuleResourceDelta[] delta,
 			IProgressMonitor monitor) throws CoreException {
+		IJBoss7ManagementService service = JBoss7ManagementUtil.findManagementService(server);
 		if( !JBoss7Server.supportsJBoss7Deployment(server)) 
 			return super.publishModule(method, server, module, publishType, delta, monitor);
 		

Added: trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/JBoss7ManagementUtil.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/JBoss7ManagementUtil.java	                        (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/JBoss7ManagementUtil.java	2011-04-18 18:02:26 UTC (rev 30638)
@@ -0,0 +1,45 @@
+package org.jboss.ide.eclipse.as.core.server.internal.v7;
+
+import org.eclipse.wst.server.core.IServer;
+import org.jboss.ide.eclipse.as.core.JBossServerCorePlugin;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceReference;
+
+public class JBoss7ManagementUtil {
+	public static final String SERVICE_VERSION_70 = "org.jboss.ide.eclipse.as.management.as7.service"; //$NON-NLS-1$
+	
+	public static IJBoss7ManagementService findManagementService(IServer server) {
+		BundleContext context = JBossServerCorePlugin.getDefault().getContext();
+		
+//		String tmp = "org.jboss.ide.eclipse.as.management.as7.service"; //$NON-NLS-1$
+//		String clazz = "org.jboss.ide.eclipse.as.management.as7.deployment.JBossManagementService"; //$NON-NLS-1$
+		String iface = "IJBoss7ManagementService"; //$NON-NLS-1$
+		String clazz3 = "org.jboss.ide.eclipse.as.core.server.internal.v7." + iface; //$NON-NLS-1$
+		String requiredService = getRequiredServiceName(server);
+		if( requiredService == null )
+			return null;
+		
+		try {
+			ServiceReference[] refs = context.getServiceReferences(clazz3, null);
+			for( int i = 0; i < refs.length; i++ ) {
+				Object compName = refs[i].getProperty("component.name"); //$NON-NLS-1$
+				if( requiredService.equals(compName)) {
+					Bundle b = refs[i].getBundle();
+					Object service2 = context.getService(refs[i]);
+					if( service2 instanceof IJBoss7ManagementService ) {
+						return ((IJBoss7ManagementService)service2);
+					}
+				}
+			}
+		} catch(InvalidSyntaxException ise ) {
+		}
+		return null;
+	}
+	
+	private static String getRequiredServiceName(IServer s) {
+		// TODO if required, make sure to add new versions here
+		return SERVICE_VERSION_70;
+	}
+}



More information about the jbosstools-commits mailing list