[jbosstools-commits] JBoss Tools SVN: r39486 - in trunk/as/plugins: org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core and 5 other directories.
jbosstools-commits at lists.jboss.org
jbosstools-commits at lists.jboss.org
Wed Mar 14 01:54:46 EDT 2012
Author: rob.stryker at jboss.com
Date: 2012-03-14 01:54:45 -0400 (Wed, 14 Mar 2012)
New Revision: 39486
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/LocalJBoss7DeploymentScannerAdditions.java
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/META-INF/MANIFEST.MF
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/extendedproperties/JBossAS7ExtendedProperties.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/extendedproperties/JBossExtendedProperties.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/extendedproperties/ServerExtendedProperties.java
trunk/as/plugins/org.jboss.ide.eclipse.as.jmx.integration/src/org/jboss/ide/eclipse/as/jmx/integration/Activator.java
trunk/as/plugins/org.jboss.ide.eclipse.as.jmx.integration/src/org/jboss/ide/eclipse/as/jmx/integration/JMXServerLifecycleListener.java
trunk/as/plugins/org.jboss.ide.eclipse.as.management.as71/src/org/jboss/ide/eclipse/as/internal/management/as71/AS71Manager.java
trunk/as/plugins/org.jboss.ide.eclipse.as.management.as71/src/org/jboss/ide/eclipse/as/internal/management/as71/AS7Messages.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/editor/DeploymentModuleOptionCompositeAssistant.java
Log:
JBIDE-11297 - added random deployment folder support for as7
Also, removed an unneded import, and fixed a string externalization file not found error.
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.core/META-INF/MANIFEST.MF
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/META-INF/MANIFEST.MF 2012-03-13 23:23:11 UTC (rev 39485)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/META-INF/MANIFEST.MF 2012-03-14 05:54:45 UTC (rev 39486)
@@ -25,7 +25,8 @@
org.eclipse.pde.core;bundle-version="3.7.0",
org.eclipse.jst.j2ee.web;bundle-version="1.1.500",
org.jboss.ide.eclipse.as.management.core,
- org.eclipse.equinox.security;bundle-version="1.1.1"
+ org.eclipse.equinox.security;bundle-version="1.1.1",
+ org.jboss.ide.eclipse.as.dmr;bundle-version="2.3.0"
Bundle-ActivationPolicy: lazy
Export-Package: org.jboss.ide.eclipse.as.core,
org.jboss.ide.eclipse.as.core.extensions.descriptors,
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 2012-03-13 23:23:11 UTC (rev 39485)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/JBossServerCorePlugin.java 2012-03-14 05:54:45 UTC (rev 39486)
@@ -31,6 +31,7 @@
import org.jboss.ide.eclipse.as.core.server.UnitedServerListenerManager;
import org.jboss.ide.eclipse.as.core.server.internal.BehaviourModel;
import org.jboss.ide.eclipse.as.core.server.internal.ServerListener;
+import org.jboss.ide.eclipse.as.core.server.internal.v7.LocalJBoss7DeploymentScannerAdditions;
import org.jboss.ide.eclipse.as.core.util.ServerUtil;
import org.osgi.framework.BundleContext;
@@ -61,6 +62,7 @@
return extensions;
}
+ private LocalJBoss7DeploymentScannerAdditions jboss7Additions;
/**
* This method is called upon plug-in activation
*/
@@ -74,7 +76,8 @@
UnitedServerListenerManager.getDefault();
UnitedServerListenerManager.getDefault().addListener(XPathModel.getDefault());
UnitedServerListenerManager.getDefault().addListener(ServerListener.getDefault());
-
+ jboss7Additions = new LocalJBoss7DeploymentScannerAdditions();
+ UnitedServerListenerManager.getDefault().addListener(jboss7Additions);
FacetedProjectFramework.addListener(JBoss4xEarFacetInstallListener.getDefault(), IFacetedProjectEvent.Type.POST_INSTALL);
return Status.OK_STATUS;
}
@@ -99,6 +102,7 @@
UnitedServerListenerManager.getDefault().removeListener(ServerListener.getDefault());
UnitedServerListenerManager.getDefault().removeListener(XPathModel.getDefault());
FacetedProjectFramework.removeListener(JBoss4xEarFacetInstallListener.getDefault());
+ UnitedServerListenerManager.getDefault().removeListener(jboss7Additions);
}
/**
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/extendedproperties/JBossAS7ExtendedProperties.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/extendedproperties/JBossAS7ExtendedProperties.java 2012-03-13 23:23:11 UTC (rev 39485)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/extendedproperties/JBossAS7ExtendedProperties.java 2012-03-14 05:54:45 UTC (rev 39486)
@@ -34,5 +34,8 @@
return false;
return true;
}
+ public int getMultipleDeployFolderSupport() {
+ return DEPLOYMENT_SCANNER_AS7_MANAGEMENT_SUPPORT;
+ }
}
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/extendedproperties/JBossExtendedProperties.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/extendedproperties/JBossExtendedProperties.java 2012-03-13 23:23:11 UTC (rev 39485)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/extendedproperties/JBossExtendedProperties.java 2012-03-14 05:54:45 UTC (rev 39486)
@@ -70,4 +70,8 @@
}
}
+ public int getMultipleDeployFolderSupport() {
+ return DEPLOYMENT_SCANNER_JMX_SUPPORT;
+ }
+
}
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/extendedproperties/ServerExtendedProperties.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/extendedproperties/ServerExtendedProperties.java 2012-03-13 23:23:11 UTC (rev 39485)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/extendedproperties/ServerExtendedProperties.java 2012-03-14 05:54:45 UTC (rev 39486)
@@ -35,4 +35,12 @@
public String getWelcomePageUrl() {
return null;
}
+
+ public static final int DEPLOYMENT_SCANNER_NO_SUPPORT = 1;
+ public static final int DEPLOYMENT_SCANNER_JMX_SUPPORT = 2;
+ public static final int DEPLOYMENT_SCANNER_AS7_MANAGEMENT_SUPPORT = 3;
+
+ public int getMultipleDeployFolderSupport() {
+ return DEPLOYMENT_SCANNER_NO_SUPPORT;
+ }
}
Added: trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/LocalJBoss7DeploymentScannerAdditions.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/LocalJBoss7DeploymentScannerAdditions.java (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/LocalJBoss7DeploymentScannerAdditions.java 2012-03-14 05:54:45 UTC (rev 39486)
@@ -0,0 +1,230 @@
+/*******************************************************************************
+ * Copyright (c) 2012 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.ide.eclipse.as.core.server.internal.v7;
+
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.Properties;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.wst.server.core.IModule;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.ServerEvent;
+import org.jboss.dmr.ModelNode;
+import org.jboss.ide.eclipse.as.core.JBossServerCorePlugin;
+import org.jboss.ide.eclipse.as.core.publishers.PublishUtil;
+import org.jboss.ide.eclipse.as.core.server.UnitedServerListener;
+import org.jboss.ide.eclipse.as.core.server.internal.JBossServer;
+import org.jboss.ide.eclipse.as.core.server.internal.extendedproperties.ServerExtendedProperties;
+import org.jboss.ide.eclipse.as.core.server.v7.management.AS7ManagementDetails;
+import org.jboss.ide.eclipse.as.core.util.ServerConverter;
+import org.jboss.ide.eclipse.as.management.core.IJBoss7ManagerService;
+import org.jboss.ide.eclipse.as.management.core.JBoss7ManagerUtil;
+
+public class LocalJBoss7DeploymentScannerAdditions extends UnitedServerListener {
+ protected boolean accepts(IServer server) {
+ ServerExtendedProperties props = (ServerExtendedProperties)server.loadAdapter(ServerExtendedProperties.class, null);
+ boolean usesManagement = props != null &&
+ props.getMultipleDeployFolderSupport() == ServerExtendedProperties.DEPLOYMENT_SCANNER_AS7_MANAGEMENT_SUPPORT;
+ if(usesManagement) {
+ return true;
+ }
+ return false;
+ }
+
+ private final static String SCANNER_PROP_FILE = "as7Scanners.properties"; //$NON-NLS-1$
+
+ /**
+ * Ensure the following folders are added to a deployment scanner.
+ * Depending on the impl and server version, you may simply add all of the folders,
+ * or, you may need to discover what's been removed and added separately.
+ *
+ * @param server
+ * @param folders
+ */
+ protected void ensureScannersAdded(final IServer server, final String[] folders) {
+ ArrayList<String> asList = new ArrayList<String>();
+ asList.addAll(Arrays.asList(folders));
+ ArrayList<String> added = new ArrayList<String>(); // list of the paths
+ added.addAll(Arrays.asList(folders));
+ ArrayList<String> removed = new ArrayList<String>(); // list of the scanner names
+
+ IPath p = JBossServerCorePlugin.getServerStateLocation(server).append(SCANNER_PROP_FILE);
+ Properties props = new Properties();
+ if( p.toFile().exists()) {
+ try {
+ props.load(new FileInputStream(p.toFile()));
+ } catch( IOException ioe) {
+ // shouldnt happen. Log this
+ Status failStat = new Status(IStatus.ERROR, JBossServerCorePlugin.PLUGIN_ID,
+ "Unable to read deployment scanner property file " + p.toFile().getAbsolutePath(), ioe); //$NON-NLS-1$
+ JBossServerCorePlugin.log(failStat);
+ }
+ }
+
+ Iterator<Object> i2 = props.keySet().iterator();
+ String k = null;
+ String v = null;
+ while(i2.hasNext()) {
+ k = (String)i2.next();
+ v = (String)props.get(k);
+ if( !asList.contains(v))
+ removed.add(k);
+ else {
+ added.remove(v);
+ }
+ }
+
+
+ // Do the removes
+ Iterator<String> i = removed.iterator();
+ String scannerName = null;
+ while(i.hasNext()) {
+ scannerName = i.next();
+ IStatus s = removeOneFolder(server, scannerName);
+ if( s.isOK()) {
+ props.remove(scannerName);
+ }
+ }
+
+ // Do the adds
+ i = added.iterator();
+ String path;
+ String newScannerName;
+ while(i.hasNext()) {
+ path = i.next();
+ newScannerName = findNextScannerName(props);
+ IStatus s = addOneFolder(server, newScannerName, path);
+ if( s.isOK()){
+ props.put(newScannerName, path);
+ }
+ }
+
+ // Write the file out
+ if( added.size() != 0 || removed.size() != 0 ) {
+ try {
+ props.store(new FileOutputStream(p.toFile()), "Deployment scanners for the application server"); //$NON-NLS-1$
+ } catch( IOException ioe) {
+ Status failStat = new Status(IStatus.ERROR, JBossServerCorePlugin.PLUGIN_ID,
+ "Unable to save deployment scanner property file " + p.toFile().getAbsolutePath(), ioe); //$NON-NLS-1$
+ JBossServerCorePlugin.log(failStat);
+ }
+ }
+ }
+
+ private static final String SCANNER_PREFIX = "JBossToolsScanner"; //$NON-NLS-1$
+ protected String findNextScannerName(Properties props) {
+ int i = 1;
+ while( props.get(SCANNER_PREFIX + i) != null ) {
+ i++;
+ }
+ return SCANNER_PREFIX + i;
+ }
+
+ protected IStatus addOneFolder(final IServer server, String scannerName, final String folder) {
+ ModelNode op = new ModelNode();
+ op.get("operation").set("add"); //$NON-NLS-1$ //$NON-NLS-2$
+ ModelNode addr = op.get("address"); //$NON-NLS-1$
+ addr.add("subsystem", "deployment-scanner"); //$NON-NLS-1$//$NON-NLS-2$
+ addr.add("scanner", scannerName); //$NON-NLS-1$
+ op.get("path").set(folder); //$NON-NLS-1$
+ final String request = op.toJSONString(true);
+ return execute(server, request);
+ }
+
+ protected IStatus removeOneFolder(final IServer server, String scannerName) {
+ ModelNode op = new ModelNode();
+ op.get("operation").set("remove"); //$NON-NLS-1$ //$NON-NLS-2$
+ ModelNode addr = op.get("address"); //$NON-NLS-1$
+ addr.add("subsystem", "deployment-scanner"); //$NON-NLS-1$//$NON-NLS-2$
+ addr.add("scanner", scannerName); //$NON-NLS-1$
+ final String request = op.toJSONString(true);
+ return execute(server, request);
+ }
+
+ protected IStatus execute(final IServer server, final String request) {
+ try {
+ String resultJSON = JBoss7ManagerUtil.executeWithService(new JBoss7ManagerUtil.IServiceAware<String>() {
+ public String execute(IJBoss7ManagerService service) throws Exception {
+ return service.execute(new AS7ManagementDetails(server), request);
+ }
+ }, server);
+ ModelNode result = ModelNode.fromJSONString(resultJSON);
+ return Status.OK_STATUS;
+ } catch( Exception e ) {
+ // TODO Throw new checked exception
+ return new Status(IStatus.ERROR, JBossServerCorePlugin.PLUGIN_ID, e.getMessage(), e);
+ }
+ }
+
+
+ public void serverChanged(ServerEvent event) {
+ IServer server = event.getServer();
+ if( accepts(server)) {
+ int eventKind = event.getKind();
+ if ((eventKind & ServerEvent.SERVER_CHANGE) != 0) {
+ // server change event
+ if ((eventKind & ServerEvent.STATE_CHANGE) != 0) {
+ if( event.getServer().getServerState() == IServer.STATE_STARTED ) {
+ modifyDeploymentScanners(event);
+ }
+ }
+ }
+ }
+ }
+
+ protected void modifyDeploymentScanners(ServerEvent event){
+ String[] folders = getDeployLocationFolders(event.getServer());
+ ensureScannersAdded(event.getServer(), folders);
+ }
+
+ protected String[] getDeployLocationFolders(IServer server) {
+ JBossServer ds = ServerConverter.getJBossServer(server);
+ ArrayList<String> folders = new ArrayList<String>();
+ // add the server folder deploy loc. first
+ String insideServer = ds.getDeployFolder(JBossServer.DEPLOY_SERVER);
+ String metadata = JBossServer.getDeployFolder(ds, JBossServer.DEPLOY_METADATA);
+ String custom = JBossServer.getDeployFolder(ds, JBossServer.DEPLOY_CUSTOM);
+ String type = ds.getDeployLocationType();
+ String serverHome = null;
+ if (server != null && server.getRuntime()!= null && server.getRuntime().getLocation() != null) {
+ serverHome = server.getRuntime().getLocation().toString();
+ }
+ folders.add(insideServer);
+ if( type.equals(JBossServer.DEPLOY_METADATA) && !folders.contains(metadata))
+ folders.add(metadata);
+ if( type.equals(JBossServer.DEPLOY_CUSTOM) && !folders.contains(custom) && !custom.equals(serverHome))
+ folders.add(custom);
+
+ IModule[] modules2 = org.eclipse.wst.server.core.ServerUtil.getModules(server.getServerType().getRuntimeType().getModuleTypes());
+ if (modules2 != null) {
+ int size = modules2.length;
+ for (int i = 0; i < size; i++) {
+ IModule[] module = new IModule[] { modules2[i] };
+ IStatus status = server.canModifyModules(module, null, null);
+ if (status != null && status.getSeverity() != IStatus.ERROR) {
+ String tempFolder = PublishUtil.getDeployRootFolder(module, ds).toString();
+ if( !folders.contains(tempFolder))
+ folders.add(tempFolder);
+ }
+ }
+ }
+ folders.remove(insideServer); // doesn't need to be added to deployment scanner
+ String[] folders2 = (String[]) folders.toArray(new String[folders.size()]);
+ return folders2;
+ }
+}
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.jmx.integration/src/org/jboss/ide/eclipse/as/jmx/integration/Activator.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.jmx.integration/src/org/jboss/ide/eclipse/as/jmx/integration/Activator.java 2012-03-13 23:23:11 UTC (rev 39485)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.jmx.integration/src/org/jboss/ide/eclipse/as/jmx/integration/Activator.java 2012-03-14 05:54:45 UTC (rev 39486)
@@ -31,6 +31,7 @@
public Activator() {
}
+ private JMXServerLifecycleListener listener = new JMXServerLifecycleListener();
/*
* (non-Javadoc)
* @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
@@ -38,7 +39,7 @@
public void start(BundleContext context) throws Exception {
super.start(context);
plugin = this;
- UnitedServerListenerManager.getDefault().addListener(JMXServerLifecycleListener.getDefault());
+ UnitedServerListenerManager.getDefault().addListener(listener);
}
/*
@@ -46,7 +47,7 @@
* @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
*/
public void stop(BundleContext context) throws Exception {
- UnitedServerListenerManager.getDefault().removeListener(JMXServerLifecycleListener.getDefault());
+ UnitedServerListenerManager.getDefault().removeListener(listener);
plugin = null;
super.stop(context);
}
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.jmx.integration/src/org/jboss/ide/eclipse/as/jmx/integration/JMXServerLifecycleListener.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.jmx.integration/src/org/jboss/ide/eclipse/as/jmx/integration/JMXServerLifecycleListener.java 2012-03-13 23:23:11 UTC (rev 39485)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.jmx.integration/src/org/jboss/ide/eclipse/as/jmx/integration/JMXServerLifecycleListener.java 2012-03-14 05:54:45 UTC (rev 39486)
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011 Red Hat, Inc.
+ * Copyright (c) 2012 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is made available under the terms of the
* Eclipse Public License v1.0 which accompanies this distribution,
@@ -11,7 +11,6 @@
package org.jboss.ide.eclipse.as.jmx.integration;
import java.net.URI;
-import java.util.ArrayList;
import javax.management.MBeanServerConnection;
import javax.management.ObjectName;
@@ -19,104 +18,53 @@
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Status;
-import org.eclipse.wst.server.core.IModule;
import org.eclipse.wst.server.core.IServer;
import org.eclipse.wst.server.core.ServerEvent;
import org.jboss.ide.eclipse.as.core.Messages;
import org.jboss.ide.eclipse.as.core.extensions.events.IEventCodes;
import org.jboss.ide.eclipse.as.core.extensions.events.ServerLogger;
-import org.jboss.ide.eclipse.as.core.publishers.PublishUtil;
-import org.jboss.ide.eclipse.as.core.server.UnitedServerListener;
import org.jboss.ide.eclipse.as.core.server.internal.JBossServer;
+import org.jboss.ide.eclipse.as.core.server.internal.extendedproperties.ServerExtendedProperties;
+import org.jboss.ide.eclipse.as.core.server.internal.v7.LocalJBoss7DeploymentScannerAdditions;
import org.jboss.ide.eclipse.as.core.util.IJBossRuntimeConstants;
-import org.jboss.ide.eclipse.as.core.util.ServerConverter;
import org.jboss.tools.jmx.core.IJMXRunnable;
import org.jboss.tools.jmx.core.JMXException;
-public class JMXServerLifecycleListener extends UnitedServerListener {
- private static JMXServerLifecycleListener instance;
- public static JMXServerLifecycleListener getDefault() {
- if( instance == null )
- instance = new JMXServerLifecycleListener();
- return instance;
- }
-
- public void serverChanged(ServerEvent event) {
- IServer server = event.getServer();
+public class JMXServerLifecycleListener extends LocalJBoss7DeploymentScannerAdditions {
+ protected boolean accepts(IServer server) {
+ ServerExtendedProperties props = (ServerExtendedProperties)server.loadAdapter(ServerExtendedProperties.class, null);
JBossServer jbs = (JBossServer)server.loadAdapter(JBossServer.class, new NullProgressMonitor());
- if( jbs != null && jbs.hasJMXProvider()) {
- int eventKind = event.getKind();
- if ((eventKind & ServerEvent.SERVER_CHANGE) != 0) {
- // server change event
- if ((eventKind & ServerEvent.STATE_CHANGE) != 0) {
- if( event.getServer().getServerState() == IServer.STATE_STARTED ) {
- String[] folders = getDeployLocationFolders(server);
- if( folders.length > 0 )
- doDeploymentAddition(event, folders);
- }
- }
- }
+ boolean hasJMXProvider = jbs != null && jbs.hasJMXProvider();
+ boolean jmxDeploymentScanner = props != null && props.getMultipleDeployFolderSupport() == ServerExtendedProperties.DEPLOYMENT_SCANNER_JMX_SUPPORT;
+ if(hasJMXProvider && jmxDeploymentScanner) {
+ return true;
}
+ return false;
}
- protected void doDeploymentAddition(final ServerEvent event, final String[] folders) {
+ protected void modifyDeploymentScanners(ServerEvent event){
+ String[] folders = getDeployLocationFolders(event.getServer());
+ if( folders.length > 0 )
+ ensureScannersAdded(event.getServer(), folders);
+ }
+
+ protected void ensureScannersAdded(final IServer server, final String[] folders) {
IJMXRunnable r = new IJMXRunnable() {
public void run(MBeanServerConnection connection) throws Exception {
- ensureDeployLocationAdded(event.getServer(), connection, folders);
+ ensureDeployLocationAdded(server, connection, folders);
}
};
try {
- JBossServerConnectionProvider.run(event.getServer(), r);
+ JBossServerConnectionProvider.run(server, r);
} catch( JMXException jmxe ) {
IStatus s = jmxe.getStatus();
IStatus newStatus = new Status(s.getSeverity(), s.getPlugin(), IEventCodes.ADD_DEPLOYMENT_FOLDER_FAIL,
Messages.AddingJMXDeploymentFailed, s.getException());
- ServerLogger.getDefault().log(event.getServer(), newStatus);
+ ServerLogger.getDefault().log(server, newStatus);
}
}
- protected String[] getDeployLocationFolders(IServer server) {
- JBossServer ds = ServerConverter.getJBossServer(server);
- ArrayList<String> folders = new ArrayList<String>();
- // add the server folder deploy loc. first
- String insideServer = ds.getDeployFolder(JBossServer.DEPLOY_SERVER);
- String metadata = JBossServer.getDeployFolder(ds, JBossServer.DEPLOY_METADATA);
- String custom = JBossServer.getDeployFolder(ds, JBossServer.DEPLOY_CUSTOM);
- String type = ds.getDeployLocationType();
- String serverHome = null;
- if (server != null && server.getRuntime()!= null && server.getRuntime().getLocation() != null) {
- serverHome = server.getRuntime().getLocation().toString();
- }
- folders.add(insideServer);
- if( type.equals(JBossServer.DEPLOY_METADATA) && !folders.contains(metadata))
- folders.add(metadata);
- if( type.equals(JBossServer.DEPLOY_CUSTOM) && !folders.contains(custom) && !custom.equals(serverHome))
- folders.add(custom);
-
- IModule[] modules2 = org.eclipse.wst.server.core.ServerUtil.getModules(server.getServerType().getRuntimeType().getModuleTypes());
- if (modules2 != null) {
- int size = modules2.length;
- for (int i = 0; i < size; i++) {
- IModule[] module = new IModule[] { modules2[i] };
- IStatus status = server.canModifyModules(module, null, null);
- if (status != null && status.getSeverity() != IStatus.ERROR) {
- String tempFolder = PublishUtil.getDeployRootFolder(module, ds).toString();
- if( !folders.contains(tempFolder))
- folders.add(tempFolder);
- }
- }
- }
- folders.remove(insideServer); // doesn't need to be added to deployment scanner
- String[] folders2 = (String[]) folders.toArray(new String[folders.size()]);
- return folders2;
- }
-
- protected void ensureDeployLocationAdded(IServer server, MBeanServerConnection connection) throws Exception {
- String[] folders2 = getDeployLocationFolders(server);
- ensureDeployLocationAdded(server, connection, folders2);
- }
-
- protected void ensureDeployLocationAdded(IServer server,
+ private void ensureDeployLocationAdded(IServer server,
MBeanServerConnection connection, String[] folders2) throws Exception {
for( int i = 0; i < folders2.length; i++ ) {
String asURL = encode(folders2[i]);
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.management.as71/src/org/jboss/ide/eclipse/as/internal/management/as71/AS71Manager.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.management.as71/src/org/jboss/ide/eclipse/as/internal/management/as71/AS71Manager.java 2012-03-13 23:23:11 UTC (rev 39485)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.management.as71/src/org/jboss/ide/eclipse/as/internal/management/as71/AS71Manager.java 2012-03-14 05:54:45 UTC (rev 39486)
@@ -31,7 +31,6 @@
import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import javax.security.auth.callback.Callback;
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.management.as71/src/org/jboss/ide/eclipse/as/internal/management/as71/AS7Messages.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.management.as71/src/org/jboss/ide/eclipse/as/internal/management/as71/AS7Messages.java 2012-03-13 23:23:11 UTC (rev 39485)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.management.as71/src/org/jboss/ide/eclipse/as/internal/management/as71/AS7Messages.java 2012-03-14 05:54:45 UTC (rev 39486)
@@ -22,7 +22,7 @@
public static String OperationOnUnitRolledBack;
public static String OperationNotExecConfigRequiresRestart;
static {
- NLS.initializeMessages("org.jboss.ide.eclipse.as.management.as7.AS7Messages", //$NON-NLS-1$
+ NLS.initializeMessages("org.jboss.ide.eclipse.as.internal.management.as71.AS7Messages", //$NON-NLS-1$
AS7Messages.class);
}
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/editor/DeploymentModuleOptionCompositeAssistant.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/editor/DeploymentModuleOptionCompositeAssistant.java 2012-03-13 23:23:11 UTC (rev 39485)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/editor/DeploymentModuleOptionCompositeAssistant.java 2012-03-14 05:54:45 UTC (rev 39486)
@@ -55,6 +55,7 @@
import org.eclipse.ui.forms.widgets.Section;
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.IServerWorkingCopy;
import org.eclipse.wst.server.ui.ServerUICore;
import org.eclipse.wst.server.ui.internal.command.ServerCommand;
@@ -67,6 +68,7 @@
import org.jboss.ide.eclipse.as.core.server.IJBossServerRuntime;
import org.jboss.ide.eclipse.as.core.server.internal.JBossServer;
import org.jboss.ide.eclipse.as.core.server.internal.ServerAttributeHelper;
+import org.jboss.ide.eclipse.as.core.server.internal.extendedproperties.ServerExtendedProperties;
import org.jboss.ide.eclipse.as.core.util.DeploymentPreferenceLoader.DeploymentModulePrefs;
import org.jboss.ide.eclipse.as.core.util.DeploymentPreferenceLoader.DeploymentPreferences;
import org.jboss.ide.eclipse.as.core.util.IJBossRuntimeResourceConstants;
@@ -214,11 +216,13 @@
public boolean enableMetadataRadio() {
String mode = getHelper().getAttribute(IDeployableServer.SERVER_MODE, LocalPublishMethod.LOCAL_PUBLISH_METHOD);
- if(mode.equals("rse"))
+ if(!LocalPublishMethod.LOCAL_PUBLISH_METHOD.equals(mode))
return false;
- if( ServerUtil.isJBoss7(page.getServer().getServerType()))
- return false;
- return true;
+ IServer s = page.getServer().getOriginal();
+ ServerExtendedProperties props = (ServerExtendedProperties)s.loadAdapter(ServerExtendedProperties.class, null);
+ if( props == null )
+ return true;
+ return props.getMultipleDeployFolderSupport() != ServerExtendedProperties.DEPLOYMENT_SCANNER_NO_SUPPORT;
}
public boolean showTempAndDeployTexts() {
More information about the jbosstools-commits
mailing list