[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