Author: rob.stryker(a)jboss.com
Date: 2011-06-28 10:53:38 -0400 (Tue, 28 Jun 2011)
New Revision: 32407
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/XPathRuntimeListener.java
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/JBossServerUIPlugin.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/dialogs/XPathDialogs.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/XPathActionProvider.java
Log:
JBIDE-8355 - xpaths need to not hard-code the root folder
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/JBossServerUIPlugin.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/JBossServerUIPlugin.java 2011-06-28
14:49:39 UTC (rev 32406)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/JBossServerUIPlugin.java 2011-06-28
14:53:38 UTC (rev 32407)
@@ -36,6 +36,7 @@
import org.jboss.ide.eclipse.as.core.JBossServerCorePlugin;
import org.jboss.ide.eclipse.as.core.server.UnitedServerListenerManager;
import org.jboss.ide.eclipse.as.ui.console.ShowConsoleServerStateListener;
+import org.jboss.ide.eclipse.as.ui.views.server.extensions.XPathRuntimeListener;
import org.jboss.ide.eclipse.as.ui.wizards.JBInitialSelectionProvider;
import org.osgi.framework.BundleContext;
@@ -85,12 +86,14 @@
savePluginPreferences();
UnitedServerListenerManager.getDefault().addListener(ShowConsoleServerStateListener.getDefault());
ServerCore.addServerLifecycleListener(selectionProvider);
+ ServerCore.addRuntimeLifecycleListener(XPathRuntimeListener.getDefault());
}
/**
* This method is called when the plug-in is stopped
*/
public void stop(BundleContext context) throws Exception {
+ ServerCore.removeRuntimeLifecycleListener(XPathRuntimeListener.getDefault());
ServerCore.removeServerLifecycleListener(selectionProvider);
UnitedServerListenerManager.getDefault().removeListener(ShowConsoleServerStateListener.getDefault());
JBossServerUISharedImages.instance().cleanup();
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/dialogs/XPathDialogs.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/dialogs/XPathDialogs.java 2011-06-28
14:49:39 UTC (rev 32406)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/dialogs/XPathDialogs.java 2011-06-28
14:53:38 UTC (rev 32407)
@@ -27,6 +27,9 @@
import java.util.HashMap;
import java.util.TreeSet;
+import org.eclipse.core.internal.variables.StringSubstitutionEngine;
+import org.eclipse.core.internal.variables.StringVariableManager;
+import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
@@ -386,6 +389,16 @@
if( !new Path(directory).isAbsolute()) {
directory = server.getRuntime().getLocation().append(directory).toString();
}
+ directory = directory.replace("${jboss_config_dir}", //$NON-NLS-1$
+ "${jboss_config_dir:" + server.getName() + "}"); //$NON-NLS-1$
//$NON-NLS-2$
+ directory = directory.replace("${jboss_config}", //$NON-NLS-1$
+ "${jboss_config:" + server.getName() + "}"); //$NON-NLS-1$
//$NON-NLS-2$
+ try {
+ StringSubstitutionEngine engine = new StringSubstitutionEngine();
+ directory = engine.performStringSubstitution(directory, true,
+ true, StringVariableManager.getDefault());
+ } catch( CoreException ce ) {}
+
final String directory2 = directory;
IRunnableWithProgress op = new IRunnableWithProgress() {
public void run(IProgressMonitor monitor) throws InvocationTargetException,
InterruptedException {
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/XPathActionProvider.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/XPathActionProvider.java 2011-06-28
14:49:39 UTC (rev 32406)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/XPathActionProvider.java 2011-06-28
14:53:38 UTC (rev 32407)
@@ -143,7 +143,7 @@
}
if (categoryItem != null) {
XPathQuery query = new XPathQuery(d.getName(),
- XPathDialogs.getConfigFolder(getServer()),
+ "server/${config}", // TODO externalize this in a constant
null, d.getXpath(), d.getAttribute());
categoryItem.addQuery(query);
XPathModel.getDefault().save(getServer());
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/XPathRuntimeListener.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/XPathRuntimeListener.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/XPathRuntimeListener.java 2011-06-28
14:53:38 UTC (rev 32407)
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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.ui.views.server.extensions;
+
+import org.eclipse.ui.IViewPart;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.navigator.CommonNavigator;
+import org.eclipse.wst.server.core.IRuntime;
+import org.eclipse.wst.server.core.IRuntimeLifecycleListener;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.ServerCore;
+import org.jboss.ide.eclipse.as.core.extensions.descriptors.XPathCategory;
+import org.jboss.ide.eclipse.as.core.extensions.descriptors.XPathModel;
+
+public class XPathRuntimeListener implements IRuntimeLifecycleListener {
+ public static XPathRuntimeListener instance;
+ public static XPathRuntimeListener getDefault() {
+ if( instance == null )
+ instance = new XPathRuntimeListener();
+ return instance;
+ }
+
+ protected XPathRuntimeListener() {
+
+ }
+
+ public void runtimeAdded(IRuntime runtime) {
+ }
+ public void runtimeRemoved(IRuntime runtime) {
+ }
+ public void runtimeChanged(IRuntime runtime) {
+ IViewPart part =
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView("org.eclipse.wst.server.ui.ServersView");
+ IServer[] allServers = ServerCore.getServers();
+ for( int i = 0; i < allServers.length; i++ ) {
+ if( runtime.equals(allServers[i].getRuntime())) {
+ XPathCategory[] cats = XPathModel.getDefault().getCategories(allServers[i]);
+ for( int j = 0; j < cats.length; j++ ) {
+ cats[j].clearCache();
+ }
+ }
+ if( part != null && part instanceof CommonNavigator) {
+ ((CommonNavigator)part).getCommonViewer().refresh(allServers[i]);
+ }
+ }
+ }
+}