You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2006/05/12 23:29:26 UTC
svn commit: r405881 - in /geronimo/branches/1.1:
assemblies/j2ee-jetty-server/src/var/config/
assemblies/j2ee-tomcat-server/src/var/config/
assemblies/minimal-jetty-server/src/var/config/
assemblies/minimal-tomcat-server/src/var/config/ etc/ modules/de...
Author: djencks
Date: Fri May 12 14:29:24 2006
New Revision: 405881
URL: http://svn.apache.org/viewcvs?rev=405881&view=rev
Log:
GERONIMO-1507 offline deployer. Also GERONIMO-1861 make a backup copy of config.xml
Added:
geronimo/branches/1.1/assemblies/j2ee-jetty-server/src/var/config/offline-deployer-list
geronimo/branches/1.1/assemblies/j2ee-tomcat-server/src/var/config/offline-deployer-list
geronimo/branches/1.1/assemblies/minimal-jetty-server/src/var/config/offline-deployer-list
geronimo/branches/1.1/assemblies/minimal-tomcat-server/src/var/config/offline-deployer-list
geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/LocalServer.java
Removed:
geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/GBeanDataRegistry.java
Modified:
geronimo/branches/1.1/etc/explicit_versions.properties
geronimo/branches/1.1/etc/project.properties
geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/ServerConnection.java
geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentConfigurationManager.java
geronimo/branches/1.1/modules/deployment/src/test/org/apache/geronimo/deployment/SingleFileHotDeployerTest.java
geronimo/branches/1.1/modules/kernel/project.xml
geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/ConfigurationManager.java
geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/KernelConfigurationManager.java
geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java
geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/SimpleConfigurationManager.java
geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLine.java
geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLineManifest.java
geronimo/branches/1.1/modules/system/src/test/org/apache/geronimo/system/plugin/PluginInstallerTest.java
geronimo/branches/1.1/plugins/geronimo-assembly-plugin/plugin.jelly
geronimo/branches/1.1/plugins/geronimo-assembly-plugin/project.xml
Added: geronimo/branches/1.1/assemblies/j2ee-jetty-server/src/var/config/offline-deployer-list
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/assemblies/j2ee-jetty-server/src/var/config/offline-deployer-list?rev=405881&view=auto
==============================================================================
--- geronimo/branches/1.1/assemblies/j2ee-jetty-server/src/var/config/offline-deployer-list (added)
+++ geronimo/branches/1.1/assemblies/j2ee-jetty-server/src/var/config/offline-deployer-list Fri May 12 14:29:24 2006
@@ -0,0 +1,7 @@
+#list of deployers to be started for offline deployment
+geronimo/geronimo-gbean-deployer/${pom.currentVersion}/car
+geronimo/j2ee-deployer/${pom.currentVersion}/car
+geronimo/openejb-deployer/${pom.currentVersion}/car
+geronimo/client-deployer/${pom.currentVersion}/car
+geronimo/axis-deployer/${pom.currentVersion}/car
+geronimo/jetty-deployer/${pom.currentVersion}/car
Added: geronimo/branches/1.1/assemblies/j2ee-tomcat-server/src/var/config/offline-deployer-list
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/assemblies/j2ee-tomcat-server/src/var/config/offline-deployer-list?rev=405881&view=auto
==============================================================================
--- geronimo/branches/1.1/assemblies/j2ee-tomcat-server/src/var/config/offline-deployer-list (added)
+++ geronimo/branches/1.1/assemblies/j2ee-tomcat-server/src/var/config/offline-deployer-list Fri May 12 14:29:24 2006
@@ -0,0 +1,7 @@
+#list of deployers to be started for offline deployment
+geronimo/geronimo-gbean-deployer/${pom.currentVersion}/car
+geronimo/j2ee-deployer/${pom.currentVersion}/car
+geronimo/openejb-deployer/${pom.currentVersion}/car
+geronimo/client-deployer/${pom.currentVersion}/car
+geronimo/axis-deployer/${pom.currentVersion}/car
+geronimo/tomcat-deployer/${pom.currentVersion}/car
Added: geronimo/branches/1.1/assemblies/minimal-jetty-server/src/var/config/offline-deployer-list
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/assemblies/minimal-jetty-server/src/var/config/offline-deployer-list?rev=405881&view=auto
==============================================================================
--- geronimo/branches/1.1/assemblies/minimal-jetty-server/src/var/config/offline-deployer-list (added)
+++ geronimo/branches/1.1/assemblies/minimal-jetty-server/src/var/config/offline-deployer-list Fri May 12 14:29:24 2006
@@ -0,0 +1,7 @@
+#list of deployers to be started for offline deployment
+geronimo/geronimo-gbean-deployer/${pom.currentVersion}/car
+geronimo/j2ee-deployer/${pom.currentVersion}/car
+geronimo/jetty-deployer/${pom.currentVersion}/car
+geronimo/unavailable-ejb-deployer/${pom.currentVersion}/car
+geronimo/unavailable-webservices-deployer/${pom.currentVersion}/car
+geronimo/unavailable-client-deployer/${pom.currentVersion}/car
Added: geronimo/branches/1.1/assemblies/minimal-tomcat-server/src/var/config/offline-deployer-list
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/assemblies/minimal-tomcat-server/src/var/config/offline-deployer-list?rev=405881&view=auto
==============================================================================
--- geronimo/branches/1.1/assemblies/minimal-tomcat-server/src/var/config/offline-deployer-list (added)
+++ geronimo/branches/1.1/assemblies/minimal-tomcat-server/src/var/config/offline-deployer-list Fri May 12 14:29:24 2006
@@ -0,0 +1,7 @@
+#list of deployers to be started for offline deployment
+geronimo/geronimo-gbean-deployer/${pom.currentVersion}/car
+geronimo/j2ee-deployer/${pom.currentVersion}/car
+geronimo/tomcat-deployer/${pom.currentVersion}/car
+geronimo/unavailable-ejb-deployer/${pom.currentVersion}/car
+geronimo/unavailable-webservices-deployer/${pom.currentVersion}/car
+geronimo/unavailable-client-deployer/${pom.currentVersion}/car
Modified: geronimo/branches/1.1/etc/explicit_versions.properties
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/etc/explicit_versions.properties?rev=405881&r1=405880&r2=405881&view=diff
==============================================================================
--- geronimo/branches/1.1/etc/explicit_versions.properties (original)
+++ geronimo/branches/1.1/etc/explicit_versions.properties Fri May 12 14:29:24 2006
@@ -42,7 +42,7 @@
dom4j///=1.4
dwr///=1.0
eclipse_compiler///=3.0.1
-howl///=0.1.11
+howl///=1.0.1
#security:
hsqldb///=1.7.2.2
jasper///=5.5.15
Modified: geronimo/branches/1.1/etc/project.properties
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/etc/project.properties?rev=405881&r1=405880&r2=405881&view=diff
==============================================================================
--- geronimo/branches/1.1/etc/project.properties (original)
+++ geronimo/branches/1.1/etc/project.properties Fri May 12 14:29:24 2006
@@ -97,7 +97,7 @@
release_notes_version=1.0
geronimo_packaging_plugin_version=1.1.0-8
-geronimo_assembly_plugin_version=1.1.0-11
+geronimo_assembly_plugin_version=1.1.0-12
geronimo_deployment_plugin_version=1.1.0-3
geronimo_dependency_plugin_version=1.1.0-3
@@ -153,7 +153,7 @@
dom4j_version=1.4
dwr_version=1.1.1
eclipse_compiler_version=3.0.1
-howl_version=0.1.11
+howl_version=1.0.1
#security:
hsqldb_version=1.7.2.2
jasper_version=5.5.15
Added: geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/LocalServer.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/LocalServer.java?rev=405881&view=auto
==============================================================================
--- geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/LocalServer.java (added)
+++ geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/LocalServer.java Fri May 12 14:29:24 2006
@@ -0,0 +1,80 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.geronimo.deployment.cli;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.apache.geronimo.gbean.AbstractName;
+import org.apache.geronimo.gbean.AbstractNameQuery;
+import org.apache.geronimo.kernel.GBeanNotFoundException;
+import org.apache.geronimo.kernel.Kernel;
+import org.apache.geronimo.kernel.config.PersistentConfigurationList;
+import org.apache.geronimo.kernel.repository.Artifact;
+import org.apache.geronimo.system.main.CommandLine;
+import org.apache.geronimo.system.serverinfo.ServerInfo;
+
+/**
+ * @version $Rev:$ $Date:$
+ */
+public class LocalServer extends CommandLine {
+
+ public LocalServer(String configListLocation) throws Exception {
+ startKernel(Artifact.create("geronimo/j2ee-system//car"));
+ Runtime.getRuntime().addShutdownHook(new Thread("Geronimo shutdown thread") {
+ public void run() {
+ getKernel().shutdown();
+ }
+ });
+ List configs = getConfigurationList(configListLocation);
+ loadConfigurations(configs);
+ }
+
+ public Kernel getKernel() {
+ return super.getKernel();
+ }
+
+ protected List getConfigurationList(String path) throws GBeanNotFoundException, IOException {
+ ServerInfo serverInfo = (ServerInfo) getKernel().getGBean(ServerInfo.class);
+ File configFile = serverInfo.resolve(path);
+ List modules = new ArrayList();
+ BufferedReader in = new BufferedReader(new FileReader(configFile));
+ try {
+ String artifactString;
+ while ((artifactString = in.readLine()) != null) {
+ artifactString = artifactString.trim();
+ if (!artifactString.startsWith("#") && artifactString.length() > 0) {
+ Artifact artifact = Artifact.create(artifactString);
+ modules.add(artifact);
+ }
+ }
+ } finally {
+ in.close();
+ }
+ return modules;
+ }
+
+}
Modified: geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/ServerConnection.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/ServerConnection.java?rev=405881&r1=405880&r2=405881&view=diff
==============================================================================
--- geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/ServerConnection.java (original)
+++ geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/ServerConnection.java Fri May 12 14:29:24 2006
@@ -31,6 +31,7 @@
import java.util.Map;
import java.util.Properties;
import java.util.jar.JarFile;
+
import javax.enterprise.deploy.shared.factories.DeploymentFactoryManager;
import javax.enterprise.deploy.spi.DeploymentManager;
import javax.enterprise.deploy.spi.exceptions.DeploymentManagerCreationException;
@@ -40,7 +41,12 @@
import org.apache.geronimo.deployment.plugin.factories.AuthenticationFailedException;
import org.apache.geronimo.deployment.plugin.factories.DeploymentFactoryImpl;
import org.apache.geronimo.deployment.plugin.jmx.JMXDeploymentManager;
+import org.apache.geronimo.deployment.plugin.jmx.LocalDeploymentManager;
import org.apache.geronimo.util.SimpleEncryption;
+import org.apache.geronimo.kernel.Kernel;
+import org.apache.geronimo.kernel.config.ConfigurationManager;
+import org.apache.geronimo.kernel.config.ConfigurationUtil;
+import org.apache.geronimo.kernel.config.KernelConfigurationManager;
/**
* Supports online connections to the server, via JSR-88, valid only
@@ -50,6 +56,7 @@
*/
public class ServerConnection {
private final static Map OPTION_HELP = new LinkedHashMap(9);
+
static {
OPTION_HELP.put("--uri", "A URI to contact the server. If not specified, the deployer defaults to " +
"operating on a Geronimo server running on the standard port on localhost.\n" +
@@ -69,7 +76,9 @@
OPTION_HELP.put("--password", "Specifies a password to use to authenticate to the server.");
OPTION_HELP.put("--syserr", "Enables error logging to syserr. Disabled by default.");
OPTION_HELP.put("--verbose", "Enables verbose execution mode. Disabled by default.");
+ OPTION_HELP.put("--offline", "Deploy offline to a local server, using whatever deployers are available in the local server");
}
+
public static Map getOptionHelp() {
return OPTION_HELP;
}
@@ -80,19 +89,18 @@
* argument). For example, if the arguments were "--user bob foo" then
* this should return true for "--user" and "bob" and false for "foo".
*
- * @param args The previous arguments on the command line
+ * @param args The previous arguments on the command line
* @param option The argument we're checking at the moment
- *
* @return True if the argument we're checking is part of a general argument
*/
public static boolean isGeneralOption(List args, String option) {
- if(OPTION_HELP.containsKey(option) || option.equals("--url")) {
+ if (OPTION_HELP.containsKey(option) || option.equals("--url")) {
return true;
}
- if(args.size() == 0) {
+ if (args.size() == 0) {
return false;
}
- String last = (String) args.get(args.size()-1);
+ String last = (String) args.get(args.size() - 1);
return last.equals("--uri") || last.equals("--url") || last.equals("--driver") || last.equals("--user") ||
last.equals("--password") || last.equals("--host") || last.equals("--port");
}
@@ -111,62 +119,64 @@
Integer port = null;
this.out = out;
this.in = in;
- for(int i = 0; i < args.length; i++) {
+ boolean offline = false;
+ for (int i = 0; i < args.length; i++) {
String arg = args[i];
- if(arg.equals("--uri") || arg.equals("--url")) {
- if(uri != null) {
+ if (arg.equals("--uri") || arg.equals("--url")) {
+ if (uri != null) {
throw new DeploymentSyntaxException("Cannot specify more than one URI");
- } else if(i >= args.length-1) {
+ } else if (i >= args.length - 1) {
throw new DeploymentSyntaxException("Must specify a URI (e.g. --uri deployer:...)");
}
- if(host != null || port != null) {
+ if (host != null || port != null) {
throw new DeploymentSyntaxException("Cannot specify a URI as well as a host/port");
}
uri = args[++i];
- } else if(arg.equals("--host")) {
- if(host != null) {
+ } else if (arg.equals("--host")) {
+ if (host != null) {
throw new DeploymentSyntaxException("Cannot specify more than one host");
- } else if(i >= args.length-1) {
+ } else if (i >= args.length - 1) {
throw new DeploymentSyntaxException("Must specify a hostname (e.g. --host localhost)");
}
- if(uri != null) {
+ if (uri != null) {
throw new DeploymentSyntaxException("Cannot specify a URI as well as a host/port");
}
host = args[++i];
- } else if(arg.equals("--port")) {
- if(port != null) {
+ } else if (arg.equals("--port")) {
+ if (port != null) {
throw new DeploymentSyntaxException("Cannot specify more than one port");
- } else if(i >= args.length-1) {
+ } else if (i >= args.length - 1) {
throw new DeploymentSyntaxException("Must specify a port (e.g. --port 1099)");
}
- if(uri != null) {
+ if (uri != null) {
throw new DeploymentSyntaxException("Cannot specify a URI as well as a host/port");
}
try {
port = new Integer(args[++i]);
} catch (NumberFormatException e) {
- throw new DeploymentSyntaxException("Port must be a number ("+e.getMessage()+")");
+ throw new DeploymentSyntaxException("Port must be a number (" + e.getMessage() + ")");
}
- } else if(arg.equals("--driver")) {
- if(driver != null) {
+ } else if (arg.equals("--driver")) {
+ if (driver != null) {
throw new DeploymentSyntaxException("Cannot specify more than one driver");
- } else if(i >= args.length-1) {
+ } else if (i >= args.length - 1) {
throw new DeploymentSyntaxException("Must specify a driver JAR (--driver jarfile)");
}
driver = args[++i];
- } else if(arg.equals("--offline")) {
- throw new DeploymentSyntaxException("This tool no longer handles offline deployment");
- } else if(arg.equals("--user")) {
- if(user != null) {
+ } else if (arg.equals("--offline")) {
+ //throw new DeploymentSyntaxException("This tool no longer handles offline deployment");
+ offline = true;
+ } else if (arg.equals("--user")) {
+ if (user != null) {
throw new DeploymentSyntaxException("Cannot specify more than one user name");
- } else if(i >= args.length-1) {
+ } else if (i >= args.length - 1) {
throw new DeploymentSyntaxException("Must specify a username (--user username)");
}
user = args[++i];
- } else if(arg.equals("--password")) {
- if(password != null) {
+ } else if (arg.equals("--password")) {
+ if (password != null) {
throw new DeploymentSyntaxException("Cannot specify more than one password");
- } else if(i >= args.length-1) {
+ } else if (i >= args.length - 1) {
throw new DeploymentSyntaxException("Must specify a password (--password password)");
}
password = args[++i];
@@ -175,23 +185,37 @@
} else if (arg.equals("--syserr")) {
logToSysErr = true;
} else {
- throw new DeploymentException("Invalid option "+arg);
+ throw new DeploymentException("Invalid option " + arg);
}
}
- if((driver != null) && uri == null) {
+ if ((driver != null) && uri == null) {
throw new DeploymentSyntaxException("A custom driver requires a custom URI");
}
- if(host != null || port != null) {
- uri = DEFAULT_URI+"://"+(host == null ? "" : host)+(port == null ? "" : ":"+port);
+ if (host != null || port != null) {
+ uri = DEFAULT_URI + "://" + (host == null ? "" : host) + (port == null ? "" : ":" + port);
+ }
+ if (offline) {
+ LocalServer localServer;
+ try {
+ localServer = new LocalServer("var/config/offline-deployer-list");
+ } catch (Exception e) {
+ throw new DeploymentException("Could not start local server", e);
+ }
+ Kernel kernel = localServer.getKernel();
+ ConfigurationManager configurationManager = ConfigurationUtil.getConfigurationManager(kernel);
+ configurationManager.setOnline(false);
+
+ manager = new LocalDeploymentManager(localServer.getKernel());
+ } else {
+ tryToConnect(uri, driver, user, password, true);
}
- tryToConnect(uri, driver, user, password, true);
- if(manager == null) {
+ if (manager == null) {
throw new DeploymentException("Unexpected error; connection failed.");
}
}
public void close() throws DeploymentException {
- if(manager != null) {
+ if (manager != null) {
manager.release();
}
}
@@ -206,55 +230,59 @@
private void tryToConnect(String argURI, String driver, String user, String password, boolean authPrompt) throws DeploymentException {
DeploymentFactoryManager mgr = DeploymentFactoryManager.getInstance();
- if(driver != null) {
+ if (driver != null) {
loadDriver(driver, mgr);
} else {
mgr.registerDeploymentFactory(new DeploymentFactoryImpl());
}
String useURI = argURI == null ? DEFAULT_URI : argURI;
- if(authPrompt && user == null && password == null) {
+ if (authPrompt && user == null && password == null) {
InputStream in;
// First check for .geronimo-deployer on class path (e.g. packaged in deployer.jar)
in = ServerConnection.class.getResourceAsStream("/.geronimo-deployer");
// If not there, check in home directory
- if(in == null) {
+ if (in == null) {
File authFile = new File(System.getProperty("user.home"), ".geronimo-deployer");
- if(authFile.exists() && authFile.canRead()) {
+ if (authFile.exists() && authFile.canRead()) {
try {
in = new BufferedInputStream(new FileInputStream(authFile));
- } catch (FileNotFoundException e) {}
+ } catch (FileNotFoundException e) {
+ }
}
}
- if(in != null) {
+ if (in != null) {
try {
Properties props = new Properties();
props.load(in);
- String encryped = props.getProperty("login."+useURI);
- if(encryped != null) {
- if(encryped.startsWith("{Standard}")) {
+ String encryped = props.getProperty("login." + useURI);
+ if (encryped != null) {
+ if (encryped.startsWith("{Standard}")) {
SavedAuthentication auth = (SavedAuthentication) SimpleEncryption.decrypt(encryped.substring(10));
- if(auth.uri.equals(useURI)) {
+ if (auth.uri.equals(useURI)) {
user = auth.user;
password = new String(auth.password);
}
- } else if(encryped.startsWith("{Plain}")) {
+ } else if (encryped.startsWith("{Plain}")) {
int pos = encryped.indexOf("/");
user = encryped.substring(7, pos);
- password = encryped.substring(pos+1);
+ password = encryped.substring(pos + 1);
} else {
System.out.print(DeployUtils.reformat("Unknown encryption used in saved login file", 4, 72));
}
}
} catch (IOException e) {
- System.out.print(DeployUtils.reformat("Unable to read authentication from saved login file: "+e.getMessage(), 4, 72));
+ System.out.print(DeployUtils.reformat("Unable to read authentication from saved login file: " + e.getMessage(), 4, 72));
} finally {
- try {in.close();}catch(IOException e) {}
+ try {
+ in.close();
+ } catch (IOException e) {
+ }
}
}
}
- if(authPrompt && !useURI.equals(DEFAULT_URI) && user == null && password == null) {
+ if (authPrompt && !useURI.equals(DEFAULT_URI) && user == null && password == null) {
// Non-standard URI, but no authentication information
doAuthPromptAndRetry(useURI, user, password);
return;
@@ -262,15 +290,15 @@
try {
manager = mgr.getDeploymentManager(useURI, user, password);
auth = new SavedAuthentication(useURI, user, password == null ? null : password.toCharArray());
- } catch(AuthenticationFailedException e) { // server's there, you just can't talk to it
- if(authPrompt) {
+ } catch (AuthenticationFailedException e) { // server's there, you just can't talk to it
+ if (authPrompt) {
doAuthPromptAndRetry(useURI, user, password);
return;
} else {
throw new DeploymentException("Login Failed");
}
- } catch(DeploymentManagerCreationException e) {
- throw new DeploymentException("Unable to connect to server at "+useURI+" -- "+e.getMessage());
+ } catch (DeploymentManagerCreationException e) {
+ throw new DeploymentException("Unable to connect to server at " + useURI + " -- " + e.getMessage());
}
}
@@ -282,37 +310,37 @@
private void loadDriver(String driver, DeploymentFactoryManager mgr) throws DeploymentException {
File file = new File(driver);
- if(!file.exists() || !file.canRead() || !DeployUtils.isJarFile(file)) {
- throw new DeploymentSyntaxException("Driver '"+file.getAbsolutePath()+"' is not a readable JAR file");
+ if (!file.exists() || !file.canRead() || !DeployUtils.isJarFile(file)) {
+ throw new DeploymentSyntaxException("Driver '" + file.getAbsolutePath() + "' is not a readable JAR file");
}
String className = null;
try {
JarFile jar = new JarFile(file);
className = jar.getManifest().getMainAttributes().getValue("J2EE-DeploymentFactory-Implementation-Class");
- if(className == null) {
- throw new DeploymentException("The driver JAR "+file.getAbsolutePath()+" does not specify a J2EE-DeploymentFactory-Implementation-Class; cannot load driver.");
+ if (className == null) {
+ throw new DeploymentException("The driver JAR " + file.getAbsolutePath() + " does not specify a J2EE-DeploymentFactory-Implementation-Class; cannot load driver.");
}
jar.close();
DeploymentFactory factory = (DeploymentFactory) Class.forName(className).newInstance();
mgr.registerDeploymentFactory(factory);
- } catch(DeploymentException e) {
+ } catch (DeploymentException e) {
throw e;
- } catch(Exception e) {
- throw new DeploymentSyntaxException("Unable to load driver class "+className+" from JAR "+file.getAbsolutePath(), e);
+ } catch (Exception e) {
+ throw new DeploymentSyntaxException("Unable to load driver class " + className + " from JAR " + file.getAbsolutePath(), e);
}
}
private void doAuthPromptAndRetry(String uri, String user, String password) throws DeploymentException {
try {
- if(user == null) {
+ if (user == null) {
out.print("Username: ");
out.flush();
user = in.readLine();
}
- if(password == null) {
+ if (password == null) {
password = new PasswordPrompt("Password: ", out).getPassword(in);
}
- } catch(IOException e) {
+ } catch (IOException e) {
throw new DeploymentException("Unable to prompt for login", e);
}
tryToConnect(uri, null, user, password, false);
@@ -349,13 +377,13 @@
int priority = Thread.currentThread().getPriority();
try {
Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
- String fullPrompt = "\r"+prompt+" "+"\r"+prompt;
+ String fullPrompt = "\r" + prompt + " " + "\r" + prompt;
StringBuffer clearline = new StringBuffer();
clearline.append('\r');
- for(int i=prompt.length()+10; i>=0; i--) {
+ for (int i = prompt.length() + 10; i >= 0; i--) {
clearline.append(' ');
}
- while(!done) {
+ while (!done) {
out.print(fullPrompt);
out.flush();
Thread.sleep(1);
@@ -377,7 +405,7 @@
* the entered password. For this to make sense, the input reader
* here must be part of the same console as the output writer passed
* to the constructor.
- *
+ * <p/>
* For higher security, should return a char[], but that will just
* be defeated by the JSR-88 call that takes a String anyway, so
* why bother?
Modified: geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentConfigurationManager.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentConfigurationManager.java?rev=405881&r1=405880&r2=405881&view=diff
==============================================================================
--- geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentConfigurationManager.java (original)
+++ geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentConfigurationManager.java Fri May 12 14:29:24 2006
@@ -84,6 +84,16 @@
return super.getArtifactResolver();
}
+ /**
+ * This configuration manager never starts any configurations
+ * @return false
+ */
+ public boolean isOnline() {
+ return false;
+ }
+
+ public void setOnline(boolean online) {
+ }
//
// LOAD
Modified: geronimo/branches/1.1/modules/deployment/src/test/org/apache/geronimo/deployment/SingleFileHotDeployerTest.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/deployment/src/test/org/apache/geronimo/deployment/SingleFileHotDeployerTest.java?rev=405881&r1=405880&r2=405881&view=diff
==============================================================================
--- geronimo/branches/1.1/modules/deployment/src/test/org/apache/geronimo/deployment/SingleFileHotDeployerTest.java (original)
+++ geronimo/branches/1.1/modules/deployment/src/test/org/apache/geronimo/deployment/SingleFileHotDeployerTest.java Fri May 12 14:29:24 2006
@@ -453,5 +453,12 @@
public ArtifactResolver getArtifactResolver() {
return artifactResolver;
}
+
+ public boolean isOnline() {
+ return true;
+ }
+
+ public void setOnline(boolean online) {
+ }
}
}
Modified: geronimo/branches/1.1/modules/kernel/project.xml
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/kernel/project.xml?rev=405881&r1=405880&r2=405881&view=diff
==============================================================================
--- geronimo/branches/1.1/modules/kernel/project.xml (original)
+++ geronimo/branches/1.1/modules/kernel/project.xml Fri May 12 14:29:24 2006
@@ -103,33 +103,4 @@
</dependency>
</dependencies>
- <build>
- <resources>
- <resource>
- <directory>${basedir}/src/java</directory>
- <includes>
- <include>**/*.xml</include>
- <include>**/*.properties</include>
- </includes>
- </resource>
- </resources>
- <unitTest>
- <includes>
- <include>**/*Test.java</include>
- </includes>
- <excludes>
- <exclude>**/Abstract*.java</exclude>
- </excludes>
- <resources>
- <resource>
- <directory>${basedir}/target/test-xdoclet/jmx/org/apache/geronimo/tools/xdoclet</directory>
- <targetPath>org/apache/geronimo/tools/xdoclet</targetPath>
- <includes>
- <include>*.xml</include>
- </includes>
- </resource>
- </resources>
- </unitTest>
- </build>
-
</project>
Modified: geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/ConfigurationManager.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/ConfigurationManager.java?rev=405881&r1=405880&r2=405881&view=diff
==============================================================================
--- geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/ConfigurationManager.java (original)
+++ geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/ConfigurationManager.java Fri May 12 14:29:24 2006
@@ -463,4 +463,13 @@
* configuration manager, etc.
*/
ArtifactResolver getArtifactResolver();
+
+ /**
+ * Online means full functionality. Offline typically means that configurations will never be started,
+ * although they may be marked in the persistent configuration list.
+ *
+ * @return online status of ConfigurationManager
+ */
+ boolean isOnline();
+ void setOnline(boolean online);
}
Modified: geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/KernelConfigurationManager.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/KernelConfigurationManager.java?rev=405881&r1=405880&r2=405881&view=diff
==============================================================================
--- geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/KernelConfigurationManager.java (original)
+++ geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/KernelConfigurationManager.java Fri May 12 14:29:24 2006
@@ -57,6 +57,7 @@
private final ArtifactManager artifactManager;
protected final ClassLoader classLoader;
private final ShutdownHook shutdownHook;
+ private boolean online = true;
public KernelConfigurationManager(Kernel kernel,
Collection stores,
@@ -178,11 +179,21 @@
}
public void start(Configuration configuration) throws InvalidConfigException {
- ConfigurationUtil.startConfigurationGBeans(configuration.getAbstractName(), configuration, kernel);
+ if (online) {
+ ConfigurationUtil.startConfigurationGBeans(configuration.getAbstractName(), configuration, kernel);
+ }
if (configurationList != null && configuration.getConfigurationData().isAutoStart()) {
configurationList.startConfiguration(configuration.getId());
}
+ }
+
+ public boolean isOnline() {
+ return online;
+ }
+
+ public void setOnline(boolean online) {
+ this.online = online;
}
protected void stop(Configuration configuration) {
Modified: geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java?rev=405881&r1=405880&r2=405881&view=diff
==============================================================================
--- geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java (original)
+++ geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java Fri May 12 14:29:24 2006
@@ -246,7 +246,7 @@
}
}
- throw new ClassNotFoundException(name);
+ throw new ClassNotFoundException(name + " in classloader " + id);
}
private boolean isNonOverridableClass(String name) {
Modified: geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/SimpleConfigurationManager.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/SimpleConfigurationManager.java?rev=405881&r1=405880&r2=405881&view=diff
==============================================================================
--- geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/SimpleConfigurationManager.java (original)
+++ geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/SimpleConfigurationManager.java Fri May 12 14:29:24 2006
@@ -1226,6 +1226,17 @@
return artifactResolver;
}
+ /**
+ * this configuration manager never starts configurations.
+ * @return false
+ */
+ public boolean isOnline() {
+ return false;
+ }
+
+ public void setOnline(boolean online) {
+ }
+
private List getStoreList() {
return new ArrayList(stores);
}
Modified: geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLine.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLine.java?rev=405881&r1=405880&r2=405881&view=diff
==============================================================================
--- geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLine.java (original)
+++ geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLine.java Fri May 12 14:29:24 2006
@@ -20,6 +20,9 @@
import java.io.InputStream;
import java.util.Iterator;
import java.util.List;
+import java.util.Enumeration;
+import java.net.URL;
+
import javax.management.ObjectName;
import org.apache.commons.logging.Log;
@@ -31,6 +34,9 @@
import org.apache.geronimo.kernel.KernelFactory;
import org.apache.geronimo.kernel.config.ConfigurationManager;
import org.apache.geronimo.kernel.config.ConfigurationUtil;
+import org.apache.geronimo.kernel.config.NoSuchConfigException;
+import org.apache.geronimo.kernel.config.LifecycleException;
+import org.apache.geronimo.kernel.config.ConfigurationData;
import org.apache.geronimo.kernel.log.GeronimoLogging;
import org.apache.geronimo.kernel.repository.Artifact;
import org.apache.geronimo.gbean.AbstractName;
@@ -61,7 +67,7 @@
// the interesting entries from the manifest
CommandLineManifest manifest = CommandLineManifest.getManifestEntries();
List configurations = manifest.getConfigurations();
- ObjectName mainGBean = manifest.getMainGBean();
+ AbstractName mainGBean = manifest.getMainGBean();
String mainMethod = manifest.getMainMethod();
new CommandLine().invokeMainGBean(configurations, mainGBean, mainMethod, args);
@@ -78,34 +84,9 @@
private Kernel kernel;
private AbstractName configurationName;
- /**
- * @deprecated use the next one with AbstractName
- *
- * @param configurations
- * @param mainGBean
- * @param mainMethod
- * @param args
- * @throws Exception
- */
- public void invokeMainGBean(List configurations, ObjectName mainGBean, String mainMethod, String[] args) throws Exception {
- startKernel(configurations);
-
- log.info("Server startup completed");
-
- // invoke the main method
- kernel.invoke(
- mainGBean,
- mainMethod,
- new Object[]{args},
- new String[]{String[].class.getName()});
-
- log.info("Server shutdown begun");
-
- stopKernel();
- }
-
public void invokeMainGBean(List configurations, AbstractName mainGBean, String mainMethod, String[] args) throws Exception {
- startKernel(configurations);
+ startKernel();
+ loadConfigurations(configurations);
log.info("Server startup completed");
@@ -121,7 +102,7 @@
stopKernel();
}
- protected void startKernel(List configurations) throws Exception {
+ protected void startKernel() throws Exception {
ClassLoader classLoader = CommandLine.class.getClassLoader();
InputStream in = classLoader.getResourceAsStream("META-INF/config.ser");
@@ -132,6 +113,31 @@
// load the configuration
configurationName = ConfigurationUtil.loadBootstrapConfiguration(kernel, in, classLoader);
+ }
+
+ protected void startKernel(Artifact moduleId) throws Exception {
+ // boot the kernel
+ kernel = KernelFactory.newInstance().createKernel("geronimo");
+ kernel.boot();
+ ClassLoader classLoader = CommandLine.class.getClassLoader();
+ for (Enumeration modules = classLoader.getResources("META-INF/config.ser"); modules.hasMoreElements(); ) {
+ URL moduleDataURL = (URL) modules.nextElement();
+ InputStream in = moduleDataURL.openStream();
+ try {
+ ConfigurationData moduleData = ConfigurationUtil.readConfigurationData(in);
+ if (moduleId.matches(moduleData.getId())) {
+ // load the configuration
+ configurationName = ConfigurationUtil.loadBootstrapConfiguration(kernel, moduleData, classLoader);
+ return;
+ }
+ } finally {
+ in.close();
+ }
+ }
+ throw new NoSuchConfigException(moduleId);
+ }
+
+ protected void loadConfigurations(List configurations) throws NoSuchConfigException, LifecycleException {
// load and start the configurations
ConfigurationManager configurationManager = ConfigurationUtil.getConfigurationManager(kernel);
try {
Modified: geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLineManifest.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLineManifest.java?rev=405881&r1=405880&r2=405881&view=diff
==============================================================================
--- geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLineManifest.java (original)
+++ geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLineManifest.java Fri May 12 14:29:24 2006
@@ -30,6 +30,8 @@
import javax.management.ObjectName;
import javax.management.MalformedObjectNameException;
+import org.apache.geronimo.gbean.AbstractName;
+
/**
*
*
@@ -65,11 +67,11 @@
// get the main gbean class
String mainGBeanString = mainAttributes.getValue(MAIN_GBEAN);
- ObjectName mainGBean = null;
+ AbstractName mainGBean = null;
if(mainGBeanString != null) {
try {
- mainGBean = new ObjectName(mainGBeanString);
- } catch (MalformedObjectNameException e) {
+ mainGBean = new AbstractName(new URI(mainGBeanString));
+ } catch (URISyntaxException e) {
System.err.println("Invalid Main-GBean name: " + mainGBeanString);
System.exit(1);
throw new AssertionError();
@@ -119,13 +121,13 @@
return commandLineManifest;
}
- private final ObjectName mainGBean;
+ private final AbstractName mainGBean;
private final String mainMethod;
private final List configurations;
private final List endorsedDirs;
private final List extensionDirs;
- public CommandLineManifest(ObjectName mainGBean, String mainMethod, List configurations, List endorsedDirs, List extensionDirs) {
+ public CommandLineManifest(AbstractName mainGBean, String mainMethod, List configurations, List endorsedDirs, List extensionDirs) {
this.mainGBean = mainGBean;
this.mainMethod = mainMethod;
this.configurations = Collections.unmodifiableList(configurations);
@@ -133,7 +135,7 @@
this.extensionDirs = extensionDirs;
}
- public ObjectName getMainGBean() {
+ public AbstractName getMainGBean() {
return mainGBean;
}
Modified: geronimo/branches/1.1/modules/system/src/test/org/apache/geronimo/system/plugin/PluginInstallerTest.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/system/src/test/org/apache/geronimo/system/plugin/PluginInstallerTest.java?rev=405881&r1=405880&r2=405881&view=diff
==============================================================================
--- geronimo/branches/1.1/modules/system/src/test/org/apache/geronimo/system/plugin/PluginInstallerTest.java (original)
+++ geronimo/branches/1.1/modules/system/src/test/org/apache/geronimo/system/plugin/PluginInstallerTest.java Fri May 12 14:29:24 2006
@@ -123,6 +123,7 @@
}
private static class MockConfigManager implements ConfigurationManager {
+
public boolean isInstalled(Artifact configurationId) {
return false;
}
@@ -253,6 +254,13 @@
public ArtifactResolver getArtifactResolver() {
return null;
+ }
+
+ public boolean isOnline() {
+ return true;
+ }
+
+ public void setOnline(boolean online) {
}
}
}
Modified: geronimo/branches/1.1/plugins/geronimo-assembly-plugin/plugin.jelly
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/plugins/geronimo-assembly-plugin/plugin.jelly?rev=405881&r1=405880&r2=405881&view=diff
==============================================================================
--- geronimo/branches/1.1/plugins/geronimo-assembly-plugin/plugin.jelly (original)
+++ geronimo/branches/1.1/plugins/geronimo-assembly-plugin/plugin.jelly Fri May 12 14:29:24 2006
@@ -43,6 +43,10 @@
<ant:mkdir dir="${geronimo.assembly.dest}/var/config"/>
<velocity:merge basedir="${geronimo.assembly.src}/var/config" template="config.xml"
name="${geronimo.assembly.dest}/var/config/config.xml"/>
+ <velocity:merge basedir="${geronimo.assembly.src}/var/config" template="config.xml"
+ name="${geronimo.assembly.dest}/var/config/config.xml.original"/>
+ <velocity:merge basedir="${geronimo.assembly.src}/var/config" template="offline-deployer-list"
+ name="${geronimo.assembly.dest}/var/config/offline-deployer-list"/>
</goal>
<goal name="assemble:assemble-lib">
Modified: geronimo/branches/1.1/plugins/geronimo-assembly-plugin/project.xml
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/plugins/geronimo-assembly-plugin/project.xml?rev=405881&r1=405880&r2=405881&view=diff
==============================================================================
--- geronimo/branches/1.1/plugins/geronimo-assembly-plugin/project.xml (original)
+++ geronimo/branches/1.1/plugins/geronimo-assembly-plugin/project.xml Fri May 12 14:29:24 2006
@@ -23,7 +23,7 @@
<id>geronimo-assembly-plugin</id>
<name>Geronimo :: Maven Assembly Plugin</name>
<description>A plugin used to assemble a distribution of Geronimo</description>
- <currentVersion>1.1.0-11</currentVersion>
+ <currentVersion>1.1.0-12</currentVersion>
<dependencies>
<dependency>
Re: svn commit: r405881 - in /geronimo/branches/1.1: assemblies/j2ee-jetty-server/src/var/config/
assemblies/j2ee-tomcat-server/src/var/config/ assemblies/minimal-jetty-server/src/var/config/
assemblies/minimal-tomcat-server/src/var/config/ etc/ modules/de...
Posted by Joe Bohn <jo...@earthlink.net>.
Actually, I see that David has this on his personal "repo" so we can
pick it up from there until there is an official version. But I guess
we still need to get this on a more public repo before we release 1.1.
Joe
Joe Bohn wrote:
> Was it intended that this change would upgrade howl to 1.0.1?
>
> I know this was discussed with the package upgrades and David even
> mentioned that the jar wasn't published on any of the repos yet. That's
> the last I can find on the topic.
>
> It is in fact causing a problem since this version can't be found on any
> of the repos.
>
> Joe
>
>
>
> djencks@apache.org wrote:
>
>> Author: djencks
>> Date: Fri May 12 14:29:24 2006
>> New Revision: 405881
>>
>> URL: http://svn.apache.org/viewcvs?rev=405881&view=rev
>> Log:
>> GERONIMO-1507 offline deployer. Also GERONIMO-1861 make a backup copy
>> of config.xml
>>
>> Added:
>>
>> geronimo/branches/1.1/assemblies/j2ee-jetty-server/src/var/config/offline-deployer-list
>>
>>
>> geronimo/branches/1.1/assemblies/j2ee-tomcat-server/src/var/config/offline-deployer-list
>>
>>
>> geronimo/branches/1.1/assemblies/minimal-jetty-server/src/var/config/offline-deployer-list
>>
>>
>> geronimo/branches/1.1/assemblies/minimal-tomcat-server/src/var/config/offline-deployer-list
>>
>>
>> geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/LocalServer.java
>>
>> Removed:
>>
>> geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/GBeanDataRegistry.java
>>
>> Modified:
>> geronimo/branches/1.1/etc/explicit_versions.properties
>> geronimo/branches/1.1/etc/project.properties
>>
>> geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/ServerConnection.java
>>
>>
>> geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentConfigurationManager.java
>>
>>
>> geronimo/branches/1.1/modules/deployment/src/test/org/apache/geronimo/deployment/SingleFileHotDeployerTest.java
>>
>> geronimo/branches/1.1/modules/kernel/project.xml
>>
>> geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/ConfigurationManager.java
>>
>>
>> geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/KernelConfigurationManager.java
>>
>>
>> geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java
>>
>>
>> geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/SimpleConfigurationManager.java
>>
>>
>> geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLine.java
>>
>>
>> geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLineManifest.java
>>
>>
>> geronimo/branches/1.1/modules/system/src/test/org/apache/geronimo/system/plugin/PluginInstallerTest.java
>>
>> geronimo/branches/1.1/plugins/geronimo-assembly-plugin/plugin.jelly
>> geronimo/branches/1.1/plugins/geronimo-assembly-plugin/project.xml
>>
>> Added:
>> geronimo/branches/1.1/assemblies/j2ee-jetty-server/src/var/config/offline-deployer-list
>>
>> URL:
>> http://svn.apache.org/viewcvs/geronimo/branches/1.1/assemblies/j2ee-jetty-server/src/var/config/offline-deployer-list?rev=405881&view=auto
>>
>> ==============================================================================
>>
>> ---
>> geronimo/branches/1.1/assemblies/j2ee-jetty-server/src/var/config/offline-deployer-list
>> (added)
>> +++
>> geronimo/branches/1.1/assemblies/j2ee-jetty-server/src/var/config/offline-deployer-list
>> Fri May 12 14:29:24 2006
>> @@ -0,0 +1,7 @@
>> +#list of deployers to be started for offline deployment
>> +geronimo/geronimo-gbean-deployer/${pom.currentVersion}/car
>> +geronimo/j2ee-deployer/${pom.currentVersion}/car
>> +geronimo/openejb-deployer/${pom.currentVersion}/car
>> +geronimo/client-deployer/${pom.currentVersion}/car
>> +geronimo/axis-deployer/${pom.currentVersion}/car
>> +geronimo/jetty-deployer/${pom.currentVersion}/car
>>
>> Added:
>> geronimo/branches/1.1/assemblies/j2ee-tomcat-server/src/var/config/offline-deployer-list
>>
>> URL:
>> http://svn.apache.org/viewcvs/geronimo/branches/1.1/assemblies/j2ee-tomcat-server/src/var/config/offline-deployer-list?rev=405881&view=auto
>>
>> ==============================================================================
>>
>> ---
>> geronimo/branches/1.1/assemblies/j2ee-tomcat-server/src/var/config/offline-deployer-list
>> (added)
>> +++
>> geronimo/branches/1.1/assemblies/j2ee-tomcat-server/src/var/config/offline-deployer-list
>> Fri May 12 14:29:24 2006
>> @@ -0,0 +1,7 @@
>> +#list of deployers to be started for offline deployment
>> +geronimo/geronimo-gbean-deployer/${pom.currentVersion}/car
>> +geronimo/j2ee-deployer/${pom.currentVersion}/car
>> +geronimo/openejb-deployer/${pom.currentVersion}/car
>> +geronimo/client-deployer/${pom.currentVersion}/car
>> +geronimo/axis-deployer/${pom.currentVersion}/car
>> +geronimo/tomcat-deployer/${pom.currentVersion}/car
>>
>> Added:
>> geronimo/branches/1.1/assemblies/minimal-jetty-server/src/var/config/offline-deployer-list
>>
>> URL:
>> http://svn.apache.org/viewcvs/geronimo/branches/1.1/assemblies/minimal-jetty-server/src/var/config/offline-deployer-list?rev=405881&view=auto
>>
>> ==============================================================================
>>
>> ---
>> geronimo/branches/1.1/assemblies/minimal-jetty-server/src/var/config/offline-deployer-list
>> (added)
>> +++
>> geronimo/branches/1.1/assemblies/minimal-jetty-server/src/var/config/offline-deployer-list
>> Fri May 12 14:29:24 2006
>> @@ -0,0 +1,7 @@
>> +#list of deployers to be started for offline deployment
>> +geronimo/geronimo-gbean-deployer/${pom.currentVersion}/car
>> +geronimo/j2ee-deployer/${pom.currentVersion}/car
>> +geronimo/jetty-deployer/${pom.currentVersion}/car
>> +geronimo/unavailable-ejb-deployer/${pom.currentVersion}/car
>> +geronimo/unavailable-webservices-deployer/${pom.currentVersion}/car
>> +geronimo/unavailable-client-deployer/${pom.currentVersion}/car
>>
>> Added:
>> geronimo/branches/1.1/assemblies/minimal-tomcat-server/src/var/config/offline-deployer-list
>>
>> URL:
>> http://svn.apache.org/viewcvs/geronimo/branches/1.1/assemblies/minimal-tomcat-server/src/var/config/offline-deployer-list?rev=405881&view=auto
>>
>> ==============================================================================
>>
>> ---
>> geronimo/branches/1.1/assemblies/minimal-tomcat-server/src/var/config/offline-deployer-list
>> (added)
>> +++
>> geronimo/branches/1.1/assemblies/minimal-tomcat-server/src/var/config/offline-deployer-list
>> Fri May 12 14:29:24 2006
>> @@ -0,0 +1,7 @@
>> +#list of deployers to be started for offline deployment
>> +geronimo/geronimo-gbean-deployer/${pom.currentVersion}/car
>> +geronimo/j2ee-deployer/${pom.currentVersion}/car
>> +geronimo/tomcat-deployer/${pom.currentVersion}/car
>> +geronimo/unavailable-ejb-deployer/${pom.currentVersion}/car
>> +geronimo/unavailable-webservices-deployer/${pom.currentVersion}/car
>> +geronimo/unavailable-client-deployer/${pom.currentVersion}/car
>>
>> Modified: geronimo/branches/1.1/etc/explicit_versions.properties
>> URL:
>> http://svn.apache.org/viewcvs/geronimo/branches/1.1/etc/explicit_versions.properties?rev=405881&r1=405880&r2=405881&view=diff
>>
>> ==============================================================================
>>
>> --- geronimo/branches/1.1/etc/explicit_versions.properties (original)
>> +++ geronimo/branches/1.1/etc/explicit_versions.properties Fri May 12
>> 14:29:24 2006
>> @@ -42,7 +42,7 @@
>> dom4j///=1.4
>> dwr///=1.0
>> eclipse_compiler///=3.0.1
>> -howl///=0.1.11
>> +howl///=1.0.1
>> #security:
>> hsqldb///=1.7.2.2
>> jasper///=5.5.15
>>
>> Modified: geronimo/branches/1.1/etc/project.properties
>> URL:
>> http://svn.apache.org/viewcvs/geronimo/branches/1.1/etc/project.properties?rev=405881&r1=405880&r2=405881&view=diff
>>
>> ==============================================================================
>>
>> --- geronimo/branches/1.1/etc/project.properties (original)
>> +++ geronimo/branches/1.1/etc/project.properties Fri May 12 14:29:24 2006
>> @@ -97,7 +97,7 @@
>> release_notes_version=1.0
>>
>> geronimo_packaging_plugin_version=1.1.0-8
>> -geronimo_assembly_plugin_version=1.1.0-11
>> +geronimo_assembly_plugin_version=1.1.0-12
>> geronimo_deployment_plugin_version=1.1.0-3
>> geronimo_dependency_plugin_version=1.1.0-3
>>
>> @@ -153,7 +153,7 @@
>> dom4j_version=1.4
>> dwr_version=1.1.1
>> eclipse_compiler_version=3.0.1
>> -howl_version=0.1.11
>> +howl_version=1.0.1
>> #security:
>> hsqldb_version=1.7.2.2
>> jasper_version=5.5.15
>>
>> Added:
>> geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/LocalServer.java
>>
>> URL:
>> http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/LocalServer.java?rev=405881&view=auto
>>
>> ==============================================================================
>>
>> ---
>> geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/LocalServer.java
>> (added)
>> +++
>> geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/LocalServer.java
>> Fri May 12 14:29:24 2006
>> @@ -0,0 +1,80 @@
>> +/**
>> + *
>> + * Copyright 2006 The Apache Software Foundation
>> + *
>> + * Licensed under the Apache License, Version 2.0 (the "License");
>> + * you may not use this file except in compliance with the License.
>> + * You may obtain a copy of the License at
>> + *
>> + * http://www.apache.org/licenses/LICENSE-2.0
>> + *
>> + * Unless required by applicable law or agreed to in writing, software
>> + * distributed under the License is distributed on an "AS IS" BASIS,
>> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
>> implied.
>> + * See the License for the specific language governing permissions and
>> + * limitations under the License.
>> + */
>> +
>> +package org.apache.geronimo.deployment.cli;
>> +
>> +import java.io.BufferedReader;
>> +import java.io.File;
>> +import java.io.FileReader;
>> +import java.io.IOException;
>> +import java.util.ArrayList;
>> +import java.util.Iterator;
>> +import java.util.List;
>> +import java.util.Set;
>> +import java.util.regex.Matcher;
>> +import java.util.regex.Pattern;
>> +
>> +import org.apache.geronimo.gbean.AbstractName;
>> +import org.apache.geronimo.gbean.AbstractNameQuery;
>> +import org.apache.geronimo.kernel.GBeanNotFoundException;
>> +import org.apache.geronimo.kernel.Kernel;
>> +import org.apache.geronimo.kernel.config.PersistentConfigurationList;
>> +import org.apache.geronimo.kernel.repository.Artifact;
>> +import org.apache.geronimo.system.main.CommandLine;
>> +import org.apache.geronimo.system.serverinfo.ServerInfo;
>> +
>> +/**
>> + * @version $Rev:$ $Date:$
>> + */
>> +public class LocalServer extends CommandLine {
>> +
>> + public LocalServer(String configListLocation) throws Exception {
>> + startKernel(Artifact.create("geronimo/j2ee-system//car"));
>> + Runtime.getRuntime().addShutdownHook(new Thread("Geronimo
>> shutdown thread") {
>> + public void run() {
>> + getKernel().shutdown();
>> + }
>> + });
>> + List configs = getConfigurationList(configListLocation);
>> + loadConfigurations(configs);
>> + }
>> +
>> + public Kernel getKernel() {
>> + return super.getKernel();
>> + }
>> +
>> + protected List getConfigurationList(String path) throws
>> GBeanNotFoundException, IOException {
>> + ServerInfo serverInfo = (ServerInfo)
>> getKernel().getGBean(ServerInfo.class);
>> + File configFile = serverInfo.resolve(path);
>> + List modules = new ArrayList();
>> + BufferedReader in = new BufferedReader(new
>> FileReader(configFile));
>> + try {
>> + String artifactString;
>> + while ((artifactString = in.readLine()) != null) {
>> + artifactString = artifactString.trim();
>> + if (!artifactString.startsWith("#") &&
>> artifactString.length() > 0) {
>> + Artifact artifact = Artifact.create(artifactString);
>> + modules.add(artifact);
>> + }
>> + }
>> + } finally {
>> + in.close();
>> + }
>> + return modules;
>> + }
>> +
>> +}
>>
>> Modified:
>> geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/ServerConnection.java
>>
>> URL:
>> http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/ServerConnection.java?rev=405881&r1=405880&r2=405881&view=diff
>>
>> ==============================================================================
>>
>> ---
>> geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/ServerConnection.java
>> (original)
>> +++
>> geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/ServerConnection.java
>> Fri May 12 14:29:24 2006
>> @@ -31,6 +31,7 @@
>> import java.util.Map;
>> import java.util.Properties;
>> import java.util.jar.JarFile;
>> +
>> import
>> javax.enterprise.deploy.shared.factories.DeploymentFactoryManager;
>> import javax.enterprise.deploy.spi.DeploymentManager;
>> import
>> javax.enterprise.deploy.spi.exceptions.DeploymentManagerCreationException;
>>
>> @@ -40,7 +41,12 @@
>> import
>> org.apache.geronimo.deployment.plugin.factories.AuthenticationFailedException;
>>
>> import
>> org.apache.geronimo.deployment.plugin.factories.DeploymentFactoryImpl;
>> import org.apache.geronimo.deployment.plugin.jmx.JMXDeploymentManager;
>> +import org.apache.geronimo.deployment.plugin.jmx.LocalDeploymentManager;
>> import org.apache.geronimo.util.SimpleEncryption;
>> +import org.apache.geronimo.kernel.Kernel;
>> +import org.apache.geronimo.kernel.config.ConfigurationManager;
>> +import org.apache.geronimo.kernel.config.ConfigurationUtil;
>> +import org.apache.geronimo.kernel.config.KernelConfigurationManager;
>>
>> /**
>> * Supports online connections to the server, via JSR-88, valid only
>> @@ -50,6 +56,7 @@
>> */
>> public class ServerConnection {
>> private final static Map OPTION_HELP = new LinkedHashMap(9);
>> +
>> static {
>> OPTION_HELP.put("--uri", "A URI to contact the server. If
>> not specified, the deployer defaults to " +
>> "operating on a Geronimo server running on the
>> standard port on localhost.\n" +
>> @@ -69,7 +76,9 @@
>> OPTION_HELP.put("--password", "Specifies a password to use to
>> authenticate to the server.");
>> OPTION_HELP.put("--syserr", "Enables error logging to
>> syserr. Disabled by default.");
>> OPTION_HELP.put("--verbose", "Enables verbose execution
>> mode. Disabled by default.");
>> + OPTION_HELP.put("--offline", "Deploy offline to a local
>> server, using whatever deployers are available in the local server");
>> }
>> +
>> public static Map getOptionHelp() {
>> return OPTION_HELP;
>> }
>> @@ -80,19 +89,18 @@
>> * argument). For example, if the arguments were "--user bob
>> foo" then
>> * this should return true for "--user" and "bob" and false for
>> "foo".
>> *
>> - * @param args The previous arguments on the command line
>> + * @param args The previous arguments on the command line
>> * @param option The argument we're checking at the moment
>> - *
>> * @return True if the argument we're checking is part of a
>> general argument
>> */
>> public static boolean isGeneralOption(List args, String option) {
>> - if(OPTION_HELP.containsKey(option) || option.equals("--url")) {
>> + if (OPTION_HELP.containsKey(option) || option.equals("--url")) {
>> return true;
>> }
>> - if(args.size() == 0) {
>> + if (args.size() == 0) {
>> return false;
>> }
>> - String last = (String) args.get(args.size()-1);
>> + String last = (String) args.get(args.size() - 1);
>> return last.equals("--uri") || last.equals("--url") ||
>> last.equals("--driver") || last.equals("--user") ||
>> last.equals("--password") || last.equals("--host") ||
>> last.equals("--port");
>> }
>> @@ -111,62 +119,64 @@
>> Integer port = null;
>> this.out = out;
>> this.in = in;
>> - for(int i = 0; i < args.length; i++) {
>> + boolean offline = false;
>> + for (int i = 0; i < args.length; i++) {
>> String arg = args[i];
>> - if(arg.equals("--uri") || arg.equals("--url")) {
>> - if(uri != null) {
>> + if (arg.equals("--uri") || arg.equals("--url")) {
>> + if (uri != null) {
>> throw new DeploymentSyntaxException("Cannot
>> specify more than one URI");
>> - } else if(i >= args.length-1) {
>> + } else if (i >= args.length - 1) {
>> throw new DeploymentSyntaxException("Must specify
>> a URI (e.g. --uri deployer:...)");
>> }
>> - if(host != null || port != null) {
>> + if (host != null || port != null) {
>> throw new DeploymentSyntaxException("Cannot
>> specify a URI as well as a host/port");
>> }
>> uri = args[++i];
>> - } else if(arg.equals("--host")) {
>> - if(host != null) {
>> + } else if (arg.equals("--host")) {
>> + if (host != null) {
>> throw new DeploymentSyntaxException("Cannot
>> specify more than one host");
>> - } else if(i >= args.length-1) {
>> + } else if (i >= args.length - 1) {
>> throw new DeploymentSyntaxException("Must specify
>> a hostname (e.g. --host localhost)");
>> }
>> - if(uri != null) {
>> + if (uri != null) {
>> throw new DeploymentSyntaxException("Cannot
>> specify a URI as well as a host/port");
>> }
>> host = args[++i];
>> - } else if(arg.equals("--port")) {
>> - if(port != null) {
>> + } else if (arg.equals("--port")) {
>> + if (port != null) {
>> throw new DeploymentSyntaxException("Cannot
>> specify more than one port");
>> - } else if(i >= args.length-1) {
>> + } else if (i >= args.length - 1) {
>> throw new DeploymentSyntaxException("Must specify
>> a port (e.g. --port 1099)");
>> }
>> - if(uri != null) {
>> + if (uri != null) {
>> throw new DeploymentSyntaxException("Cannot
>> specify a URI as well as a host/port");
>> }
>> try {
>> port = new Integer(args[++i]);
>> } catch (NumberFormatException e) {
>> - throw new DeploymentSyntaxException("Port must be
>> a number ("+e.getMessage()+")");
>> + throw new DeploymentSyntaxException("Port must be
>> a number (" + e.getMessage() + ")");
>> }
>> - } else if(arg.equals("--driver")) {
>> - if(driver != null) {
>> + } else if (arg.equals("--driver")) {
>> + if (driver != null) {
>> throw new DeploymentSyntaxException("Cannot
>> specify more than one driver");
>> - } else if(i >= args.length-1) {
>> + } else if (i >= args.length - 1) {
>> throw new DeploymentSyntaxException("Must specify
>> a driver JAR (--driver jarfile)");
>> }
>> driver = args[++i];
>> - } else if(arg.equals("--offline")) {
>> - throw new DeploymentSyntaxException("This tool no
>> longer handles offline deployment");
>> - } else if(arg.equals("--user")) {
>> - if(user != null) {
>> + } else if (arg.equals("--offline")) {
>> + //throw new DeploymentSyntaxException("This tool no
>> longer handles offline deployment");
>> + offline = true;
>> + } else if (arg.equals("--user")) {
>> + if (user != null) {
>> throw new DeploymentSyntaxException("Cannot
>> specify more than one user name");
>> - } else if(i >= args.length-1) {
>> + } else if (i >= args.length - 1) {
>> throw new DeploymentSyntaxException("Must specify
>> a username (--user username)");
>> }
>> user = args[++i];
>> - } else if(arg.equals("--password")) {
>> - if(password != null) {
>> + } else if (arg.equals("--password")) {
>> + if (password != null) {
>> throw new DeploymentSyntaxException("Cannot
>> specify more than one password");
>> - } else if(i >= args.length-1) {
>> + } else if (i >= args.length - 1) {
>> throw new DeploymentSyntaxException("Must specify
>> a password (--password password)");
>> }
>> password = args[++i];
>> @@ -175,23 +185,37 @@
>> } else if (arg.equals("--syserr")) {
>> logToSysErr = true;
>> } else {
>> - throw new DeploymentException("Invalid option "+arg);
>> + throw new DeploymentException("Invalid option " + arg);
>> }
>> }
>> - if((driver != null) && uri == null) {
>> + if ((driver != null) && uri == null) {
>> throw new DeploymentSyntaxException("A custom driver
>> requires a custom URI");
>> }
>> - if(host != null || port != null) {
>> - uri = DEFAULT_URI+"://"+(host == null ? "" : host)+(port
>> == null ? "" : ":"+port);
>> + if (host != null || port != null) {
>> + uri = DEFAULT_URI + "://" + (host == null ? "" : host) +
>> (port == null ? "" : ":" + port);
>> + }
>> + if (offline) {
>> + LocalServer localServer;
>> + try {
>> + localServer = new
>> LocalServer("var/config/offline-deployer-list");
>> + } catch (Exception e) {
>> + throw new DeploymentException("Could not start local
>> server", e);
>> + }
>> + Kernel kernel = localServer.getKernel();
>> + ConfigurationManager configurationManager =
>> ConfigurationUtil.getConfigurationManager(kernel);
>> + configurationManager.setOnline(false);
>> +
>> + manager = new
>> LocalDeploymentManager(localServer.getKernel());
>> + } else {
>> + tryToConnect(uri, driver, user, password, true);
>> }
>> - tryToConnect(uri, driver, user, password, true);
>> - if(manager == null) {
>> + if (manager == null) {
>> throw new DeploymentException("Unexpected error;
>> connection failed.");
>> }
>> }
>>
>> public void close() throws DeploymentException {
>> - if(manager != null) {
>> + if (manager != null) {
>> manager.release();
>> }
>> }
>> @@ -206,55 +230,59 @@
>>
>> private void tryToConnect(String argURI, String driver, String
>> user, String password, boolean authPrompt) throws DeploymentException {
>> DeploymentFactoryManager mgr =
>> DeploymentFactoryManager.getInstance();
>> - if(driver != null) {
>> + if (driver != null) {
>> loadDriver(driver, mgr);
>> } else {
>> mgr.registerDeploymentFactory(new DeploymentFactoryImpl());
>> }
>> String useURI = argURI == null ? DEFAULT_URI : argURI;
>>
>> - if(authPrompt && user == null && password == null) {
>> + if (authPrompt && user == null && password == null) {
>> InputStream in;
>> // First check for .geronimo-deployer on class path (e.g.
>> packaged in deployer.jar)
>> in =
>> ServerConnection.class.getResourceAsStream("/.geronimo-deployer");
>> // If not there, check in home directory
>> - if(in == null) {
>> + if (in == null) {
>> File authFile = new
>> File(System.getProperty("user.home"), ".geronimo-deployer");
>> - if(authFile.exists() && authFile.canRead()) {
>> + if (authFile.exists() && authFile.canRead()) {
>> try {
>> in = new BufferedInputStream(new
>> FileInputStream(authFile));
>> - } catch (FileNotFoundException e) {}
>> + } catch (FileNotFoundException e) {
>> + }
>> }
>> }
>> - if(in != null) {
>> + if (in != null) {
>> try {
>> Properties props = new Properties();
>> props.load(in);
>> - String encryped =
>> props.getProperty("login."+useURI);
>> - if(encryped != null) {
>> - if(encryped.startsWith("{Standard}")) {
>> + String encryped = props.getProperty("login." +
>> useURI);
>> + if (encryped != null) {
>> + if (encryped.startsWith("{Standard}")) {
>> SavedAuthentication auth =
>> (SavedAuthentication) SimpleEncryption.decrypt(encryped.substring(10));
>> - if(auth.uri.equals(useURI)) {
>> + if (auth.uri.equals(useURI)) {
>> user = auth.user;
>> password = new String(auth.password);
>> }
>> - } else if(encryped.startsWith("{Plain}")) {
>> + } else if (encryped.startsWith("{Plain}")) {
>> int pos = encryped.indexOf("/");
>> user = encryped.substring(7, pos);
>> - password = encryped.substring(pos+1);
>> + password = encryped.substring(pos + 1);
>> } else {
>>
>> System.out.print(DeployUtils.reformat("Unknown encryption used in
>> saved login file", 4, 72));
>> }
>> }
>> } catch (IOException e) {
>> - System.out.print(DeployUtils.reformat("Unable to
>> read authentication from saved login file: "+e.getMessage(), 4, 72));
>> + System.out.print(DeployUtils.reformat("Unable to
>> read authentication from saved login file: " + e.getMessage(), 4, 72));
>> } finally {
>> - try {in.close();}catch(IOException e) {}
>> + try {
>> + in.close();
>> + } catch (IOException e) {
>> + }
>> }
>> }
>> }
>>
>> - if(authPrompt && !useURI.equals(DEFAULT_URI) && user == null
>> && password == null) {
>> + if (authPrompt && !useURI.equals(DEFAULT_URI) && user == null
>> && password == null) {
>> // Non-standard URI, but no authentication information
>> doAuthPromptAndRetry(useURI, user, password);
>> return;
>> @@ -262,15 +290,15 @@
>> try {
>> manager = mgr.getDeploymentManager(useURI, user,
>> password);
>> auth = new SavedAuthentication(useURI, user, password
>> == null ? null : password.toCharArray());
>> - } catch(AuthenticationFailedException e) { // server's
>> there, you just can't talk to it
>> - if(authPrompt) {
>> + } catch (AuthenticationFailedException e) { // server's
>> there, you just can't talk to it
>> + if (authPrompt) {
>> doAuthPromptAndRetry(useURI, user, password);
>> return;
>> } else {
>> throw new DeploymentException("Login Failed");
>> }
>> - } catch(DeploymentManagerCreationException e) {
>> - throw new DeploymentException("Unable to connect to
>> server at "+useURI+" -- "+e.getMessage());
>> + } catch (DeploymentManagerCreationException e) {
>> + throw new DeploymentException("Unable to connect to
>> server at " + useURI + " -- " + e.getMessage());
>> }
>> }
>>
>> @@ -282,37 +310,37 @@
>>
>> private void loadDriver(String driver, DeploymentFactoryManager
>> mgr) throws DeploymentException {
>> File file = new File(driver);
>> - if(!file.exists() || !file.canRead() ||
>> !DeployUtils.isJarFile(file)) {
>> - throw new DeploymentSyntaxException("Driver
>> '"+file.getAbsolutePath()+"' is not a readable JAR file");
>> + if (!file.exists() || !file.canRead() ||
>> !DeployUtils.isJarFile(file)) {
>> + throw new DeploymentSyntaxException("Driver '" +
>> file.getAbsolutePath() + "' is not a readable JAR file");
>> }
>> String className = null;
>> try {
>> JarFile jar = new JarFile(file);
>> className =
>> jar.getManifest().getMainAttributes().getValue("J2EE-DeploymentFactory-Implementation-Class");
>>
>> - if(className == null) {
>> - throw new DeploymentException("The driver JAR
>> "+file.getAbsolutePath()+" does not specify a
>> J2EE-DeploymentFactory-Implementation-Class; cannot load driver.");
>> + if (className == null) {
>> + throw new DeploymentException("The driver JAR " +
>> file.getAbsolutePath() + " does not specify a
>> J2EE-DeploymentFactory-Implementation-Class; cannot load driver.");
>> }
>> jar.close();
>> DeploymentFactory factory = (DeploymentFactory)
>> Class.forName(className).newInstance();
>> mgr.registerDeploymentFactory(factory);
>> - } catch(DeploymentException e) {
>> + } catch (DeploymentException e) {
>> throw e;
>> - } catch(Exception e) {
>> - throw new DeploymentSyntaxException("Unable to load
>> driver class "+className+" from JAR "+file.getAbsolutePath(), e);
>> + } catch (Exception e) {
>> + throw new DeploymentSyntaxException("Unable to load
>> driver class " + className + " from JAR " + file.getAbsolutePath(), e);
>> }
>> }
>>
>> private void doAuthPromptAndRetry(String uri, String user, String
>> password) throws DeploymentException {
>> try {
>> - if(user == null) {
>> + if (user == null) {
>> out.print("Username: ");
>> out.flush();
>> user = in.readLine();
>> }
>> - if(password == null) {
>> + if (password == null) {
>> password = new PasswordPrompt("Password: ",
>> out).getPassword(in);
>> }
>> - } catch(IOException e) {
>> + } catch (IOException e) {
>> throw new DeploymentException("Unable to prompt for
>> login", e);
>> }
>> tryToConnect(uri, null, user, password, false);
>> @@ -349,13 +377,13 @@
>> int priority = Thread.currentThread().getPriority();
>> try {
>> Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
>> - String fullPrompt = "\r"+prompt+"
>> "+"\r"+prompt;
>> + String fullPrompt = "\r" + prompt + " " +
>> "\r" + prompt;
>> StringBuffer clearline = new StringBuffer();
>> clearline.append('\r');
>> - for(int i=prompt.length()+10; i>=0; i--) {
>> + for (int i = prompt.length() + 10; i >= 0; i--) {
>> clearline.append(' ');
>> }
>> - while(!done) {
>> + while (!done) {
>> out.print(fullPrompt);
>> out.flush();
>> Thread.sleep(1);
>> @@ -377,7 +405,7 @@
>> * the entered password. For this to make sense, the input
>> reader
>> * here must be part of the same console as the output writer
>> passed
>> * to the constructor.
>> - *
>> + * <p/>
>> * For higher security, should return a char[], but that will
>> just
>> * be defeated by the JSR-88 call that takes a String anyway, so
>> * why bother?
>>
>> Modified:
>> geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentConfigurationManager.java
>>
>> URL:
>> http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentConfigurationManager.java?rev=405881&r1=405880&r2=405881&view=diff
>>
>> ==============================================================================
>>
>> ---
>> geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentConfigurationManager.java
>> (original)
>> +++
>> geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentConfigurationManager.java
>> Fri May 12 14:29:24 2006
>> @@ -84,6 +84,16 @@
>> return super.getArtifactResolver();
>> }
>>
>> + /**
>> + * This configuration manager never starts any configurations
>> + * @return false
>> + */
>> + public boolean isOnline() {
>> + return false;
>> + }
>> +
>> + public void setOnline(boolean online) {
>> + }
>>
>> //
>> // LOAD
>>
>> Modified:
>> geronimo/branches/1.1/modules/deployment/src/test/org/apache/geronimo/deployment/SingleFileHotDeployerTest.java
>>
>> URL:
>> http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/deployment/src/test/org/apache/geronimo/deployment/SingleFileHotDeployerTest.java?rev=405881&r1=405880&r2=405881&view=diff
>>
>> ==============================================================================
>>
>> ---
>> geronimo/branches/1.1/modules/deployment/src/test/org/apache/geronimo/deployment/SingleFileHotDeployerTest.java
>> (original)
>> +++
>> geronimo/branches/1.1/modules/deployment/src/test/org/apache/geronimo/deployment/SingleFileHotDeployerTest.java
>> Fri May 12 14:29:24 2006
>> @@ -453,5 +453,12 @@
>> public ArtifactResolver getArtifactResolver() {
>> return artifactResolver;
>> }
>> +
>> + public boolean isOnline() {
>> + return true;
>> + }
>> +
>> + public void setOnline(boolean online) {
>> + }
>> }
>> }
>>
>> Modified: geronimo/branches/1.1/modules/kernel/project.xml
>> URL:
>> http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/kernel/project.xml?rev=405881&r1=405880&r2=405881&view=diff
>>
>> ==============================================================================
>>
>> --- geronimo/branches/1.1/modules/kernel/project.xml (original)
>> +++ geronimo/branches/1.1/modules/kernel/project.xml Fri May 12
>> 14:29:24 2006
>> @@ -103,33 +103,4 @@
>> </dependency>
>> </dependencies>
>>
>> - <build>
>> - <resources>
>> - <resource>
>> - <directory>${basedir}/src/java</directory>
>> - <includes>
>> - <include>**/*.xml</include>
>> - <include>**/*.properties</include>
>> - </includes>
>> - </resource>
>> - </resources>
>> - <unitTest>
>> - <includes>
>> - <include>**/*Test.java</include>
>> - </includes>
>> - <excludes>
>> - <exclude>**/Abstract*.java</exclude>
>> - </excludes>
>> - <resources>
>> - <resource>
>> -
>> <directory>${basedir}/target/test-xdoclet/jmx/org/apache/geronimo/tools/xdoclet</directory>
>>
>> -
>> <targetPath>org/apache/geronimo/tools/xdoclet</targetPath>
>> - <includes>
>> - <include>*.xml</include>
>> - </includes>
>> - </resource>
>> - </resources>
>> - </unitTest>
>> - </build>
>> -
>> </project>
>>
>> Modified:
>> geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/ConfigurationManager.java
>>
>> URL:
>> http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/ConfigurationManager.java?rev=405881&r1=405880&r2=405881&view=diff
>>
>> ==============================================================================
>>
>> ---
>> geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/ConfigurationManager.java
>> (original)
>> +++
>> geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/ConfigurationManager.java
>> Fri May 12 14:29:24 2006
>> @@ -463,4 +463,13 @@
>> * configuration manager, etc.
>> */
>> ArtifactResolver getArtifactResolver();
>> +
>> + /**
>> + * Online means full functionality. Offline typically means that
>> configurations will never be started,
>> + * although they may be marked in the persistent configuration list.
>> + *
>> + * @return online status of ConfigurationManager
>> + */
>> + boolean isOnline();
>> + void setOnline(boolean online);
>> }
>>
>> Modified:
>> geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/KernelConfigurationManager.java
>>
>> URL:
>> http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/KernelConfigurationManager.java?rev=405881&r1=405880&r2=405881&view=diff
>>
>> ==============================================================================
>>
>> ---
>> geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/KernelConfigurationManager.java
>> (original)
>> +++
>> geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/KernelConfigurationManager.java
>> Fri May 12 14:29:24 2006
>> @@ -57,6 +57,7 @@
>> private final ArtifactManager artifactManager;
>> protected final ClassLoader classLoader;
>> private final ShutdownHook shutdownHook;
>> + private boolean online = true;
>>
>> public KernelConfigurationManager(Kernel kernel,
>> Collection stores,
>> @@ -178,11 +179,21 @@
>> }
>>
>> public void start(Configuration configuration) throws
>> InvalidConfigException {
>> -
>> ConfigurationUtil.startConfigurationGBeans(configuration.getAbstractName(),
>> configuration, kernel);
>> + if (online) {
>> +
>> ConfigurationUtil.startConfigurationGBeans(configuration.getAbstractName(),
>> configuration, kernel);
>> + }
>>
>> if (configurationList != null &&
>> configuration.getConfigurationData().isAutoStart()) {
>> configurationList.startConfiguration(configuration.getId());
>> }
>> + }
>> +
>> + public boolean isOnline() {
>> + return online;
>> + }
>> +
>> + public void setOnline(boolean online) {
>> + this.online = online;
>> }
>>
>> protected void stop(Configuration configuration) {
>>
>> Modified:
>> geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java
>>
>> URL:
>> http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java?rev=405881&r1=405880&r2=405881&view=diff
>>
>> ==============================================================================
>>
>> ---
>> geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java
>> (original)
>> +++
>> geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java
>> Fri May 12 14:29:24 2006
>> @@ -246,7 +246,7 @@
>> }
>> }
>>
>> - throw new ClassNotFoundException(name);
>> + throw new ClassNotFoundException(name + " in classloader " +
>> id);
>> }
>>
>> private boolean isNonOverridableClass(String name) {
>>
>> Modified:
>> geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/SimpleConfigurationManager.java
>>
>> URL:
>> http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/SimpleConfigurationManager.java?rev=405881&r1=405880&r2=405881&view=diff
>>
>> ==============================================================================
>>
>> ---
>> geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/SimpleConfigurationManager.java
>> (original)
>> +++
>> geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/SimpleConfigurationManager.java
>> Fri May 12 14:29:24 2006
>> @@ -1226,6 +1226,17 @@
>> return artifactResolver;
>> }
>>
>> + /**
>> + * this configuration manager never starts configurations.
>> + * @return false
>> + */
>> + public boolean isOnline() {
>> + return false;
>> + }
>> +
>> + public void setOnline(boolean online) {
>> + }
>> +
>> private List getStoreList() {
>> return new ArrayList(stores);
>> }
>>
>> Modified:
>> geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLine.java
>>
>> URL:
>> http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLine.java?rev=405881&r1=405880&r2=405881&view=diff
>>
>> ==============================================================================
>>
>> ---
>> geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLine.java
>> (original)
>> +++
>> geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLine.java
>> Fri May 12 14:29:24 2006
>> @@ -20,6 +20,9 @@
>> import java.io.InputStream;
>> import java.util.Iterator;
>> import java.util.List;
>> +import java.util.Enumeration;
>> +import java.net.URL;
>> +
>> import javax.management.ObjectName;
>>
>> import org.apache.commons.logging.Log;
>> @@ -31,6 +34,9 @@
>> import org.apache.geronimo.kernel.KernelFactory;
>> import org.apache.geronimo.kernel.config.ConfigurationManager;
>> import org.apache.geronimo.kernel.config.ConfigurationUtil;
>> +import org.apache.geronimo.kernel.config.NoSuchConfigException;
>> +import org.apache.geronimo.kernel.config.LifecycleException;
>> +import org.apache.geronimo.kernel.config.ConfigurationData;
>> import org.apache.geronimo.kernel.log.GeronimoLogging;
>> import org.apache.geronimo.kernel.repository.Artifact;
>> import org.apache.geronimo.gbean.AbstractName;
>> @@ -61,7 +67,7 @@
>> // the interesting entries from the manifest
>> CommandLineManifest manifest =
>> CommandLineManifest.getManifestEntries();
>> List configurations = manifest.getConfigurations();
>> - ObjectName mainGBean = manifest.getMainGBean();
>> + AbstractName mainGBean = manifest.getMainGBean();
>> String mainMethod = manifest.getMainMethod();
>>
>> new CommandLine().invokeMainGBean(configurations,
>> mainGBean, mainMethod, args);
>> @@ -78,34 +84,9 @@
>> private Kernel kernel;
>> private AbstractName configurationName;
>>
>> - /**
>> - * @deprecated use the next one with AbstractName
>> - *
>> - * @param configurations
>> - * @param mainGBean
>> - * @param mainMethod
>> - * @param args
>> - * @throws Exception
>> - */
>> - public void invokeMainGBean(List configurations, ObjectName
>> mainGBean, String mainMethod, String[] args) throws Exception {
>> - startKernel(configurations);
>> -
>> - log.info("Server startup completed");
>> -
>> - // invoke the main method
>> - kernel.invoke(
>> - mainGBean,
>> - mainMethod,
>> - new Object[]{args},
>> - new String[]{String[].class.getName()});
>> -
>> - log.info("Server shutdown begun");
>> -
>> - stopKernel();
>> - }
>> -
>> public void invokeMainGBean(List configurations, AbstractName
>> mainGBean, String mainMethod, String[] args) throws Exception {
>> - startKernel(configurations);
>> + startKernel();
>> + loadConfigurations(configurations);
>>
>> log.info("Server startup completed");
>>
>> @@ -121,7 +102,7 @@
>> stopKernel();
>> }
>>
>> - protected void startKernel(List configurations) throws Exception {
>> + protected void startKernel() throws Exception {
>> ClassLoader classLoader = CommandLine.class.getClassLoader();
>> InputStream in =
>> classLoader.getResourceAsStream("META-INF/config.ser");
>>
>> @@ -132,6 +113,31 @@
>> // load the configuration
>> configurationName =
>> ConfigurationUtil.loadBootstrapConfiguration(kernel, in, classLoader);
>>
>> + }
>> +
>> + protected void startKernel(Artifact moduleId) throws Exception {
>> + // boot the kernel
>> + kernel = KernelFactory.newInstance().createKernel("geronimo");
>> + kernel.boot();
>> + ClassLoader classLoader = CommandLine.class.getClassLoader();
>> + for (Enumeration modules =
>> classLoader.getResources("META-INF/config.ser");
>> modules.hasMoreElements(); ) {
>> + URL moduleDataURL = (URL) modules.nextElement();
>> + InputStream in = moduleDataURL.openStream();
>> + try {
>> + ConfigurationData moduleData =
>> ConfigurationUtil.readConfigurationData(in);
>> + if (moduleId.matches(moduleData.getId())) {
>> + // load the configuration
>> + configurationName =
>> ConfigurationUtil.loadBootstrapConfiguration(kernel, moduleData,
>> classLoader);
>> + return;
>> + }
>> + } finally {
>> + in.close();
>> + }
>> + }
>> + throw new NoSuchConfigException(moduleId);
>> + }
>> +
>> + protected void loadConfigurations(List configurations) throws
>> NoSuchConfigException, LifecycleException {
>> // load and start the configurations
>> ConfigurationManager configurationManager =
>> ConfigurationUtil.getConfigurationManager(kernel);
>> try {
>>
>> Modified:
>> geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLineManifest.java
>>
>> URL:
>> http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLineManifest.java?rev=405881&r1=405880&r2=405881&view=diff
>>
>> ==============================================================================
>>
>> ---
>> geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLineManifest.java
>> (original)
>> +++
>> geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLineManifest.java
>> Fri May 12 14:29:24 2006
>> @@ -30,6 +30,8 @@
>> import javax.management.ObjectName;
>> import javax.management.MalformedObjectNameException;
>>
>> +import org.apache.geronimo.gbean.AbstractName;
>> +
>> /**
>> *
>> *
>> @@ -65,11 +67,11 @@
>> // get the main gbean class
>> String mainGBeanString = mainAttributes.getValue(MAIN_GBEAN);
>>
>> - ObjectName mainGBean = null;
>> + AbstractName mainGBean = null;
>> if(mainGBeanString != null) {
>> try {
>> - mainGBean = new ObjectName(mainGBeanString);
>> - } catch (MalformedObjectNameException e) {
>> + mainGBean = new AbstractName(new URI(mainGBeanString));
>> + } catch (URISyntaxException e) {
>> System.err.println("Invalid Main-GBean name: " +
>> mainGBeanString);
>> System.exit(1);
>> throw new AssertionError();
>> @@ -119,13 +121,13 @@
>> return commandLineManifest;
>> }
>>
>> - private final ObjectName mainGBean;
>> + private final AbstractName mainGBean;
>> private final String mainMethod;
>> private final List configurations;
>> private final List endorsedDirs;
>> private final List extensionDirs;
>>
>> - public CommandLineManifest(ObjectName mainGBean, String
>> mainMethod, List configurations, List endorsedDirs, List extensionDirs) {
>> + public CommandLineManifest(AbstractName mainGBean, String
>> mainMethod, List configurations, List endorsedDirs, List extensionDirs) {
>> this.mainGBean = mainGBean;
>> this.mainMethod = mainMethod;
>> this.configurations =
>> Collections.unmodifiableList(configurations);
>> @@ -133,7 +135,7 @@
>> this.extensionDirs = extensionDirs;
>> }
>>
>> - public ObjectName getMainGBean() {
>> + public AbstractName getMainGBean() {
>> return mainGBean;
>> }
>>
>>
>> Modified:
>> geronimo/branches/1.1/modules/system/src/test/org/apache/geronimo/system/plugin/PluginInstallerTest.java
>>
>> URL:
>> http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/system/src/test/org/apache/geronimo/system/plugin/PluginInstallerTest.java?rev=405881&r1=405880&r2=405881&view=diff
>>
>> ==============================================================================
>>
>> ---
>> geronimo/branches/1.1/modules/system/src/test/org/apache/geronimo/system/plugin/PluginInstallerTest.java
>> (original)
>> +++
>> geronimo/branches/1.1/modules/system/src/test/org/apache/geronimo/system/plugin/PluginInstallerTest.java
>> Fri May 12 14:29:24 2006
>> @@ -123,6 +123,7 @@
>> }
>>
>> private static class MockConfigManager implements
>> ConfigurationManager {
>> +
>> public boolean isInstalled(Artifact configurationId) {
>> return false;
>> }
>> @@ -253,6 +254,13 @@
>>
>> public ArtifactResolver getArtifactResolver() {
>> return null;
>> + }
>> +
>> + public boolean isOnline() {
>> + return true;
>> + }
>> +
>> + public void setOnline(boolean online) {
>> }
>> }
>> }
>>
>> Modified:
>> geronimo/branches/1.1/plugins/geronimo-assembly-plugin/plugin.jelly
>> URL:
>> http://svn.apache.org/viewcvs/geronimo/branches/1.1/plugins/geronimo-assembly-plugin/plugin.jelly?rev=405881&r1=405880&r2=405881&view=diff
>>
>> ==============================================================================
>>
>> ---
>> geronimo/branches/1.1/plugins/geronimo-assembly-plugin/plugin.jelly
>> (original)
>> +++
>> geronimo/branches/1.1/plugins/geronimo-assembly-plugin/plugin.jelly
>> Fri May 12 14:29:24 2006
>> @@ -43,6 +43,10 @@
>> <ant:mkdir dir="${geronimo.assembly.dest}/var/config"/>
>> <velocity:merge basedir="${geronimo.assembly.src}/var/config"
>> template="config.xml"
>>
>> name="${geronimo.assembly.dest}/var/config/config.xml"/>
>> + <velocity:merge basedir="${geronimo.assembly.src}/var/config"
>> template="config.xml"
>> +
>> name="${geronimo.assembly.dest}/var/config/config.xml.original"/>
>> + <velocity:merge basedir="${geronimo.assembly.src}/var/config"
>> template="offline-deployer-list"
>> +
>> name="${geronimo.assembly.dest}/var/config/offline-deployer-list"/>
>> </goal>
>>
>> <goal name="assemble:assemble-lib">
>>
>> Modified:
>> geronimo/branches/1.1/plugins/geronimo-assembly-plugin/project.xml
>> URL:
>> http://svn.apache.org/viewcvs/geronimo/branches/1.1/plugins/geronimo-assembly-plugin/project.xml?rev=405881&r1=405880&r2=405881&view=diff
>>
>> ==============================================================================
>>
>> --- geronimo/branches/1.1/plugins/geronimo-assembly-plugin/project.xml
>> (original)
>> +++ geronimo/branches/1.1/plugins/geronimo-assembly-plugin/project.xml
>> Fri May 12 14:29:24 2006
>> @@ -23,7 +23,7 @@
>> <id>geronimo-assembly-plugin</id>
>> <name>Geronimo :: Maven Assembly Plugin</name>
>> <description>A plugin used to assemble a distribution of
>> Geronimo</description>
>> - <currentVersion>1.1.0-11</currentVersion>
>> + <currentVersion>1.1.0-12</currentVersion>
>>
>> <dependencies>
>> <dependency>
>>
>>
>>
>>
>
--
Joe Bohn
joe.bohn at earthlink.net
"He is no fool who gives what he cannot keep, to gain what he cannot
lose." -- Jim Elliot
Re: svn commit: r405881 - in /geronimo/branches/1.1: assemblies/j2ee-jetty-server/src/var/config/assemblies/j2ee-tomcat-server/src/var/config/ assemblies/minimal-jetty-server/src/var/config/assemblies/minimal-tomcat-server/src/var/config/ etc/ modules/de.
Posted by Jason Dillon <ja...@planet57.com>.
More reason we need our own repo to track jars.
--jason
-----Original Message-----
From: Joe Bohn <jo...@earthlink.net>
Date: Tue, 16 May 2006 15:58:24
To:dev@geronimo.apache.org
Subject: Re: svn commit: r405881 - in /geronimo/branches/1.1: assemblies/j2ee-jetty-server/src/var/config/
assemblies/j2ee-tomcat-server/src/var/config/ assemblies/minimal-jetty-server/src/var/config/
assemblies/minimal-tomcat-server/src/var/config/ etc/ modules/de...
Was it intended that this change would upgrade howl to 1.0.1?
I know this was discussed with the package upgrades and David even
mentioned that the jar wasn't published on any of the repos yet. That's
the last I can find on the topic.
It is in fact causing a problem since this version can't be found on any
of the repos.
Joe
djencks@apache.org wrote:
> Author: djencks
> Date: Fri May 12 14:29:24 2006
> New Revision: 405881
>
> URL: http://svn.apache.org/viewcvs?rev=405881&view=rev
> Log:
> GERONIMO-1507 offline deployer. Also GERONIMO-1861 make a backup copy of config.xml
>
> Added:
> geronimo/branches/1.1/assemblies/j2ee-jetty-server/src/var/config/offline-deployer-list
> geronimo/branches/1.1/assemblies/j2ee-tomcat-server/src/var/config/offline-deployer-list
> geronimo/branches/1.1/assemblies/minimal-jetty-server/src/var/config/offline-deployer-list
> geronimo/branches/1.1/assemblies/minimal-tomcat-server/src/var/config/offline-deployer-list
> geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/LocalServer.java
> Removed:
> geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/GBeanDataRegistry.java
> Modified:
> geronimo/branches/1.1/etc/explicit_versions.properties
> geronimo/branches/1.1/etc/project.properties
> geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/ServerConnection.java
> geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentConfigurationManager.java
> geronimo/branches/1.1/modules/deployment/src/test/org/apache/geronimo/deployment/SingleFileHotDeployerTest.java
> geronimo/branches/1.1/modules/kernel/project.xml
> geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/ConfigurationManager.java
> geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/KernelConfigurationManager.java
> geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java
> geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/SimpleConfigurationManager.java
> geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLine.java
> geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLineManifest.java
> geronimo/branches/1.1/modules/system/src/test/org/apache/geronimo/system/plugin/PluginInstallerTest.java
> geronimo/branches/1.1/plugins/geronimo-assembly-plugin/plugin.jelly
> geronimo/branches/1.1/plugins/geronimo-assembly-plugin/project.xml
>
> Added: geronimo/branches/1.1/assemblies/j2ee-jetty-server/src/var/config/offline-deployer-list
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/assemblies/j2ee-jetty-server/src/var/config/offline-deployer-list?rev=405881&view=auto
> ==============================================================================
> --- geronimo/branches/1.1/assemblies/j2ee-jetty-server/src/var/config/offline-deployer-list (added)
> +++ geronimo/branches/1.1/assemblies/j2ee-jetty-server/src/var/config/offline-deployer-list Fri May 12 14:29:24 2006
> @@ -0,0 +1,7 @@
> +#list of deployers to be started for offline deployment
> +geronimo/geronimo-gbean-deployer/${pom.currentVersion}/car
> +geronimo/j2ee-deployer/${pom.currentVersion}/car
> +geronimo/openejb-deployer/${pom.currentVersion}/car
> +geronimo/client-deployer/${pom.currentVersion}/car
> +geronimo/axis-deployer/${pom.currentVersion}/car
> +geronimo/jetty-deployer/${pom.currentVersion}/car
>
> Added: geronimo/branches/1.1/assemblies/j2ee-tomcat-server/src/var/config/offline-deployer-list
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/assemblies/j2ee-tomcat-server/src/var/config/offline-deployer-list?rev=405881&view=auto
> ==============================================================================
> --- geronimo/branches/1.1/assemblies/j2ee-tomcat-server/src/var/config/offline-deployer-list (added)
> +++ geronimo/branches/1.1/assemblies/j2ee-tomcat-server/src/var/config/offline-deployer-list Fri May 12 14:29:24 2006
> @@ -0,0 +1,7 @@
> +#list of deployers to be started for offline deployment
> +geronimo/geronimo-gbean-deployer/${pom.currentVersion}/car
> +geronimo/j2ee-deployer/${pom.currentVersion}/car
> +geronimo/openejb-deployer/${pom.currentVersion}/car
> +geronimo/client-deployer/${pom.currentVersion}/car
> +geronimo/axis-deployer/${pom.currentVersion}/car
> +geronimo/tomcat-deployer/${pom.currentVersion}/car
>
> Added: geronimo/branches/1.1/assemblies/minimal-jetty-server/src/var/config/offline-deployer-list
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/assemblies/minimal-jetty-server/src/var/config/offline-deployer-list?rev=405881&view=auto
> ==============================================================================
> --- geronimo/branches/1.1/assemblies/minimal-jetty-server/src/var/config/offline-deployer-list (added)
> +++ geronimo/branches/1.1/assemblies/minimal-jetty-server/src/var/config/offline-deployer-list Fri May 12 14:29:24 2006
> @@ -0,0 +1,7 @@
> +#list of deployers to be started for offline deployment
> +geronimo/geronimo-gbean-deployer/${pom.currentVersion}/car
> +geronimo/j2ee-deployer/${pom.currentVersion}/car
> +geronimo/jetty-deployer/${pom.currentVersion}/car
> +geronimo/unavailable-ejb-deployer/${pom.currentVersion}/car
> +geronimo/unavailable-webservices-deployer/${pom.currentVersion}/car
> +geronimo/unavailable-client-deployer/${pom.currentVersion}/car
>
> Added: geronimo/branches/1.1/assemblies/minimal-tomcat-server/src/var/config/offline-deployer-list
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/assemblies/minimal-tomcat-server/src/var/config/offline-deployer-list?rev=405881&view=auto
> ==============================================================================
> --- geronimo/branches/1.1/assemblies/minimal-tomcat-server/src/var/config/offline-deployer-list (added)
> +++ geronimo/branches/1.1/assemblies/minimal-tomcat-server/src/var/config/offline-deployer-list Fri May 12 14:29:24 2006
> @@ -0,0 +1,7 @@
> +#list of deployers to be started for offline deployment
> +geronimo/geronimo-gbean-deployer/${pom.currentVersion}/car
> +geronimo/j2ee-deployer/${pom.currentVersion}/car
> +geronimo/tomcat-deployer/${pom.currentVersion}/car
> +geronimo/unavailable-ejb-deployer/${pom.currentVersion}/car
> +geronimo/unavailable-webservices-deployer/${pom.currentVersion}/car
> +geronimo/unavailable-client-deployer/${pom.currentVersion}/car
>
> Modified: geronimo/branches/1.1/etc/explicit_versions.properties
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/etc/explicit_versions.properties?rev=405881&r1=405880&r2=405881&view=diff
> ==============================================================================
> --- geronimo/branches/1.1/etc/explicit_versions.properties (original)
> +++ geronimo/branches/1.1/etc/explicit_versions.properties Fri May 12 14:29:24 2006
> @@ -42,7 +42,7 @@
> dom4j///=1.4
> dwr///=1.0
> eclipse_compiler///=3.0.1
> -howl///=0.1.11
> +howl///=1.0.1
> #security:
> hsqldb///=1.7.2.2
> jasper///=5.5.15
>
> Modified: geronimo/branches/1.1/etc/project.properties
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/etc/project.properties?rev=405881&r1=405880&r2=405881&view=diff
> ==============================================================================
> --- geronimo/branches/1.1/etc/project.properties (original)
> +++ geronimo/branches/1.1/etc/project.properties Fri May 12 14:29:24 2006
> @@ -97,7 +97,7 @@
> release_notes_version=1.0
>
> geronimo_packaging_plugin_version=1.1.0-8
> -geronimo_assembly_plugin_version=1.1.0-11
> +geronimo_assembly_plugin_version=1.1.0-12
> geronimo_deployment_plugin_version=1.1.0-3
> geronimo_dependency_plugin_version=1.1.0-3
>
> @@ -153,7 +153,7 @@
> dom4j_version=1.4
> dwr_version=1.1.1
> eclipse_compiler_version=3.0.1
> -howl_version=0.1.11
> +howl_version=1.0.1
> #security:
> hsqldb_version=1.7.2.2
> jasper_version=5.5.15
>
> Added: geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/LocalServer.java
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/LocalServer.java?rev=405881&view=auto
> ==============================================================================
> --- geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/LocalServer.java (added)
> +++ geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/LocalServer.java Fri May 12 14:29:24 2006
> @@ -0,0 +1,80 @@
> +/**
> + *
> + * Copyright 2006 The Apache Software Foundation
> + *
> + * Licensed under the Apache License, Version 2.0 (the "License");
> + * you may not use this file except in compliance with the License.
> + * You may obtain a copy of the License at
> + *
> + * http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing, software
> + * distributed under the License is distributed on an "AS IS" BASIS,
> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> + * See the License for the specific language governing permissions and
> + * limitations under the License.
> + */
> +
> +package org.apache.geronimo.deployment.cli;
> +
> +import java.io.BufferedReader;
> +import java.io.File;
> +import java.io.FileReader;
> +import java.io.IOException;
> +import java.util.ArrayList;
> +import java.util.Iterator;
> +import java.util.List;
> +import java.util.Set;
> +import java.util.regex.Matcher;
> +import java.util.regex.Pattern;
> +
> +import org.apache.geronimo.gbean.AbstractName;
> +import org.apache.geronimo.gbean.AbstractNameQuery;
> +import org.apache.geronimo.kernel.GBeanNotFoundException;
> +import org.apache.geronimo.kernel.Kernel;
> +import org.apache.geronimo.kernel.config.PersistentConfigurationList;
> +import org.apache.geronimo.kernel.repository.Artifact;
> +import org.apache.geronimo.system.main.CommandLine;
> +import org.apache.geronimo.system.serverinfo.ServerInfo;
> +
> +/**
> + * @version $Rev:$ $Date:$
> + */
> +public class LocalServer extends CommandLine {
> +
> + public LocalServer(String configListLocation) throws Exception {
> + startKernel(Artifact.create("geronimo/j2ee-system//car"));
> + Runtime.getRuntime().addShutdownHook(new Thread("Geronimo shutdown thread") {
> + public void run() {
> + getKernel().shutdown();
> + }
> + });
> + List configs = getConfigurationList(configListLocation);
> + loadConfigurations(configs);
> + }
> +
> + public Kernel getKernel() {
> + return super.getKernel();
> + }
> +
> + protected List getConfigurationList(String path) throws GBeanNotFoundException, IOException {
> + ServerInfo serverInfo = (ServerInfo) getKernel().getGBean(ServerInfo.class);
> + File configFile = serverInfo.resolve(path);
> + List modules = new ArrayList();
> + BufferedReader in = new BufferedReader(new FileReader(configFile));
> + try {
> + String artifactString;
> + while ((artifactString = in.readLine()) != null) {
> + artifactString = artifactString.trim();
> + if (!artifactString.startsWith("#") && artifactString.length() > 0) {
> + Artifact artifact = Artifact.create(artifactString);
> + modules.add(artifact);
> + }
> + }
> + } finally {
> + in.close();
> + }
> + return modules;
> + }
> +
> +}
>
> Modified: geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/ServerConnection.java
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/ServerConnection.java?rev=405881&r1=405880&r2=405881&view=diff
> ==============================================================================
> --- geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/ServerConnection.java (original)
> +++ geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/ServerConnection.java Fri May 12 14:29:24 2006
> @@ -31,6 +31,7 @@
> import java.util.Map;
> import java.util.Properties;
> import java.util.jar.JarFile;
> +
> import javax.enterprise.deploy.shared.factories.DeploymentFactoryManager;
> import javax.enterprise.deploy.spi.DeploymentManager;
> import javax.enterprise.deploy.spi.exceptions.DeploymentManagerCreationException;
> @@ -40,7 +41,12 @@
> import org.apache.geronimo.deployment.plugin.factories.AuthenticationFailedException;
> import org.apache.geronimo.deployment.plugin.factories.DeploymentFactoryImpl;
> import org.apache.geronimo.deployment.plugin.jmx.JMXDeploymentManager;
> +import org.apache.geronimo.deployment.plugin.jmx.LocalDeploymentManager;
> import org.apache.geronimo.util.SimpleEncryption;
> +import org.apache.geronimo.kernel.Kernel;
> +import org.apache.geronimo.kernel.config.ConfigurationManager;
> +import org.apache.geronimo.kernel.config.ConfigurationUtil;
> +import org.apache.geronimo.kernel.config.KernelConfigurationManager;
>
> /**
> * Supports online connections to the server, via JSR-88, valid only
> @@ -50,6 +56,7 @@
> */
> public class ServerConnection {
> private final static Map OPTION_HELP = new LinkedHashMap(9);
> +
> static {
> OPTION_HELP.put("--uri", "A URI to contact the server. If not specified, the deployer defaults to " +
> "operating on a Geronimo server running on the standard port on localhost.\n" +
> @@ -69,7 +76,9 @@
> OPTION_HELP.put("--password", "Specifies a password to use to authenticate to the server.");
> OPTION_HELP.put("--syserr", "Enables error logging to syserr. Disabled by default.");
> OPTION_HELP.put("--verbose", "Enables verbose execution mode. Disabled by default.");
> + OPTION_HELP.put("--offline", "Deploy offline to a local server, using whatever deployers are available in the local server");
> }
> +
> public static Map getOptionHelp() {
> return OPTION_HELP;
> }
> @@ -80,19 +89,18 @@
> * argument). For example, if the arguments were "--user bob foo" then
> * this should return true for "--user" and "bob" and false for "foo".
> *
> - * @param args The previous arguments on the command line
> + * @param args The previous arguments on the command line
> * @param option The argument we're checking at the moment
> - *
> * @return True if the argument we're checking is part of a general argument
> */
> public static boolean isGeneralOption(List args, String option) {
> - if(OPTION_HELP.containsKey(option) || option.equals("--url")) {
> + if (OPTION_HELP.containsKey(option) || option.equals("--url")) {
> return true;
> }
> - if(args.size() == 0) {
> + if (args.size() == 0) {
> return false;
> }
> - String last = (String) args.get(args.size()-1);
> + String last = (String) args.get(args.size() - 1);
> return last.equals("--uri") || last.equals("--url") || last.equals("--driver") || last.equals("--user") ||
> last.equals("--password") || last.equals("--host") || last.equals("--port");
> }
> @@ -111,62 +119,64 @@
> Integer port = null;
> this.out = out;
> this.in = in;
> - for(int i = 0; i < args.length; i++) {
> + boolean offline = false;
> + for (int i = 0; i < args.length; i++) {
> String arg = args[i];
> - if(arg.equals("--uri") || arg.equals("--url")) {
> - if(uri != null) {
> + if (arg.equals("--uri") || arg.equals("--url")) {
> + if (uri != null) {
> throw new DeploymentSyntaxException("Cannot specify more than one URI");
> - } else if(i >= args.length-1) {
> + } else if (i >= args.length - 1) {
> throw new DeploymentSyntaxException("Must specify a URI (e.g. --uri deployer:...)");
> }
> - if(host != null || port != null) {
> + if (host != null || port != null) {
> throw new DeploymentSyntaxException("Cannot specify a URI as well as a host/port");
> }
> uri = args[++i];
> - } else if(arg.equals("--host")) {
> - if(host != null) {
> + } else if (arg.equals("--host")) {
> + if (host != null) {
> throw new DeploymentSyntaxException("Cannot specify more than one host");
> - } else if(i >= args.length-1) {
> + } else if (i >= args.length - 1) {
> throw new DeploymentSyntaxException("Must specify a hostname (e.g. --host localhost)");
> }
> - if(uri != null) {
> + if (uri != null) {
> throw new DeploymentSyntaxException("Cannot specify a URI as well as a host/port");
> }
> host = args[++i];
> - } else if(arg.equals("--port")) {
> - if(port != null) {
> + } else if (arg.equals("--port")) {
> + if (port != null) {
> throw new DeploymentSyntaxException("Cannot specify more than one port");
> - } else if(i >= args.length-1) {
> + } else if (i >= args.length - 1) {
> throw new DeploymentSyntaxException("Must specify a port (e.g. --port 1099)");
> }
> - if(uri != null) {
> + if (uri != null) {
> throw new DeploymentSyntaxException("Cannot specify a URI as well as a host/port");
> }
> try {
> port = new Integer(args[++i]);
> } catch (NumberFormatException e) {
> - throw new DeploymentSyntaxException("Port must be a number ("+e.getMessage()+")");
> + throw new DeploymentSyntaxException("Port must be a number (" + e.getMessage() + ")");
> }
> - } else if(arg.equals("--driver")) {
> - if(driver != null) {
> + } else if (arg.equals("--driver")) {
> + if (driver != null) {
> throw new DeploymentSyntaxException("Cannot specify more than one driver");
> - } else if(i >= args.length-1) {
> + } else if (i >= args.length - 1) {
> throw new DeploymentSyntaxException("Must specify a driver JAR (--driver jarfile)");
> }
> driver = args[++i];
> - } else if(arg.equals("--offline")) {
> - throw new DeploymentSyntaxException("This tool no longer handles offline deployment");
> - } else if(arg.equals("--user")) {
> - if(user != null) {
> + } else if (arg.equals("--offline")) {
> + //throw new DeploymentSyntaxException("This tool no longer handles offline deployment");
> + offline = true;
> + } else if (arg.equals("--user")) {
> + if (user != null) {
> throw new DeploymentSyntaxException("Cannot specify more than one user name");
> - } else if(i >= args.length-1) {
> + } else if (i >= args.length - 1) {
> throw new DeploymentSyntaxException("Must specify a username (--user username)");
> }
> user = args[++i];
> - } else if(arg.equals("--password")) {
> - if(password != null) {
> + } else if (arg.equals("--password")) {
> + if (password != null) {
> throw new DeploymentSyntaxException("Cannot specify more than one password");
> - } else if(i >= args.length-1) {
> + } else if (i >= args.length - 1) {
> throw new DeploymentSyntaxException("Must specify a password (--password password)");
> }
> password = args[++i];
> @@ -175,23 +185,37 @@
> } else if (arg.equals("--syserr")) {
> logToSysErr = true;
> } else {
> - throw new DeploymentException("Invalid option "+arg);
> + throw new DeploymentException("Invalid option " + arg);
> }
> }
> - if((driver != null) && uri == null) {
> + if ((driver != null) && uri == null) {
> throw new DeploymentSyntaxException("A custom driver requires a custom URI");
> }
> - if(host != null || port != null) {
> - uri = DEFAULT_URI+"://"+(host == null ? "" : host)+(port == null ? "" : ":"+port);
> + if (host != null || port != null) {
> + uri = DEFAULT_URI + "://" + (host == null ? "" : host) + (port == null ? "" : ":" + port);
> + }
> + if (offline) {
> + LocalServer localServer;
> + try {
> + localServer = new LocalServer("var/config/offline-deployer-list");
> + } catch (Exception e) {
> + throw new DeploymentException("Could not start local server", e);
> + }
> + Kernel kernel = localServer.getKernel();
> + ConfigurationManager configurationManager = ConfigurationUtil.getConfigurationManager(kernel);
> + configurationManager.setOnline(false);
> +
> + manager = new LocalDeploymentManager(localServer.getKernel());
> + } else {
> + tryToConnect(uri, driver, user, password, true);
> }
> - tryToConnect(uri, driver, user, password, true);
> - if(manager == null) {
> + if (manager == null) {
> throw new DeploymentException("Unexpected error; connection failed.");
> }
> }
>
> public void close() throws DeploymentException {
> - if(manager != null) {
> + if (manager != null) {
> manager.release();
> }
> }
> @@ -206,55 +230,59 @@
>
> private void tryToConnect(String argURI, String driver, String user, String password, boolean authPrompt) throws DeploymentException {
> DeploymentFactoryManager mgr = DeploymentFactoryManager.getInstance();
> - if(driver != null) {
> + if (driver != null) {
> loadDriver(driver, mgr);
> } else {
> mgr.registerDeploymentFactory(new DeploymentFactoryImpl());
> }
> String useURI = argURI == null ? DEFAULT_URI : argURI;
>
> - if(authPrompt && user == null && password == null) {
> + if (authPrompt && user == null && password == null) {
> InputStream in;
> // First check for .geronimo-deployer on class path (e.g. packaged in deployer.jar)
> in = ServerConnection.class.getResourceAsStream("/.geronimo-deployer");
> // If not there, check in home directory
> - if(in == null) {
> + if (in == null) {
> File authFile = new File(System.getProperty("user.home"), ".geronimo-deployer");
> - if(authFile.exists() && authFile.canRead()) {
> + if (authFile.exists() && authFile.canRead()) {
> try {
> in = new BufferedInputStream(new FileInputStream(authFile));
> - } catch (FileNotFoundException e) {}
> + } catch (FileNotFoundException e) {
> + }
> }
> }
> - if(in != null) {
> + if (in != null) {
> try {
> Properties props = new Properties();
> props.load(in);
> - String encryped = props.getProperty("login."+useURI);
> - if(encryped != null) {
> - if(encryped.startsWith("{Standard}")) {
> + String encryped = props.getProperty("login." + useURI);
> + if (encryped != null) {
> + if (encryped.startsWith("{Standard}")) {
> SavedAuthentication auth = (SavedAuthentication) SimpleEncryption.decrypt(encryped.substring(10));
> - if(auth.uri.equals(useURI)) {
> + if (auth.uri.equals(useURI)) {
> user = auth.user;
> password = new String(auth.password);
> }
> - } else if(encryped.startsWith("{Plain}")) {
> + } else if (encryped.startsWith("{Plain}")) {
> int pos = encryped.indexOf("/");
> user = encryped.substring(7, pos);
> - password = encryped.substring(pos+1);
> + password = encryped.substring(pos + 1);
> } else {
> System.out.print(DeployUtils.reformat("Unknown encryption used in saved login file", 4, 72));
> }
> }
> } catch (IOException e) {
> - System.out.print(DeployUtils.reformat("Unable to read authentication from saved login file: "+e.getMessage(), 4, 72));
> + System.out.print(DeployUtils.reformat("Unable to read authentication from saved login file: " + e.getMessage(), 4, 72));
> } finally {
> - try {in.close();}catch(IOException e) {}
> + try {
> + in.close();
> + } catch (IOException e) {
> + }
> }
> }
> }
>
> - if(authPrompt && !useURI.equals(DEFAULT_URI) && user == null && password == null) {
> + if (authPrompt && !useURI.equals(DEFAULT_URI) && user == null && password == null) {
> // Non-standard URI, but no authentication information
> doAuthPromptAndRetry(useURI, user, password);
> return;
> @@ -262,15 +290,15 @@
> try {
> manager = mgr.getDeploymentManager(useURI, user, password);
> auth = new SavedAuthentication(useURI, user, password == null ? null : password.toCharArray());
> - } catch(AuthenticationFailedException e) { // server's there, you just can't talk to it
> - if(authPrompt) {
> + } catch (AuthenticationFailedException e) { // server's there, you just can't talk to it
> + if (authPrompt) {
> doAuthPromptAndRetry(useURI, user, password);
> return;
> } else {
> throw new DeploymentException("Login Failed");
> }
> - } catch(DeploymentManagerCreationException e) {
> - throw new DeploymentException("Unable to connect to server at "+useURI+" -- "+e.getMessage());
> + } catch (DeploymentManagerCreationException e) {
> + throw new DeploymentException("Unable to connect to server at " + useURI + " -- " + e.getMessage());
> }
> }
>
> @@ -282,37 +310,37 @@
>
> private void loadDriver(String driver, DeploymentFactoryManager mgr) throws DeploymentException {
> File file = new File(driver);
> - if(!file.exists() || !file.canRead() || !DeployUtils.isJarFile(file)) {
> - throw new DeploymentSyntaxException("Driver '"+file.getAbsolutePath()+"' is not a readable JAR file");
> + if (!file.exists() || !file.canRead() || !DeployUtils.isJarFile(file)) {
> + throw new DeploymentSyntaxException("Driver '" + file.getAbsolutePath() + "' is not a readable JAR file");
> }
> String className = null;
> try {
> JarFile jar = new JarFile(file);
> className = jar.getManifest().getMainAttributes().getValue("J2EE-DeploymentFactory-Implementation-Class");
> - if(className == null) {
> - throw new DeploymentException("The driver JAR "+file.getAbsolutePath()+" does not specify a J2EE-DeploymentFactory-Implementation-Class; cannot load driver.");
> + if (className == null) {
> + throw new DeploymentException("The driver JAR " + file.getAbsolutePath() + " does not specify a J2EE-DeploymentFactory-Implementation-Class; cannot load driver.");
> }
> jar.close();
> DeploymentFactory factory = (DeploymentFactory) Class.forName(className).newInstance();
> mgr.registerDeploymentFactory(factory);
> - } catch(DeploymentException e) {
> + } catch (DeploymentException e) {
> throw e;
> - } catch(Exception e) {
> - throw new DeploymentSyntaxException("Unable to load driver class "+className+" from JAR "+file.getAbsolutePath(), e);
> + } catch (Exception e) {
> + throw new DeploymentSyntaxException("Unable to load driver class " + className + " from JAR " + file.getAbsolutePath(), e);
> }
> }
>
> private void doAuthPromptAndRetry(String uri, String user, String password) throws DeploymentException {
> try {
> - if(user == null) {
> + if (user == null) {
> out.print("Username: ");
> out.flush();
> user = in.readLine();
> }
> - if(password == null) {
> + if (password == null) {
> password = new PasswordPrompt("Password: ", out).getPassword(in);
> }
> - } catch(IOException e) {
> + } catch (IOException e) {
> throw new DeploymentException("Unable to prompt for login", e);
> }
> tryToConnect(uri, null, user, password, false);
> @@ -349,13 +377,13 @@
> int priority = Thread.currentThread().getPriority();
> try {
> Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
> - String fullPrompt = "\r"+prompt+" "+"\r"+prompt;
> + String fullPrompt = "\r" + prompt + " " + "\r" + prompt;
> StringBuffer clearline = new StringBuffer();
> clearline.append('\r');
> - for(int i=prompt.length()+10; i>=0; i--) {
> + for (int i = prompt.length() + 10; i >= 0; i--) {
> clearline.append(' ');
> }
> - while(!done) {
> + while (!done) {
> out.print(fullPrompt);
> out.flush();
> Thread.sleep(1);
> @@ -377,7 +405,7 @@
> * the entered password. For this to make sense, the input reader
> * here must be part of the same console as the output writer passed
> * to the constructor.
> - *
> + * <p/>
> * For higher security, should return a char[], but that will just
> * be defeated by the JSR-88 call that takes a String anyway, so
> * why bother?
>
> Modified: geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentConfigurationManager.java
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentConfigurationManager.java?rev=405881&r1=405880&r2=405881&view=diff
> ==============================================================================
> --- geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentConfigurationManager.java (original)
> +++ geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentConfigurationManager.java Fri May 12 14:29:24 2006
> @@ -84,6 +84,16 @@
> return super.getArtifactResolver();
> }
>
> + /**
> + * This configuration manager never starts any configurations
> + * @return false
> + */
> + public boolean isOnline() {
> + return false;
> + }
> +
> + public void setOnline(boolean online) {
> + }
>
> //
> // LOAD
>
> Modified: geronimo/branches/1.1/modules/deployment/src/test/org/apache/geronimo/deployment/SingleFileHotDeployerTest.java
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/deployment/src/test/org/apache/geronimo/deployment/SingleFileHotDeployerTest.java?rev=405881&r1=405880&r2=405881&view=diff
> ==============================================================================
> --- geronimo/branches/1.1/modules/deployment/src/test/org/apache/geronimo/deployment/SingleFileHotDeployerTest.java (original)
> +++ geronimo/branches/1.1/modules/deployment/src/test/org/apache/geronimo/deployment/SingleFileHotDeployerTest.java Fri May 12 14:29:24 2006
> @@ -453,5 +453,12 @@
> public ArtifactResolver getArtifactResolver() {
> return artifactResolver;
> }
> +
> + public boolean isOnline() {
> + return true;
> + }
> +
> + public void setOnline(boolean online) {
> + }
> }
> }
>
> Modified: geronimo/branches/1.1/modules/kernel/project.xml
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/kernel/project.xml?rev=405881&r1=405880&r2=405881&view=diff
> ==============================================================================
> --- geronimo/branches/1.1/modules/kernel/project.xml (original)
> +++ geronimo/branches/1.1/modules/kernel/project.xml Fri May 12 14:29:24 2006
> @@ -103,33 +103,4 @@
> </dependency>
> </dependencies>
>
> - <build>
> - <resources>
> - <resource>
> - <directory>${basedir}/src/java</directory>
> - <includes>
> - <include>**/*.xml</include>
> - <include>**/*.properties</include>
> - </includes>
> - </resource>
> - </resources>
> - <unitTest>
> - <includes>
> - <include>**/*Test.java</include>
> - </includes>
> - <excludes>
> - <exclude>**/Abstract*.java</exclude>
> - </excludes>
> - <resources>
> - <resource>
> - <directory>${basedir}/target/test-xdoclet/jmx/org/apache/geronimo/tools/xdoclet</directory>
> - <targetPath>org/apache/geronimo/tools/xdoclet</targetPath>
> - <includes>
> - <include>*.xml</include>
> - </includes>
> - </resource>
> - </resources>
> - </unitTest>
> - </build>
> -
> </project>
>
> Modified: geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/ConfigurationManager.java
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/ConfigurationManager.java?rev=405881&r1=405880&r2=405881&view=diff
> ==============================================================================
> --- geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/ConfigurationManager.java (original)
> +++ geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/ConfigurationManager.java Fri May 12 14:29:24 2006
> @@ -463,4 +463,13 @@
> * configuration manager, etc.
> */
> ArtifactResolver getArtifactResolver();
> +
> + /**
> + * Online means full functionality. Offline typically means that configurations will never be started,
> + * although they may be marked in the persistent configuration list.
> + *
> + * @return online status of ConfigurationManager
> + */
> + boolean isOnline();
> + void setOnline(boolean online);
> }
>
> Modified: geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/KernelConfigurationManager.java
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/KernelConfigurationManager.java?rev=405881&r1=405880&r2=405881&view=diff
> ==============================================================================
> --- geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/KernelConfigurationManager.java (original)
> +++ geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/KernelConfigurationManager.java Fri May 12 14:29:24 2006
> @@ -57,6 +57,7 @@
> private final ArtifactManager artifactManager;
> protected final ClassLoader classLoader;
> private final ShutdownHook shutdownHook;
> + private boolean online = true;
>
> public KernelConfigurationManager(Kernel kernel,
> Collection stores,
> @@ -178,11 +179,21 @@
> }
>
> public void start(Configuration configuration) throws InvalidConfigException {
> - ConfigurationUtil.startConfigurationGBeans(configuration.getAbstractName(), configuration, kernel);
> + if (online) {
> + ConfigurationUtil.startConfigurationGBeans(configuration.getAbstractName(), configuration, kernel);
> + }
>
> if (configurationList != null && configuration.getConfigurationData().isAutoStart()) {
> configurationList.startConfiguration(configuration.getId());
> }
> + }
> +
> + public boolean isOnline() {
> + return online;
> + }
> +
> + public void setOnline(boolean online) {
> + this.online = online;
> }
>
> protected void stop(Configuration configuration) {
>
> Modified: geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java?rev=405881&r1=405880&r2=405881&view=diff
> ==============================================================================
> --- geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java (original)
> +++ geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java Fri May 12 14:29:24 2006
> @@ -246,7 +246,7 @@
> }
> }
>
> - throw new ClassNotFoundException(name);
> + throw new ClassNotFoundException(name + " in classloader " + id);
> }
>
> private boolean isNonOverridableClass(String name) {
>
> Modified: geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/SimpleConfigurationManager.java
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/SimpleConfigurationManager.java?rev=405881&r1=405880&r2=405881&view=diff
> ==============================================================================
> --- geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/SimpleConfigurationManager.java (original)
> +++ geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/SimpleConfigurationManager.java Fri May 12 14:29:24 2006
> @@ -1226,6 +1226,17 @@
> return artifactResolver;
> }
>
> + /**
> + * this configuration manager never starts configurations.
> + * @return false
> + */
> + public boolean isOnline() {
> + return false;
> + }
> +
> + public void setOnline(boolean online) {
> + }
> +
> private List getStoreList() {
> return new ArrayList(stores);
> }
>
> Modified: geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLine.java
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLine.java?rev=405881&r1=405880&r2=405881&view=diff
> ==============================================================================
> --- geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLine.java (original)
> +++ geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLine.java Fri May 12 14:29:24 2006
> @@ -20,6 +20,9 @@
> import java.io.InputStream;
> import java.util.Iterator;
> import java.util.List;
> +import java.util.Enumeration;
> +import java.net.URL;
> +
> import javax.management.ObjectName;
>
> import org.apache.commons.logging.Log;
> @@ -31,6 +34,9 @@
> import org.apache.geronimo.kernel.KernelFactory;
> import org.apache.geronimo.kernel.config.ConfigurationManager;
> import org.apache.geronimo.kernel.config.ConfigurationUtil;
> +import org.apache.geronimo.kernel.config.NoSuchConfigException;
> +import org.apache.geronimo.kernel.config.LifecycleException;
> +import org.apache.geronimo.kernel.config.ConfigurationData;
> import org.apache.geronimo.kernel.log.GeronimoLogging;
> import org.apache.geronimo.kernel.repository.Artifact;
> import org.apache.geronimo.gbean.AbstractName;
> @@ -61,7 +67,7 @@
> // the interesting entries from the manifest
> CommandLineManifest manifest = CommandLineManifest.getManifestEntries();
> List configurations = manifest.getConfigurations();
> - ObjectName mainGBean = manifest.getMainGBean();
> + AbstractName mainGBean = manifest.getMainGBean();
> String mainMethod = manifest.getMainMethod();
>
> new CommandLine().invokeMainGBean(configurations, mainGBean, mainMethod, args);
> @@ -78,34 +84,9 @@
> private Kernel kernel;
> private AbstractName configurationName;
>
> - /**
> - * @deprecated use the next one with AbstractName
> - *
> - * @param configurations
> - * @param mainGBean
> - * @param mainMethod
> - * @param args
> - * @throws Exception
> - */
> - public void invokeMainGBean(List configurations, ObjectName mainGBean, String mainMethod, String[] args) throws Exception {
> - startKernel(configurations);
> -
> - log.info("Server startup completed");
> -
> - // invoke the main method
> - kernel.invoke(
> - mainGBean,
> - mainMethod,
> - new Object[]{args},
> - new String[]{String[].class.getName()});
> -
> - log.info("Server shutdown begun");
> -
> - stopKernel();
> - }
> -
> public void invokeMainGBean(List configurations, AbstractName mainGBean, String mainMethod, String[] args) throws Exception {
> - startKernel(configurations);
> + startKernel();
> + loadConfigurations(configurations);
>
> log.info("Server startup completed");
>
> @@ -121,7 +102,7 @@
> stopKernel();
> }
>
> - protected void startKernel(List configurations) throws Exception {
> + protected void startKernel() throws Exception {
> ClassLoader classLoader = CommandLine.class.getClassLoader();
> InputStream in = classLoader.getResourceAsStream("META-INF/config.ser");
>
> @@ -132,6 +113,31 @@
> // load the configuration
> configurationName = ConfigurationUtil.loadBootstrapConfiguration(kernel, in, classLoader);
>
> + }
> +
> + protected void startKernel(Artifact moduleId) throws Exception {
> + // boot the kernel
> + kernel = KernelFactory.newInstance().createKernel("geronimo");
> + kernel.boot();
> + ClassLoader classLoader = CommandLine.class.getClassLoader();
> + for (Enumeration modules = classLoader.getResources("META-INF/config.ser"); modules.hasMoreElements(); ) {
> + URL moduleDataURL = (URL) modules.nextElement();
> + InputStream in = moduleDataURL.openStream();
> + try {
> + ConfigurationData moduleData = ConfigurationUtil.readConfigurationData(in);
> + if (moduleId.matches(moduleData.getId())) {
> + // load the configuration
> + configurationName = ConfigurationUtil.loadBootstrapConfiguration(kernel, moduleData, classLoader);
> + return;
> + }
> + } finally {
> + in.close();
> + }
> + }
> + throw new NoSuchConfigException(moduleId);
> + }
> +
> + protected void loadConfigurations(List configurations) throws NoSuchConfigException, LifecycleException {
> // load and start the configurations
> ConfigurationManager configurationManager = ConfigurationUtil.getConfigurationManager(kernel);
> try {
>
> Modified: geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLineManifest.java
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLineManifest.java?rev=405881&r1=405880&r2=405881&view=diff
> ==============================================================================
> --- geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLineManifest.java (original)
> +++ geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLineManifest.java Fri May 12 14:29:24 2006
> @@ -30,6 +30,8 @@
> import javax.management.ObjectName;
> import javax.management.MalformedObjectNameException;
>
> +import org.apache.geronimo.gbean.AbstractName;
> +
> /**
> *
> *
> @@ -65,11 +67,11 @@
> // get the main gbean class
> String mainGBeanString = mainAttributes.getValue(MAIN_GBEAN);
>
> - ObjectName mainGBean = null;
> + AbstractName mainGBean = null;
> if(mainGBeanString != null) {
> try {
> - mainGBean = new ObjectName(mainGBeanString);
> - } catch (MalformedObjectNameException e) {
> + mainGBean = new AbstractName(new URI(mainGBeanString));
> + } catch (URISyntaxException e) {
> System.err.println("Invalid Main-GBean name: " + mainGBeanString);
> System.exit(1);
> throw new AssertionError();
> @@ -119,13 +121,13 @@
> return commandLineManifest;
> }
>
> - private final ObjectName mainGBean;
> + private final AbstractName mainGBean;
> private final String mainMethod;
> private final List configurations;
> private final List endorsedDirs;
> private final List extensionDirs;
>
> - public CommandLineManifest(ObjectName mainGBean, String mainMethod, List configurations, List endorsedDirs, List extensionDirs) {
> + public CommandLineManifest(AbstractName mainGBean, String mainMethod, List configurations, List endorsedDirs, List extensionDirs) {
> this.mainGBean = mainGBean;
> this.mainMethod = mainMethod;
> this.configurations = Collections.unmodifiableList(configurations);
> @@ -133,7 +135,7 @@
> this.extensionDirs = extensionDirs;
> }
>
> - public ObjectName getMainGBean() {
> + public AbstractName getMainGBean() {
> return mainGBean;
> }
>
>
> Modified: geronimo/branches/1.1/modules/system/src/test/org/apache/geronimo/system/plugin/PluginInstallerTest.java
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/system/src/test/org/apache/geronimo/system/plugin/PluginInstallerTest.java?rev=405881&r1=405880&r2=405881&view=diff
> ==============================================================================
> --- geronimo/branches/1.1/modules/system/src/test/org/apache/geronimo/system/plugin/PluginInstallerTest.java (original)
> +++ geronimo/branches/1.1/modules/system/src/test/org/apache/geronimo/system/plugin/PluginInstallerTest.java Fri May 12 14:29:24 2006
> @@ -123,6 +123,7 @@
> }
>
> private static class MockConfigManager implements ConfigurationManager {
> +
> public boolean isInstalled(Artifact configurationId) {
> return false;
> }
> @@ -253,6 +254,13 @@
>
> public ArtifactResolver getArtifactResolver() {
> return null;
> + }
> +
> + public boolean isOnline() {
> + return true;
> + }
> +
> + public void setOnline(boolean online) {
> }
> }
> }
>
> Modified: geronimo/branches/1.1/plugins/geronimo-assembly-plugin/plugin.jelly
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/plugins/geronimo-assembly-plugin/plugin.jelly?rev=405881&r1=405880&r2=405881&view=diff
> ==============================================================================
> --- geronimo/branches/1.1/plugins/geronimo-assembly-plugin/plugin.jelly (original)
> +++ geronimo/branches/1.1/plugins/geronimo-assembly-plugin/plugin.jelly Fri May 12 14:29:24 2006
> @@ -43,6 +43,10 @@
> <ant:mkdir dir="${geronimo.assembly.dest}/var/config"/>
> <velocity:merge basedir="${geronimo.assembly.src}/var/config" template="config.xml"
> name="${geronimo.assembly.dest}/var/config/config.xml"/>
> + <velocity:merge basedir="${geronimo.assembly.src}/var/config" template="config.xml"
> + name="${geronimo.assembly.dest}/var/config/config.xml.original"/>
> + <velocity:merge basedir="${geronimo.assembly.src}/var/config" template="offline-deployer-list"
> + name="${geronimo.assembly.dest}/var/config/offline-deployer-list"/>
> </goal>
>
> <goal name="assemble:assemble-lib">
>
> Modified: geronimo/branches/1.1/plugins/geronimo-assembly-plugin/project.xml
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/plugins/geronimo-assembly-plugin/project.xml?rev=405881&r1=405880&r2=405881&view=diff
> ==============================================================================
> --- geronimo/branches/1.1/plugins/geronimo-assembly-plugin/project.xml (original)
> +++ geronimo/branches/1.1/plugins/geronimo-assembly-plugin/project.xml Fri May 12 14:29:24 2006
> @@ -23,7 +23,7 @@
> <id>geronimo-assembly-plugin</id>
> <name>Geronimo :: Maven Assembly Plugin</name>
> <description>A plugin used to assemble a distribution of Geronimo</description>
> - <currentVersion>1.1.0-11</currentVersion>
> + <currentVersion>1.1.0-12</currentVersion>
>
> <dependencies>
> <dependency>
>
>
>
>
--
Joe Bohn
joe.bohn at earthlink.net
"He is no fool who gives what he cannot keep, to gain what he cannot
lose." -- Jim Elliot
Re: svn commit: r405881 - in /geronimo/branches/1.1: assemblies/j2ee-jetty-server/src/var/config/
assemblies/j2ee-tomcat-server/src/var/config/ assemblies/minimal-jetty-server/src/var/config/
assemblies/minimal-tomcat-server/src/var/config/ etc/ modules/de...
Posted by Joe Bohn <jo...@earthlink.net>.
Was it intended that this change would upgrade howl to 1.0.1?
I know this was discussed with the package upgrades and David even
mentioned that the jar wasn't published on any of the repos yet. That's
the last I can find on the topic.
It is in fact causing a problem since this version can't be found on any
of the repos.
Joe
djencks@apache.org wrote:
> Author: djencks
> Date: Fri May 12 14:29:24 2006
> New Revision: 405881
>
> URL: http://svn.apache.org/viewcvs?rev=405881&view=rev
> Log:
> GERONIMO-1507 offline deployer. Also GERONIMO-1861 make a backup copy of config.xml
>
> Added:
> geronimo/branches/1.1/assemblies/j2ee-jetty-server/src/var/config/offline-deployer-list
> geronimo/branches/1.1/assemblies/j2ee-tomcat-server/src/var/config/offline-deployer-list
> geronimo/branches/1.1/assemblies/minimal-jetty-server/src/var/config/offline-deployer-list
> geronimo/branches/1.1/assemblies/minimal-tomcat-server/src/var/config/offline-deployer-list
> geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/LocalServer.java
> Removed:
> geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/GBeanDataRegistry.java
> Modified:
> geronimo/branches/1.1/etc/explicit_versions.properties
> geronimo/branches/1.1/etc/project.properties
> geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/ServerConnection.java
> geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentConfigurationManager.java
> geronimo/branches/1.1/modules/deployment/src/test/org/apache/geronimo/deployment/SingleFileHotDeployerTest.java
> geronimo/branches/1.1/modules/kernel/project.xml
> geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/ConfigurationManager.java
> geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/KernelConfigurationManager.java
> geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java
> geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/SimpleConfigurationManager.java
> geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLine.java
> geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLineManifest.java
> geronimo/branches/1.1/modules/system/src/test/org/apache/geronimo/system/plugin/PluginInstallerTest.java
> geronimo/branches/1.1/plugins/geronimo-assembly-plugin/plugin.jelly
> geronimo/branches/1.1/plugins/geronimo-assembly-plugin/project.xml
>
> Added: geronimo/branches/1.1/assemblies/j2ee-jetty-server/src/var/config/offline-deployer-list
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/assemblies/j2ee-jetty-server/src/var/config/offline-deployer-list?rev=405881&view=auto
> ==============================================================================
> --- geronimo/branches/1.1/assemblies/j2ee-jetty-server/src/var/config/offline-deployer-list (added)
> +++ geronimo/branches/1.1/assemblies/j2ee-jetty-server/src/var/config/offline-deployer-list Fri May 12 14:29:24 2006
> @@ -0,0 +1,7 @@
> +#list of deployers to be started for offline deployment
> +geronimo/geronimo-gbean-deployer/${pom.currentVersion}/car
> +geronimo/j2ee-deployer/${pom.currentVersion}/car
> +geronimo/openejb-deployer/${pom.currentVersion}/car
> +geronimo/client-deployer/${pom.currentVersion}/car
> +geronimo/axis-deployer/${pom.currentVersion}/car
> +geronimo/jetty-deployer/${pom.currentVersion}/car
>
> Added: geronimo/branches/1.1/assemblies/j2ee-tomcat-server/src/var/config/offline-deployer-list
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/assemblies/j2ee-tomcat-server/src/var/config/offline-deployer-list?rev=405881&view=auto
> ==============================================================================
> --- geronimo/branches/1.1/assemblies/j2ee-tomcat-server/src/var/config/offline-deployer-list (added)
> +++ geronimo/branches/1.1/assemblies/j2ee-tomcat-server/src/var/config/offline-deployer-list Fri May 12 14:29:24 2006
> @@ -0,0 +1,7 @@
> +#list of deployers to be started for offline deployment
> +geronimo/geronimo-gbean-deployer/${pom.currentVersion}/car
> +geronimo/j2ee-deployer/${pom.currentVersion}/car
> +geronimo/openejb-deployer/${pom.currentVersion}/car
> +geronimo/client-deployer/${pom.currentVersion}/car
> +geronimo/axis-deployer/${pom.currentVersion}/car
> +geronimo/tomcat-deployer/${pom.currentVersion}/car
>
> Added: geronimo/branches/1.1/assemblies/minimal-jetty-server/src/var/config/offline-deployer-list
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/assemblies/minimal-jetty-server/src/var/config/offline-deployer-list?rev=405881&view=auto
> ==============================================================================
> --- geronimo/branches/1.1/assemblies/minimal-jetty-server/src/var/config/offline-deployer-list (added)
> +++ geronimo/branches/1.1/assemblies/minimal-jetty-server/src/var/config/offline-deployer-list Fri May 12 14:29:24 2006
> @@ -0,0 +1,7 @@
> +#list of deployers to be started for offline deployment
> +geronimo/geronimo-gbean-deployer/${pom.currentVersion}/car
> +geronimo/j2ee-deployer/${pom.currentVersion}/car
> +geronimo/jetty-deployer/${pom.currentVersion}/car
> +geronimo/unavailable-ejb-deployer/${pom.currentVersion}/car
> +geronimo/unavailable-webservices-deployer/${pom.currentVersion}/car
> +geronimo/unavailable-client-deployer/${pom.currentVersion}/car
>
> Added: geronimo/branches/1.1/assemblies/minimal-tomcat-server/src/var/config/offline-deployer-list
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/assemblies/minimal-tomcat-server/src/var/config/offline-deployer-list?rev=405881&view=auto
> ==============================================================================
> --- geronimo/branches/1.1/assemblies/minimal-tomcat-server/src/var/config/offline-deployer-list (added)
> +++ geronimo/branches/1.1/assemblies/minimal-tomcat-server/src/var/config/offline-deployer-list Fri May 12 14:29:24 2006
> @@ -0,0 +1,7 @@
> +#list of deployers to be started for offline deployment
> +geronimo/geronimo-gbean-deployer/${pom.currentVersion}/car
> +geronimo/j2ee-deployer/${pom.currentVersion}/car
> +geronimo/tomcat-deployer/${pom.currentVersion}/car
> +geronimo/unavailable-ejb-deployer/${pom.currentVersion}/car
> +geronimo/unavailable-webservices-deployer/${pom.currentVersion}/car
> +geronimo/unavailable-client-deployer/${pom.currentVersion}/car
>
> Modified: geronimo/branches/1.1/etc/explicit_versions.properties
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/etc/explicit_versions.properties?rev=405881&r1=405880&r2=405881&view=diff
> ==============================================================================
> --- geronimo/branches/1.1/etc/explicit_versions.properties (original)
> +++ geronimo/branches/1.1/etc/explicit_versions.properties Fri May 12 14:29:24 2006
> @@ -42,7 +42,7 @@
> dom4j///=1.4
> dwr///=1.0
> eclipse_compiler///=3.0.1
> -howl///=0.1.11
> +howl///=1.0.1
> #security:
> hsqldb///=1.7.2.2
> jasper///=5.5.15
>
> Modified: geronimo/branches/1.1/etc/project.properties
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/etc/project.properties?rev=405881&r1=405880&r2=405881&view=diff
> ==============================================================================
> --- geronimo/branches/1.1/etc/project.properties (original)
> +++ geronimo/branches/1.1/etc/project.properties Fri May 12 14:29:24 2006
> @@ -97,7 +97,7 @@
> release_notes_version=1.0
>
> geronimo_packaging_plugin_version=1.1.0-8
> -geronimo_assembly_plugin_version=1.1.0-11
> +geronimo_assembly_plugin_version=1.1.0-12
> geronimo_deployment_plugin_version=1.1.0-3
> geronimo_dependency_plugin_version=1.1.0-3
>
> @@ -153,7 +153,7 @@
> dom4j_version=1.4
> dwr_version=1.1.1
> eclipse_compiler_version=3.0.1
> -howl_version=0.1.11
> +howl_version=1.0.1
> #security:
> hsqldb_version=1.7.2.2
> jasper_version=5.5.15
>
> Added: geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/LocalServer.java
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/LocalServer.java?rev=405881&view=auto
> ==============================================================================
> --- geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/LocalServer.java (added)
> +++ geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/LocalServer.java Fri May 12 14:29:24 2006
> @@ -0,0 +1,80 @@
> +/**
> + *
> + * Copyright 2006 The Apache Software Foundation
> + *
> + * Licensed under the Apache License, Version 2.0 (the "License");
> + * you may not use this file except in compliance with the License.
> + * You may obtain a copy of the License at
> + *
> + * http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing, software
> + * distributed under the License is distributed on an "AS IS" BASIS,
> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> + * See the License for the specific language governing permissions and
> + * limitations under the License.
> + */
> +
> +package org.apache.geronimo.deployment.cli;
> +
> +import java.io.BufferedReader;
> +import java.io.File;
> +import java.io.FileReader;
> +import java.io.IOException;
> +import java.util.ArrayList;
> +import java.util.Iterator;
> +import java.util.List;
> +import java.util.Set;
> +import java.util.regex.Matcher;
> +import java.util.regex.Pattern;
> +
> +import org.apache.geronimo.gbean.AbstractName;
> +import org.apache.geronimo.gbean.AbstractNameQuery;
> +import org.apache.geronimo.kernel.GBeanNotFoundException;
> +import org.apache.geronimo.kernel.Kernel;
> +import org.apache.geronimo.kernel.config.PersistentConfigurationList;
> +import org.apache.geronimo.kernel.repository.Artifact;
> +import org.apache.geronimo.system.main.CommandLine;
> +import org.apache.geronimo.system.serverinfo.ServerInfo;
> +
> +/**
> + * @version $Rev:$ $Date:$
> + */
> +public class LocalServer extends CommandLine {
> +
> + public LocalServer(String configListLocation) throws Exception {
> + startKernel(Artifact.create("geronimo/j2ee-system//car"));
> + Runtime.getRuntime().addShutdownHook(new Thread("Geronimo shutdown thread") {
> + public void run() {
> + getKernel().shutdown();
> + }
> + });
> + List configs = getConfigurationList(configListLocation);
> + loadConfigurations(configs);
> + }
> +
> + public Kernel getKernel() {
> + return super.getKernel();
> + }
> +
> + protected List getConfigurationList(String path) throws GBeanNotFoundException, IOException {
> + ServerInfo serverInfo = (ServerInfo) getKernel().getGBean(ServerInfo.class);
> + File configFile = serverInfo.resolve(path);
> + List modules = new ArrayList();
> + BufferedReader in = new BufferedReader(new FileReader(configFile));
> + try {
> + String artifactString;
> + while ((artifactString = in.readLine()) != null) {
> + artifactString = artifactString.trim();
> + if (!artifactString.startsWith("#") && artifactString.length() > 0) {
> + Artifact artifact = Artifact.create(artifactString);
> + modules.add(artifact);
> + }
> + }
> + } finally {
> + in.close();
> + }
> + return modules;
> + }
> +
> +}
>
> Modified: geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/ServerConnection.java
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/ServerConnection.java?rev=405881&r1=405880&r2=405881&view=diff
> ==============================================================================
> --- geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/ServerConnection.java (original)
> +++ geronimo/branches/1.1/modules/deploy-tool/src/java/org/apache/geronimo/deployment/cli/ServerConnection.java Fri May 12 14:29:24 2006
> @@ -31,6 +31,7 @@
> import java.util.Map;
> import java.util.Properties;
> import java.util.jar.JarFile;
> +
> import javax.enterprise.deploy.shared.factories.DeploymentFactoryManager;
> import javax.enterprise.deploy.spi.DeploymentManager;
> import javax.enterprise.deploy.spi.exceptions.DeploymentManagerCreationException;
> @@ -40,7 +41,12 @@
> import org.apache.geronimo.deployment.plugin.factories.AuthenticationFailedException;
> import org.apache.geronimo.deployment.plugin.factories.DeploymentFactoryImpl;
> import org.apache.geronimo.deployment.plugin.jmx.JMXDeploymentManager;
> +import org.apache.geronimo.deployment.plugin.jmx.LocalDeploymentManager;
> import org.apache.geronimo.util.SimpleEncryption;
> +import org.apache.geronimo.kernel.Kernel;
> +import org.apache.geronimo.kernel.config.ConfigurationManager;
> +import org.apache.geronimo.kernel.config.ConfigurationUtil;
> +import org.apache.geronimo.kernel.config.KernelConfigurationManager;
>
> /**
> * Supports online connections to the server, via JSR-88, valid only
> @@ -50,6 +56,7 @@
> */
> public class ServerConnection {
> private final static Map OPTION_HELP = new LinkedHashMap(9);
> +
> static {
> OPTION_HELP.put("--uri", "A URI to contact the server. If not specified, the deployer defaults to " +
> "operating on a Geronimo server running on the standard port on localhost.\n" +
> @@ -69,7 +76,9 @@
> OPTION_HELP.put("--password", "Specifies a password to use to authenticate to the server.");
> OPTION_HELP.put("--syserr", "Enables error logging to syserr. Disabled by default.");
> OPTION_HELP.put("--verbose", "Enables verbose execution mode. Disabled by default.");
> + OPTION_HELP.put("--offline", "Deploy offline to a local server, using whatever deployers are available in the local server");
> }
> +
> public static Map getOptionHelp() {
> return OPTION_HELP;
> }
> @@ -80,19 +89,18 @@
> * argument). For example, if the arguments were "--user bob foo" then
> * this should return true for "--user" and "bob" and false for "foo".
> *
> - * @param args The previous arguments on the command line
> + * @param args The previous arguments on the command line
> * @param option The argument we're checking at the moment
> - *
> * @return True if the argument we're checking is part of a general argument
> */
> public static boolean isGeneralOption(List args, String option) {
> - if(OPTION_HELP.containsKey(option) || option.equals("--url")) {
> + if (OPTION_HELP.containsKey(option) || option.equals("--url")) {
> return true;
> }
> - if(args.size() == 0) {
> + if (args.size() == 0) {
> return false;
> }
> - String last = (String) args.get(args.size()-1);
> + String last = (String) args.get(args.size() - 1);
> return last.equals("--uri") || last.equals("--url") || last.equals("--driver") || last.equals("--user") ||
> last.equals("--password") || last.equals("--host") || last.equals("--port");
> }
> @@ -111,62 +119,64 @@
> Integer port = null;
> this.out = out;
> this.in = in;
> - for(int i = 0; i < args.length; i++) {
> + boolean offline = false;
> + for (int i = 0; i < args.length; i++) {
> String arg = args[i];
> - if(arg.equals("--uri") || arg.equals("--url")) {
> - if(uri != null) {
> + if (arg.equals("--uri") || arg.equals("--url")) {
> + if (uri != null) {
> throw new DeploymentSyntaxException("Cannot specify more than one URI");
> - } else if(i >= args.length-1) {
> + } else if (i >= args.length - 1) {
> throw new DeploymentSyntaxException("Must specify a URI (e.g. --uri deployer:...)");
> }
> - if(host != null || port != null) {
> + if (host != null || port != null) {
> throw new DeploymentSyntaxException("Cannot specify a URI as well as a host/port");
> }
> uri = args[++i];
> - } else if(arg.equals("--host")) {
> - if(host != null) {
> + } else if (arg.equals("--host")) {
> + if (host != null) {
> throw new DeploymentSyntaxException("Cannot specify more than one host");
> - } else if(i >= args.length-1) {
> + } else if (i >= args.length - 1) {
> throw new DeploymentSyntaxException("Must specify a hostname (e.g. --host localhost)");
> }
> - if(uri != null) {
> + if (uri != null) {
> throw new DeploymentSyntaxException("Cannot specify a URI as well as a host/port");
> }
> host = args[++i];
> - } else if(arg.equals("--port")) {
> - if(port != null) {
> + } else if (arg.equals("--port")) {
> + if (port != null) {
> throw new DeploymentSyntaxException("Cannot specify more than one port");
> - } else if(i >= args.length-1) {
> + } else if (i >= args.length - 1) {
> throw new DeploymentSyntaxException("Must specify a port (e.g. --port 1099)");
> }
> - if(uri != null) {
> + if (uri != null) {
> throw new DeploymentSyntaxException("Cannot specify a URI as well as a host/port");
> }
> try {
> port = new Integer(args[++i]);
> } catch (NumberFormatException e) {
> - throw new DeploymentSyntaxException("Port must be a number ("+e.getMessage()+")");
> + throw new DeploymentSyntaxException("Port must be a number (" + e.getMessage() + ")");
> }
> - } else if(arg.equals("--driver")) {
> - if(driver != null) {
> + } else if (arg.equals("--driver")) {
> + if (driver != null) {
> throw new DeploymentSyntaxException("Cannot specify more than one driver");
> - } else if(i >= args.length-1) {
> + } else if (i >= args.length - 1) {
> throw new DeploymentSyntaxException("Must specify a driver JAR (--driver jarfile)");
> }
> driver = args[++i];
> - } else if(arg.equals("--offline")) {
> - throw new DeploymentSyntaxException("This tool no longer handles offline deployment");
> - } else if(arg.equals("--user")) {
> - if(user != null) {
> + } else if (arg.equals("--offline")) {
> + //throw new DeploymentSyntaxException("This tool no longer handles offline deployment");
> + offline = true;
> + } else if (arg.equals("--user")) {
> + if (user != null) {
> throw new DeploymentSyntaxException("Cannot specify more than one user name");
> - } else if(i >= args.length-1) {
> + } else if (i >= args.length - 1) {
> throw new DeploymentSyntaxException("Must specify a username (--user username)");
> }
> user = args[++i];
> - } else if(arg.equals("--password")) {
> - if(password != null) {
> + } else if (arg.equals("--password")) {
> + if (password != null) {
> throw new DeploymentSyntaxException("Cannot specify more than one password");
> - } else if(i >= args.length-1) {
> + } else if (i >= args.length - 1) {
> throw new DeploymentSyntaxException("Must specify a password (--password password)");
> }
> password = args[++i];
> @@ -175,23 +185,37 @@
> } else if (arg.equals("--syserr")) {
> logToSysErr = true;
> } else {
> - throw new DeploymentException("Invalid option "+arg);
> + throw new DeploymentException("Invalid option " + arg);
> }
> }
> - if((driver != null) && uri == null) {
> + if ((driver != null) && uri == null) {
> throw new DeploymentSyntaxException("A custom driver requires a custom URI");
> }
> - if(host != null || port != null) {
> - uri = DEFAULT_URI+"://"+(host == null ? "" : host)+(port == null ? "" : ":"+port);
> + if (host != null || port != null) {
> + uri = DEFAULT_URI + "://" + (host == null ? "" : host) + (port == null ? "" : ":" + port);
> + }
> + if (offline) {
> + LocalServer localServer;
> + try {
> + localServer = new LocalServer("var/config/offline-deployer-list");
> + } catch (Exception e) {
> + throw new DeploymentException("Could not start local server", e);
> + }
> + Kernel kernel = localServer.getKernel();
> + ConfigurationManager configurationManager = ConfigurationUtil.getConfigurationManager(kernel);
> + configurationManager.setOnline(false);
> +
> + manager = new LocalDeploymentManager(localServer.getKernel());
> + } else {
> + tryToConnect(uri, driver, user, password, true);
> }
> - tryToConnect(uri, driver, user, password, true);
> - if(manager == null) {
> + if (manager == null) {
> throw new DeploymentException("Unexpected error; connection failed.");
> }
> }
>
> public void close() throws DeploymentException {
> - if(manager != null) {
> + if (manager != null) {
> manager.release();
> }
> }
> @@ -206,55 +230,59 @@
>
> private void tryToConnect(String argURI, String driver, String user, String password, boolean authPrompt) throws DeploymentException {
> DeploymentFactoryManager mgr = DeploymentFactoryManager.getInstance();
> - if(driver != null) {
> + if (driver != null) {
> loadDriver(driver, mgr);
> } else {
> mgr.registerDeploymentFactory(new DeploymentFactoryImpl());
> }
> String useURI = argURI == null ? DEFAULT_URI : argURI;
>
> - if(authPrompt && user == null && password == null) {
> + if (authPrompt && user == null && password == null) {
> InputStream in;
> // First check for .geronimo-deployer on class path (e.g. packaged in deployer.jar)
> in = ServerConnection.class.getResourceAsStream("/.geronimo-deployer");
> // If not there, check in home directory
> - if(in == null) {
> + if (in == null) {
> File authFile = new File(System.getProperty("user.home"), ".geronimo-deployer");
> - if(authFile.exists() && authFile.canRead()) {
> + if (authFile.exists() && authFile.canRead()) {
> try {
> in = new BufferedInputStream(new FileInputStream(authFile));
> - } catch (FileNotFoundException e) {}
> + } catch (FileNotFoundException e) {
> + }
> }
> }
> - if(in != null) {
> + if (in != null) {
> try {
> Properties props = new Properties();
> props.load(in);
> - String encryped = props.getProperty("login."+useURI);
> - if(encryped != null) {
> - if(encryped.startsWith("{Standard}")) {
> + String encryped = props.getProperty("login." + useURI);
> + if (encryped != null) {
> + if (encryped.startsWith("{Standard}")) {
> SavedAuthentication auth = (SavedAuthentication) SimpleEncryption.decrypt(encryped.substring(10));
> - if(auth.uri.equals(useURI)) {
> + if (auth.uri.equals(useURI)) {
> user = auth.user;
> password = new String(auth.password);
> }
> - } else if(encryped.startsWith("{Plain}")) {
> + } else if (encryped.startsWith("{Plain}")) {
> int pos = encryped.indexOf("/");
> user = encryped.substring(7, pos);
> - password = encryped.substring(pos+1);
> + password = encryped.substring(pos + 1);
> } else {
> System.out.print(DeployUtils.reformat("Unknown encryption used in saved login file", 4, 72));
> }
> }
> } catch (IOException e) {
> - System.out.print(DeployUtils.reformat("Unable to read authentication from saved login file: "+e.getMessage(), 4, 72));
> + System.out.print(DeployUtils.reformat("Unable to read authentication from saved login file: " + e.getMessage(), 4, 72));
> } finally {
> - try {in.close();}catch(IOException e) {}
> + try {
> + in.close();
> + } catch (IOException e) {
> + }
> }
> }
> }
>
> - if(authPrompt && !useURI.equals(DEFAULT_URI) && user == null && password == null) {
> + if (authPrompt && !useURI.equals(DEFAULT_URI) && user == null && password == null) {
> // Non-standard URI, but no authentication information
> doAuthPromptAndRetry(useURI, user, password);
> return;
> @@ -262,15 +290,15 @@
> try {
> manager = mgr.getDeploymentManager(useURI, user, password);
> auth = new SavedAuthentication(useURI, user, password == null ? null : password.toCharArray());
> - } catch(AuthenticationFailedException e) { // server's there, you just can't talk to it
> - if(authPrompt) {
> + } catch (AuthenticationFailedException e) { // server's there, you just can't talk to it
> + if (authPrompt) {
> doAuthPromptAndRetry(useURI, user, password);
> return;
> } else {
> throw new DeploymentException("Login Failed");
> }
> - } catch(DeploymentManagerCreationException e) {
> - throw new DeploymentException("Unable to connect to server at "+useURI+" -- "+e.getMessage());
> + } catch (DeploymentManagerCreationException e) {
> + throw new DeploymentException("Unable to connect to server at " + useURI + " -- " + e.getMessage());
> }
> }
>
> @@ -282,37 +310,37 @@
>
> private void loadDriver(String driver, DeploymentFactoryManager mgr) throws DeploymentException {
> File file = new File(driver);
> - if(!file.exists() || !file.canRead() || !DeployUtils.isJarFile(file)) {
> - throw new DeploymentSyntaxException("Driver '"+file.getAbsolutePath()+"' is not a readable JAR file");
> + if (!file.exists() || !file.canRead() || !DeployUtils.isJarFile(file)) {
> + throw new DeploymentSyntaxException("Driver '" + file.getAbsolutePath() + "' is not a readable JAR file");
> }
> String className = null;
> try {
> JarFile jar = new JarFile(file);
> className = jar.getManifest().getMainAttributes().getValue("J2EE-DeploymentFactory-Implementation-Class");
> - if(className == null) {
> - throw new DeploymentException("The driver JAR "+file.getAbsolutePath()+" does not specify a J2EE-DeploymentFactory-Implementation-Class; cannot load driver.");
> + if (className == null) {
> + throw new DeploymentException("The driver JAR " + file.getAbsolutePath() + " does not specify a J2EE-DeploymentFactory-Implementation-Class; cannot load driver.");
> }
> jar.close();
> DeploymentFactory factory = (DeploymentFactory) Class.forName(className).newInstance();
> mgr.registerDeploymentFactory(factory);
> - } catch(DeploymentException e) {
> + } catch (DeploymentException e) {
> throw e;
> - } catch(Exception e) {
> - throw new DeploymentSyntaxException("Unable to load driver class "+className+" from JAR "+file.getAbsolutePath(), e);
> + } catch (Exception e) {
> + throw new DeploymentSyntaxException("Unable to load driver class " + className + " from JAR " + file.getAbsolutePath(), e);
> }
> }
>
> private void doAuthPromptAndRetry(String uri, String user, String password) throws DeploymentException {
> try {
> - if(user == null) {
> + if (user == null) {
> out.print("Username: ");
> out.flush();
> user = in.readLine();
> }
> - if(password == null) {
> + if (password == null) {
> password = new PasswordPrompt("Password: ", out).getPassword(in);
> }
> - } catch(IOException e) {
> + } catch (IOException e) {
> throw new DeploymentException("Unable to prompt for login", e);
> }
> tryToConnect(uri, null, user, password, false);
> @@ -349,13 +377,13 @@
> int priority = Thread.currentThread().getPriority();
> try {
> Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
> - String fullPrompt = "\r"+prompt+" "+"\r"+prompt;
> + String fullPrompt = "\r" + prompt + " " + "\r" + prompt;
> StringBuffer clearline = new StringBuffer();
> clearline.append('\r');
> - for(int i=prompt.length()+10; i>=0; i--) {
> + for (int i = prompt.length() + 10; i >= 0; i--) {
> clearline.append(' ');
> }
> - while(!done) {
> + while (!done) {
> out.print(fullPrompt);
> out.flush();
> Thread.sleep(1);
> @@ -377,7 +405,7 @@
> * the entered password. For this to make sense, the input reader
> * here must be part of the same console as the output writer passed
> * to the constructor.
> - *
> + * <p/>
> * For higher security, should return a char[], but that will just
> * be defeated by the JSR-88 call that takes a String anyway, so
> * why bother?
>
> Modified: geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentConfigurationManager.java
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentConfigurationManager.java?rev=405881&r1=405880&r2=405881&view=diff
> ==============================================================================
> --- geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentConfigurationManager.java (original)
> +++ geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentConfigurationManager.java Fri May 12 14:29:24 2006
> @@ -84,6 +84,16 @@
> return super.getArtifactResolver();
> }
>
> + /**
> + * This configuration manager never starts any configurations
> + * @return false
> + */
> + public boolean isOnline() {
> + return false;
> + }
> +
> + public void setOnline(boolean online) {
> + }
>
> //
> // LOAD
>
> Modified: geronimo/branches/1.1/modules/deployment/src/test/org/apache/geronimo/deployment/SingleFileHotDeployerTest.java
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/deployment/src/test/org/apache/geronimo/deployment/SingleFileHotDeployerTest.java?rev=405881&r1=405880&r2=405881&view=diff
> ==============================================================================
> --- geronimo/branches/1.1/modules/deployment/src/test/org/apache/geronimo/deployment/SingleFileHotDeployerTest.java (original)
> +++ geronimo/branches/1.1/modules/deployment/src/test/org/apache/geronimo/deployment/SingleFileHotDeployerTest.java Fri May 12 14:29:24 2006
> @@ -453,5 +453,12 @@
> public ArtifactResolver getArtifactResolver() {
> return artifactResolver;
> }
> +
> + public boolean isOnline() {
> + return true;
> + }
> +
> + public void setOnline(boolean online) {
> + }
> }
> }
>
> Modified: geronimo/branches/1.1/modules/kernel/project.xml
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/kernel/project.xml?rev=405881&r1=405880&r2=405881&view=diff
> ==============================================================================
> --- geronimo/branches/1.1/modules/kernel/project.xml (original)
> +++ geronimo/branches/1.1/modules/kernel/project.xml Fri May 12 14:29:24 2006
> @@ -103,33 +103,4 @@
> </dependency>
> </dependencies>
>
> - <build>
> - <resources>
> - <resource>
> - <directory>${basedir}/src/java</directory>
> - <includes>
> - <include>**/*.xml</include>
> - <include>**/*.properties</include>
> - </includes>
> - </resource>
> - </resources>
> - <unitTest>
> - <includes>
> - <include>**/*Test.java</include>
> - </includes>
> - <excludes>
> - <exclude>**/Abstract*.java</exclude>
> - </excludes>
> - <resources>
> - <resource>
> - <directory>${basedir}/target/test-xdoclet/jmx/org/apache/geronimo/tools/xdoclet</directory>
> - <targetPath>org/apache/geronimo/tools/xdoclet</targetPath>
> - <includes>
> - <include>*.xml</include>
> - </includes>
> - </resource>
> - </resources>
> - </unitTest>
> - </build>
> -
> </project>
>
> Modified: geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/ConfigurationManager.java
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/ConfigurationManager.java?rev=405881&r1=405880&r2=405881&view=diff
> ==============================================================================
> --- geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/ConfigurationManager.java (original)
> +++ geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/ConfigurationManager.java Fri May 12 14:29:24 2006
> @@ -463,4 +463,13 @@
> * configuration manager, etc.
> */
> ArtifactResolver getArtifactResolver();
> +
> + /**
> + * Online means full functionality. Offline typically means that configurations will never be started,
> + * although they may be marked in the persistent configuration list.
> + *
> + * @return online status of ConfigurationManager
> + */
> + boolean isOnline();
> + void setOnline(boolean online);
> }
>
> Modified: geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/KernelConfigurationManager.java
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/KernelConfigurationManager.java?rev=405881&r1=405880&r2=405881&view=diff
> ==============================================================================
> --- geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/KernelConfigurationManager.java (original)
> +++ geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/KernelConfigurationManager.java Fri May 12 14:29:24 2006
> @@ -57,6 +57,7 @@
> private final ArtifactManager artifactManager;
> protected final ClassLoader classLoader;
> private final ShutdownHook shutdownHook;
> + private boolean online = true;
>
> public KernelConfigurationManager(Kernel kernel,
> Collection stores,
> @@ -178,11 +179,21 @@
> }
>
> public void start(Configuration configuration) throws InvalidConfigException {
> - ConfigurationUtil.startConfigurationGBeans(configuration.getAbstractName(), configuration, kernel);
> + if (online) {
> + ConfigurationUtil.startConfigurationGBeans(configuration.getAbstractName(), configuration, kernel);
> + }
>
> if (configurationList != null && configuration.getConfigurationData().isAutoStart()) {
> configurationList.startConfiguration(configuration.getId());
> }
> + }
> +
> + public boolean isOnline() {
> + return online;
> + }
> +
> + public void setOnline(boolean online) {
> + this.online = online;
> }
>
> protected void stop(Configuration configuration) {
>
> Modified: geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java?rev=405881&r1=405880&r2=405881&view=diff
> ==============================================================================
> --- geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java (original)
> +++ geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java Fri May 12 14:29:24 2006
> @@ -246,7 +246,7 @@
> }
> }
>
> - throw new ClassNotFoundException(name);
> + throw new ClassNotFoundException(name + " in classloader " + id);
> }
>
> private boolean isNonOverridableClass(String name) {
>
> Modified: geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/SimpleConfigurationManager.java
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/SimpleConfigurationManager.java?rev=405881&r1=405880&r2=405881&view=diff
> ==============================================================================
> --- geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/SimpleConfigurationManager.java (original)
> +++ geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/SimpleConfigurationManager.java Fri May 12 14:29:24 2006
> @@ -1226,6 +1226,17 @@
> return artifactResolver;
> }
>
> + /**
> + * this configuration manager never starts configurations.
> + * @return false
> + */
> + public boolean isOnline() {
> + return false;
> + }
> +
> + public void setOnline(boolean online) {
> + }
> +
> private List getStoreList() {
> return new ArrayList(stores);
> }
>
> Modified: geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLine.java
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLine.java?rev=405881&r1=405880&r2=405881&view=diff
> ==============================================================================
> --- geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLine.java (original)
> +++ geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLine.java Fri May 12 14:29:24 2006
> @@ -20,6 +20,9 @@
> import java.io.InputStream;
> import java.util.Iterator;
> import java.util.List;
> +import java.util.Enumeration;
> +import java.net.URL;
> +
> import javax.management.ObjectName;
>
> import org.apache.commons.logging.Log;
> @@ -31,6 +34,9 @@
> import org.apache.geronimo.kernel.KernelFactory;
> import org.apache.geronimo.kernel.config.ConfigurationManager;
> import org.apache.geronimo.kernel.config.ConfigurationUtil;
> +import org.apache.geronimo.kernel.config.NoSuchConfigException;
> +import org.apache.geronimo.kernel.config.LifecycleException;
> +import org.apache.geronimo.kernel.config.ConfigurationData;
> import org.apache.geronimo.kernel.log.GeronimoLogging;
> import org.apache.geronimo.kernel.repository.Artifact;
> import org.apache.geronimo.gbean.AbstractName;
> @@ -61,7 +67,7 @@
> // the interesting entries from the manifest
> CommandLineManifest manifest = CommandLineManifest.getManifestEntries();
> List configurations = manifest.getConfigurations();
> - ObjectName mainGBean = manifest.getMainGBean();
> + AbstractName mainGBean = manifest.getMainGBean();
> String mainMethod = manifest.getMainMethod();
>
> new CommandLine().invokeMainGBean(configurations, mainGBean, mainMethod, args);
> @@ -78,34 +84,9 @@
> private Kernel kernel;
> private AbstractName configurationName;
>
> - /**
> - * @deprecated use the next one with AbstractName
> - *
> - * @param configurations
> - * @param mainGBean
> - * @param mainMethod
> - * @param args
> - * @throws Exception
> - */
> - public void invokeMainGBean(List configurations, ObjectName mainGBean, String mainMethod, String[] args) throws Exception {
> - startKernel(configurations);
> -
> - log.info("Server startup completed");
> -
> - // invoke the main method
> - kernel.invoke(
> - mainGBean,
> - mainMethod,
> - new Object[]{args},
> - new String[]{String[].class.getName()});
> -
> - log.info("Server shutdown begun");
> -
> - stopKernel();
> - }
> -
> public void invokeMainGBean(List configurations, AbstractName mainGBean, String mainMethod, String[] args) throws Exception {
> - startKernel(configurations);
> + startKernel();
> + loadConfigurations(configurations);
>
> log.info("Server startup completed");
>
> @@ -121,7 +102,7 @@
> stopKernel();
> }
>
> - protected void startKernel(List configurations) throws Exception {
> + protected void startKernel() throws Exception {
> ClassLoader classLoader = CommandLine.class.getClassLoader();
> InputStream in = classLoader.getResourceAsStream("META-INF/config.ser");
>
> @@ -132,6 +113,31 @@
> // load the configuration
> configurationName = ConfigurationUtil.loadBootstrapConfiguration(kernel, in, classLoader);
>
> + }
> +
> + protected void startKernel(Artifact moduleId) throws Exception {
> + // boot the kernel
> + kernel = KernelFactory.newInstance().createKernel("geronimo");
> + kernel.boot();
> + ClassLoader classLoader = CommandLine.class.getClassLoader();
> + for (Enumeration modules = classLoader.getResources("META-INF/config.ser"); modules.hasMoreElements(); ) {
> + URL moduleDataURL = (URL) modules.nextElement();
> + InputStream in = moduleDataURL.openStream();
> + try {
> + ConfigurationData moduleData = ConfigurationUtil.readConfigurationData(in);
> + if (moduleId.matches(moduleData.getId())) {
> + // load the configuration
> + configurationName = ConfigurationUtil.loadBootstrapConfiguration(kernel, moduleData, classLoader);
> + return;
> + }
> + } finally {
> + in.close();
> + }
> + }
> + throw new NoSuchConfigException(moduleId);
> + }
> +
> + protected void loadConfigurations(List configurations) throws NoSuchConfigException, LifecycleException {
> // load and start the configurations
> ConfigurationManager configurationManager = ConfigurationUtil.getConfigurationManager(kernel);
> try {
>
> Modified: geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLineManifest.java
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLineManifest.java?rev=405881&r1=405880&r2=405881&view=diff
> ==============================================================================
> --- geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLineManifest.java (original)
> +++ geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/main/CommandLineManifest.java Fri May 12 14:29:24 2006
> @@ -30,6 +30,8 @@
> import javax.management.ObjectName;
> import javax.management.MalformedObjectNameException;
>
> +import org.apache.geronimo.gbean.AbstractName;
> +
> /**
> *
> *
> @@ -65,11 +67,11 @@
> // get the main gbean class
> String mainGBeanString = mainAttributes.getValue(MAIN_GBEAN);
>
> - ObjectName mainGBean = null;
> + AbstractName mainGBean = null;
> if(mainGBeanString != null) {
> try {
> - mainGBean = new ObjectName(mainGBeanString);
> - } catch (MalformedObjectNameException e) {
> + mainGBean = new AbstractName(new URI(mainGBeanString));
> + } catch (URISyntaxException e) {
> System.err.println("Invalid Main-GBean name: " + mainGBeanString);
> System.exit(1);
> throw new AssertionError();
> @@ -119,13 +121,13 @@
> return commandLineManifest;
> }
>
> - private final ObjectName mainGBean;
> + private final AbstractName mainGBean;
> private final String mainMethod;
> private final List configurations;
> private final List endorsedDirs;
> private final List extensionDirs;
>
> - public CommandLineManifest(ObjectName mainGBean, String mainMethod, List configurations, List endorsedDirs, List extensionDirs) {
> + public CommandLineManifest(AbstractName mainGBean, String mainMethod, List configurations, List endorsedDirs, List extensionDirs) {
> this.mainGBean = mainGBean;
> this.mainMethod = mainMethod;
> this.configurations = Collections.unmodifiableList(configurations);
> @@ -133,7 +135,7 @@
> this.extensionDirs = extensionDirs;
> }
>
> - public ObjectName getMainGBean() {
> + public AbstractName getMainGBean() {
> return mainGBean;
> }
>
>
> Modified: geronimo/branches/1.1/modules/system/src/test/org/apache/geronimo/system/plugin/PluginInstallerTest.java
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/system/src/test/org/apache/geronimo/system/plugin/PluginInstallerTest.java?rev=405881&r1=405880&r2=405881&view=diff
> ==============================================================================
> --- geronimo/branches/1.1/modules/system/src/test/org/apache/geronimo/system/plugin/PluginInstallerTest.java (original)
> +++ geronimo/branches/1.1/modules/system/src/test/org/apache/geronimo/system/plugin/PluginInstallerTest.java Fri May 12 14:29:24 2006
> @@ -123,6 +123,7 @@
> }
>
> private static class MockConfigManager implements ConfigurationManager {
> +
> public boolean isInstalled(Artifact configurationId) {
> return false;
> }
> @@ -253,6 +254,13 @@
>
> public ArtifactResolver getArtifactResolver() {
> return null;
> + }
> +
> + public boolean isOnline() {
> + return true;
> + }
> +
> + public void setOnline(boolean online) {
> }
> }
> }
>
> Modified: geronimo/branches/1.1/plugins/geronimo-assembly-plugin/plugin.jelly
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/plugins/geronimo-assembly-plugin/plugin.jelly?rev=405881&r1=405880&r2=405881&view=diff
> ==============================================================================
> --- geronimo/branches/1.1/plugins/geronimo-assembly-plugin/plugin.jelly (original)
> +++ geronimo/branches/1.1/plugins/geronimo-assembly-plugin/plugin.jelly Fri May 12 14:29:24 2006
> @@ -43,6 +43,10 @@
> <ant:mkdir dir="${geronimo.assembly.dest}/var/config"/>
> <velocity:merge basedir="${geronimo.assembly.src}/var/config" template="config.xml"
> name="${geronimo.assembly.dest}/var/config/config.xml"/>
> + <velocity:merge basedir="${geronimo.assembly.src}/var/config" template="config.xml"
> + name="${geronimo.assembly.dest}/var/config/config.xml.original"/>
> + <velocity:merge basedir="${geronimo.assembly.src}/var/config" template="offline-deployer-list"
> + name="${geronimo.assembly.dest}/var/config/offline-deployer-list"/>
> </goal>
>
> <goal name="assemble:assemble-lib">
>
> Modified: geronimo/branches/1.1/plugins/geronimo-assembly-plugin/project.xml
> URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/plugins/geronimo-assembly-plugin/project.xml?rev=405881&r1=405880&r2=405881&view=diff
> ==============================================================================
> --- geronimo/branches/1.1/plugins/geronimo-assembly-plugin/project.xml (original)
> +++ geronimo/branches/1.1/plugins/geronimo-assembly-plugin/project.xml Fri May 12 14:29:24 2006
> @@ -23,7 +23,7 @@
> <id>geronimo-assembly-plugin</id>
> <name>Geronimo :: Maven Assembly Plugin</name>
> <description>A plugin used to assemble a distribution of Geronimo</description>
> - <currentVersion>1.1.0-11</currentVersion>
> + <currentVersion>1.1.0-12</currentVersion>
>
> <dependencies>
> <dependency>
>
>
>
>
--
Joe Bohn
joe.bohn at earthlink.net
"He is no fool who gives what he cannot keep, to gain what he cannot
lose." -- Jim Elliot