Author: rob.stryker(a)jboss.com
Date: 2012-01-26 06:07:48 -0500 (Thu, 26 Jan 2012)
New Revision: 38197
Modified:
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/xpl/StringSubstitutionEngineClone.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/descriptors/XPathModel.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/resolvers/ConfigNameResolver.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/LocalJBoss7ServerRuntime.java
Log:
JBIDE-10718
Modified:
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/xpl/StringSubstitutionEngineClone.java
===================================================================
---
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/xpl/StringSubstitutionEngineClone.java 2012-01-26
09:13:51 UTC (rev 38196)
+++
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/xpl/StringSubstitutionEngineClone.java 2012-01-26
11:07:48 UTC (rev 38197)
@@ -10,11 +10,7 @@
*******************************************************************************/
package org.jboss.ide.eclipse.archives.core.xpl;
-import java.util.ArrayList;
-import java.util.EmptyStackException;
import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
import java.util.Stack;
import org.eclipse.core.runtime.CoreException;
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/descriptors/XPathModel.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/descriptors/XPathModel.java 2012-01-26
09:13:51 UTC (rev 38196)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/descriptors/XPathModel.java 2012-01-26
11:07:48 UTC (rev 38197)
@@ -33,7 +33,6 @@
import org.jboss.ide.eclipse.as.core.Messages;
import
org.jboss.ide.eclipse.as.core.extensions.descriptors.XPathFileResult.XPathResultNode;
import org.jboss.ide.eclipse.as.core.server.UnitedServerListener;
-import org.jboss.ide.eclipse.as.core.server.internal.LocalJBossServerRuntime;
import org.jboss.ide.eclipse.as.core.server.internal.ServerAttributeHelper;
import org.jboss.ide.eclipse.as.core.util.IConstants;
import org.jboss.ide.eclipse.as.core.util.IJBossToolingConstants;
@@ -77,37 +76,27 @@
return Status.OK_STATUS; // server has no runtime so we can't set this up.
}
- if( ServerUtil.isJBoss7(server2)) {
- return handleAddJBoss7XPaths(server2);
- } else {
- return handleAddJBossXPaths(server2);
- }
+ return handleAddJBossXPaths(server2, getQueryBaseDir(server2));
}
}.schedule();
}
- private IStatus handleAddJBoss7XPaths(IServer server2) {
- ArrayList<XPathCategory> defaults = loadDefaults(server2, "");
//$NON-NLS-1$
+ private String getQueryBaseDir(IServer server) {
+ // JBoss 6 and below have a default basedir of the config location
+ // while as7 has a basedir of the empty string
+// if( ServerUtil.isJBoss7(server))
+// return ""; //$NON-NLS-1$
+ return "${jboss_config_dir}"; //$NON-NLS-1$
+ }
+
+ private IStatus handleAddJBossXPaths(IServer server2, String baseDir) {
+ ArrayList<XPathCategory> defaults = loadDefaultPortQueries(server2, baseDir);
serverToCategories.put(server2.getId(), defaults);
save(server2);
return Status.OK_STATUS;
}
- private IStatus handleAddJBossXPaths(IServer server2) {
- LocalJBossServerRuntime ajbsr = (LocalJBossServerRuntime)
- server2.getRuntime().loadAdapter(LocalJBossServerRuntime.class, null);
- if(ajbsr != null ) {
- String configFolder = "${jboss_config_dir}";
//ajbsr.getConfigurationFullPath(); //$NON-NLS-1$
- if( configFolder != null ) {
- ArrayList<XPathCategory> defaults = loadDefaults(server2, configFolder);
- serverToCategories.put(server2.getId(), defaults);
- save(server2);
- }
- }
- return Status.OK_STATUS;
- }
-
public XPathQuery getQuery(IServer server, IPath path) {
XPathCategory cat = getCategory(server, path.segment(0));
if( cat != null )
@@ -254,50 +243,57 @@
* Loading the defaults for the server
* returns the category created
*/
- private static HashMap<String, IPath> rtToPortsFile;
+ private static HashMap<String, URL> rtToPortsFile;
private static final String ATTRIBUTE_SUFFIX = "_ATTRIBUTE";//$NON-NLS-1$
private static final String FILE_SUFFIX = "_FILE";//$NON-NLS-1$
static {
IPath properties = new Path(IJBossToolingConstants.PROPERTIES);
- rtToPortsFile = new HashMap<String, IPath>();
- rtToPortsFile.put(IConstants.AS_32,
properties.append(IJBossToolingConstants.DEFAULT_PROPS_32));
- rtToPortsFile.put(IConstants.AS_40,
properties.append(IJBossToolingConstants.DEFAULT_PROPS_40));
- rtToPortsFile.put(IConstants.AS_42,
properties.append(IJBossToolingConstants.DEFAULT_PROPS_42));
- rtToPortsFile.put(IConstants.AS_50,
properties.append(IJBossToolingConstants.DEFAULT_PROPS_50));
- rtToPortsFile.put(IConstants.AS_51,
properties.append(IJBossToolingConstants.DEFAULT_PROPS_51));
- rtToPortsFile.put(IConstants.AS_60,
properties.append(IJBossToolingConstants.DEFAULT_PROPS_60));
- rtToPortsFile.put(IConstants.AS_70,
properties.append(IJBossToolingConstants.DEFAULT_PROPS_70));
- rtToPortsFile.put(IConstants.AS_71,
properties.append(IJBossToolingConstants.DEFAULT_PROPS_71));
- rtToPortsFile.put(IConstants.EAP_43,
properties.append(IJBossToolingConstants.DEFAULT_PROPS_EAP_43));
- rtToPortsFile.put(IConstants.EAP_50,
properties.append(IJBossToolingConstants.DEFAULT_PROPS_EAP_50));
- rtToPortsFile.put(IConstants.EAP_60,
properties.append(IJBossToolingConstants.DEFAULT_PROPS_70));
+ rtToPortsFile = new HashMap<String, URL>();
+ rtToPortsFile.put(IConstants.AS_32,
getURLFor(IJBossToolingConstants.DEFAULT_PROPS_32));
+ rtToPortsFile.put(IConstants.AS_40,
getURLFor(IJBossToolingConstants.DEFAULT_PROPS_40));
+ rtToPortsFile.put(IConstants.AS_42,
getURLFor(IJBossToolingConstants.DEFAULT_PROPS_42));
+ rtToPortsFile.put(IConstants.AS_50,
getURLFor(IJBossToolingConstants.DEFAULT_PROPS_50));
+ rtToPortsFile.put(IConstants.AS_51,
getURLFor(IJBossToolingConstants.DEFAULT_PROPS_51));
+ rtToPortsFile.put(IConstants.AS_60,
getURLFor(IJBossToolingConstants.DEFAULT_PROPS_60));
+ rtToPortsFile.put(IConstants.AS_70,
getURLFor(IJBossToolingConstants.DEFAULT_PROPS_70));
+ rtToPortsFile.put(IConstants.AS_71,
getURLFor(IJBossToolingConstants.DEFAULT_PROPS_71));
+ rtToPortsFile.put(IConstants.EAP_43,
getURLFor(IJBossToolingConstants.DEFAULT_PROPS_EAP_43));
+ rtToPortsFile.put(IConstants.EAP_50,
getURLFor(IJBossToolingConstants.DEFAULT_PROPS_EAP_50));
+ rtToPortsFile.put(IConstants.EAP_60,
getURLFor(IJBossToolingConstants.DEFAULT_PROPS_70));
// TODO NEW_SERVER_ADAPTER Add the new server ID to port mapping file above this line
}
+
+ /**
+ * @since 2.3
+ */
+ public static void addServerTypeToURLMapping(String serverType, URL mapping) {
+ if( !rtToPortsFile.containsKey(serverType)) {
+ // ensure nobody tries to overwrite our values
+ rtToPortsFile.put(serverType, mapping);
+ }
+ }
+
+ /**
+ * @since 2.3
+ */
+ public static URL getUrlFromServerType(String serverType) {
+ return rtToPortsFile.get(serverType);
+ }
+
+ private static URL getURLFor(String props) {
+ IPath properties = new Path(IJBossToolingConstants.PROPERTIES).append(props);
+ URL url = FileLocator.find(JBossServerCorePlugin.getDefault().getBundle(), properties,
null);
+ return url;
+ }
- private static ArrayList<XPathCategory> loadDefaults(IServer server, String
configFolder) {
+ public static ArrayList<XPathCategory> loadDefaultPortQueries(IServer server,
String baseDir) {
ArrayList<XPathCategory> retVal = new ArrayList<XPathCategory>();
- Path p = (Path)rtToPortsFile.get(server.getRuntime().getRuntimeType().getId());
- if( p == null ) return retVal;
- URL url = FileLocator.find(JBossServerCorePlugin.getDefault().getBundle(), p, null);
+ URL url = rtToPortsFile.get(server.getRuntime().getRuntimeType().getId());
if( url == null ) return retVal;
- Properties pr = new Properties();
try {
- pr.load(url.openStream());
XPathCategory ports = new XPathCategory(PORTS_CATEGORY_NAME, server);
- Iterator i = pr.keySet().iterator();
- String name, xpath, attributeName, file;
- XPathQuery query;
- while(i.hasNext()) {
- name = (String)i.next();
- if( !name.endsWith(ATTRIBUTE_SUFFIX) && !name.endsWith(FILE_SUFFIX)) {
- xpath = pr.getProperty(name);
- attributeName = pr.getProperty(name+ATTRIBUTE_SUFFIX);
- file = pr.getProperty(name + FILE_SUFFIX);
- query = new XPathQuery(server, name.replace('_', ' '), configFolder,
file, xpath, attributeName);
- ports.addQuery(query);
- }
- }
+ addQueriesToCategoryFromDefaultFile(server, ports, baseDir, url);
retVal.add(ports);
} catch (IOException e) {
JBossServerCorePlugin.getDefault().getLog().log(
@@ -307,6 +303,24 @@
return retVal;
}
+ public static void addQueriesToCategoryFromDefaultFile(IServer server, XPathCategory
category,
+ String baseDir, URL url) throws IOException {
+ Properties pr = new Properties();
+ pr.load(url.openStream());
+ Iterator i = pr.keySet().iterator();
+ String name, xpath, attributeName, file;
+ XPathQuery query;
+ while(i.hasNext()) {
+ name = (String)i.next();
+ if( !name.endsWith(ATTRIBUTE_SUFFIX) && !name.endsWith(FILE_SUFFIX)) {
+ xpath = pr.getProperty(name);
+ attributeName = pr.getProperty(name+ATTRIBUTE_SUFFIX);
+ file = pr.getProperty(name + FILE_SUFFIX);
+ query = new XPathQuery(server, name.replace('_', ' '), baseDir, file,
xpath, attributeName);
+ category.addQuery(query);
+ }
+ }
+ }
/*
* Namespace map
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/resolvers/ConfigNameResolver.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/resolvers/ConfigNameResolver.java 2012-01-26
09:13:51 UTC (rev 38196)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/resolvers/ConfigNameResolver.java 2012-01-26
11:07:48 UTC (rev 38197)
@@ -1,3 +1,14 @@
+/*******************************************************************************
+ * 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.resolvers;
import org.eclipse.core.runtime.CoreException;
@@ -8,7 +19,19 @@
import org.eclipse.wst.server.core.IServer;
import org.eclipse.wst.server.core.ServerCore;
import org.jboss.ide.eclipse.as.core.server.IJBossServerRuntime;
-
+/**
+ * These classes are primarily geared for as6-and-below
+ * and are meant to serve as a dereferencing point to discover
+ * the configuration name and it's parent directory in the case
+ * other portions of the tool, such as xpaths or classpaths,
+ * want to use these variables in their saved strings.
+ *
+ * They are not really geared for use with as7 and above, and their
+ * behaviour with regards to as7 and above are officially undefined,
+ * though unofficially both should return the empty string in these cases
+ * @author rob
+ *
+ */
public class ConfigNameResolver implements IDynamicVariableResolver {
public String resolveValue(IDynamicVariable variable, String argument)
@@ -21,27 +44,7 @@
}
protected String handleConfig(IDynamicVariable variable, String argument) {
- IJBossServerRuntime ajbsrt = null;
- IServer[] servers = ServerCore.getServers();
- for( int i = 0; i < servers.length; i++ ) {
- if( servers[i].getName().equals(argument)) {
- ajbsrt = (IJBossServerRuntime) servers[i].getRuntime()
- .loadAdapter(IJBossServerRuntime.class,
- new NullProgressMonitor());
- break;
- }
- }
- if( ajbsrt == null ) {
- IRuntime[] runtimes = ServerCore.getRuntimes();
- for( int i = 0; i < runtimes.length; i++ ) {
- if( runtimes[i].getName().equals(argument)) {
- ajbsrt = (IJBossServerRuntime) runtimes[i]
- .loadAdapter(IJBossServerRuntime.class,
- new NullProgressMonitor());
- break;
- }
- }
- }
+ IJBossServerRuntime ajbsrt = findJBossServerRuntime(argument);
if( ajbsrt != null ) {
String config = null;
if( ajbsrt != null )
@@ -52,27 +55,7 @@
return null;
}
protected String handleConfigDir(IDynamicVariable variable, String argument) {
- IJBossServerRuntime ajbsrt = null;
- IServer[] servers = ServerCore.getServers();
- for( int i = 0; i < servers.length; i++ ) {
- if( servers[i].getName().equals(argument)) {
- ajbsrt = (IJBossServerRuntime) servers[i].getRuntime()
- .loadAdapter(IJBossServerRuntime.class,
- new NullProgressMonitor());
- break;
- }
- }
- if( ajbsrt == null ) {
- IRuntime[] runtimes = ServerCore.getRuntimes();
- for( int i = 0; i < runtimes.length; i++ ) {
- if( runtimes[i].getName().equals(argument)) {
- ajbsrt = (IJBossServerRuntime) runtimes[i]
- .loadAdapter(IJBossServerRuntime.class,
- new NullProgressMonitor());
- break;
- }
- }
- }
+ IJBossServerRuntime ajbsrt = findJBossServerRuntime(argument);
if( ajbsrt != null ) {
String config = null;
if( ajbsrt != null )
@@ -82,4 +65,24 @@
}
return null;
}
+
+ private IJBossServerRuntime findJBossServerRuntime(String serverName) {
+ IServer[] servers = ServerCore.getServers();
+ for( int i = 0; i < servers.length; i++ ) {
+ if( servers[i].getName().equals(serverName)) {
+ return (IJBossServerRuntime) servers[i].getRuntime()
+ .loadAdapter(IJBossServerRuntime.class, new NullProgressMonitor());
+ }
+ }
+ IRuntime[] runtimes = ServerCore.getRuntimes();
+ for( int i = 0; i < runtimes.length; i++ ) {
+ if( runtimes[i].getName().equals(serverName)) {
+ return (IJBossServerRuntime) runtimes[i]
+ .loadAdapter(IJBossServerRuntime.class, new NullProgressMonitor());
+ }
+ }
+ return null;
+
+ }
+
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/LocalJBoss7ServerRuntime.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/LocalJBoss7ServerRuntime.java 2012-01-26
09:13:51 UTC (rev 38196)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/LocalJBoss7ServerRuntime.java 2012-01-26
11:07:48 UTC (rev 38197)
@@ -11,8 +11,10 @@
package org.jboss.ide.eclipse.as.core.server.internal.v7;
import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
+import org.jboss.ide.eclipse.as.core.server.IJBossServerRuntime;
import org.jboss.ide.eclipse.as.core.server.internal.LocalJBossServerRuntime;
import org.jboss.ide.eclipse.as.core.util.IJBossRuntimeConstants;
import org.jboss.ide.eclipse.as.core.util.IJBossRuntimeResourceConstants;
@@ -21,8 +23,14 @@
public static final String CONFIG_FILE =
"org.jboss.ide.eclipse.as.core.server.internal.v7.CONFIG_FILE"; //$NON-NLS-1$
public static final String CONFIG_FILE_DEFAULT = "standalone.xml";
//$NON-NLS-1$
-
@Override
+ public void setDefaults(IProgressMonitor monitor) {
+ super.setDefaults(monitor);
+ // clear as6 default property
+ setAttribute(IJBossServerRuntime.PROPERTY_CONFIGURATION_NAME, "");
//$NON-NLS-1$
+ }
+
+ @Override
public IStatus validate() {
return Status.OK_STATUS;
}
@@ -71,4 +79,16 @@
public void setConfigurationFile(String file) {
setAttribute(CONFIG_FILE, file);
}
+
+ // Overrides of as6-and-below's notion of configuration
+ @Override
+ public String getConfigLocation() {
+ return ""; //$NON-NLS-1$
+ }
+ @Override
+ public String getJBossConfiguration() {
+ return ""; //$NON-NLS-1$
+ }
+
+
}