You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by Joe Bohn <jo...@earthlink.net> on 2006/05/16 21:58:24 UTC

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>.
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