You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by js...@apache.org on 2003/08/14 11:37:23 UTC
cvs commit: incubator-geronimo/modules/core/src/conf jsr88-product-provider-manifest.mf
jstrachan 2003/08/14 02:37:23
Added: modules/core/src/java/org/apache/geronimo/enterprise/deploy/provider
ServerConnection.java
GeronimoDeploymentManager.java
NoServerConnection.java
GeronimoDeploymentFactory.java
modules/core/src/conf jsr88-product-provider-manifest.mf
Log:
applied patch by Aaron Mulder for an initial JSR 88 server provider
Revision Changes Path
1.1 incubator-geronimo/modules/core/src/java/org/apache/geronimo/enterprise/deploy/provider/ServerConnection.java
Index: ServerConnection.java
===================================================================
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" and
* "Apache Geronimo" must not be used to endorse or promote products
* derived from this software without prior written permission. For
* written permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* "Apache Geronimo", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
* ====================================================================
*/
package org.apache.geronimo.enterprise.deploy.provider;
import java.io.File;
import java.io.InputStream;
import javax.enterprise.deploy.spi.Target;
import javax.enterprise.deploy.spi.TargetModuleID;
import javax.enterprise.deploy.spi.status.ProgressObject;
import javax.enterprise.deploy.spi.exceptions.TargetException;
import javax.enterprise.deploy.shared.ModuleType;
/**
* Encapsulates all the JSR-88 DeploymentManager methods that ordinarily
* require a connection to the application server in order to execute.
* Also includes some Geronimo-specific method to gather deployment
* information from the server (such as getting a list of EJBs deployed
* to provide as options when resolving an EJB reference).
*
* @version $Revision: 1.1 $
*/
public interface ServerConnection {
/**
* Releases any server resources and closes the connection to the server.
*/
public void close();
/**
* @see javax.enterprise.deploy.spi.DeploymentManager#getTargets
*/
public Target[] getTargets() throws IllegalStateException;
/**
* @see javax.enterprise.deploy.spi.DeploymentManager#getRunningModules
*/
public TargetModuleID[] getRunningModules(ModuleType moduleType, Target[] targetList) throws TargetException, IllegalStateException;
/**
* @see javax.enterprise.deploy.spi.DeploymentManager#getNonRunningModules
*/
public TargetModuleID[] getNonRunningModules(ModuleType moduleType, Target[] targetList) throws TargetException, IllegalStateException;
/**
* @see javax.enterprise.deploy.spi.DeploymentManager#getAvailableModules
*/
public TargetModuleID[] getAvailableModules(ModuleType moduleType, Target[] targetList) throws TargetException, IllegalStateException;
/**
* @see javax.enterprise.deploy.spi.DeploymentManager#distribute(javax.enterprise.deploy.spi.Target[], java.io.File, java.io.File)
*/
public ProgressObject distribute(Target[] targetList, File moduleArchive, File deploymentPlan) throws IllegalStateException;
/**
* @see javax.enterprise.deploy.spi.DeploymentManager#distribute(javax.enterprise.deploy.spi.Target[], java.io.InputStream, java.io.InputStream)
*/
public ProgressObject distribute(Target[] targetList, InputStream moduleArchive, InputStream deploymentPlan) throws IllegalStateException;
/**
* @see javax.enterprise.deploy.spi.DeploymentManager#start
*/
public ProgressObject start(TargetModuleID[] moduleIDList) throws IllegalStateException;
/**
* @see javax.enterprise.deploy.spi.DeploymentManager#stop
*/
public ProgressObject stop(TargetModuleID[] moduleIDList) throws IllegalStateException;
/**
* @see javax.enterprise.deploy.spi.DeploymentManager#undeploy
*/
public ProgressObject undeploy(TargetModuleID[] moduleIDList) throws IllegalStateException;
/**
* @see javax.enterprise.deploy.spi.DeploymentManager#isRedeploySupported
*/
public boolean isRedeploySupported();
/**
* @see javax.enterprise.deploy.spi.DeploymentManager#redeploy(javax.enterprise.deploy.spi.TargetModuleID[], java.io.File, java.io.File)
*/
public ProgressObject redeploy(TargetModuleID[] moduleIDList, File moduleArchive, File deploymentPlan) throws UnsupportedOperationException, IllegalStateException;
/**
* @see javax.enterprise.deploy.spi.DeploymentManager#redeploy(javax.enterprise.deploy.spi.TargetModuleID[], java.io.InputStream, java.io.InputStream)
*/
public ProgressObject redeploy(TargetModuleID[] moduleIDList, InputStream moduleArchive, InputStream deploymentPlan) throws UnsupportedOperationException, IllegalStateException;
}
1.1 incubator-geronimo/modules/core/src/java/org/apache/geronimo/enterprise/deploy/provider/GeronimoDeploymentManager.java
Index: GeronimoDeploymentManager.java
===================================================================
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" and
* "Apache Geronimo" must not be used to endorse or promote products
* derived from this software without prior written permission. For
* written permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* "Apache Geronimo", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
* ====================================================================
*/
package org.apache.geronimo.enterprise.deploy.provider;
import java.io.File;
import java.io.InputStream;
import java.util.Locale;
import javax.enterprise.deploy.spi.DeploymentManager;
import javax.enterprise.deploy.spi.Target;
import javax.enterprise.deploy.spi.TargetModuleID;
import javax.enterprise.deploy.spi.DeploymentConfiguration;
import javax.enterprise.deploy.spi.status.ProgressObject;
import javax.enterprise.deploy.spi.exceptions.TargetException;
import javax.enterprise.deploy.spi.exceptions.InvalidModuleException;
import javax.enterprise.deploy.spi.exceptions.DConfigBeanVersionUnsupportedException;
import javax.enterprise.deploy.shared.ModuleType;
import javax.enterprise.deploy.shared.DConfigBeanVersionType;
import javax.enterprise.deploy.model.DeployableObject;
/**
* The Geronimo implementation of the JSR-88 DeploymentManager interface.
* This same class is used for both connected mode and disconnected mode.
* It uses a plugin to manage that. Currently only J2EE 1.4 is supported.
*
* @version $Revision: 1.1 $
*/
public class GeronimoDeploymentManager implements DeploymentManager {
private ServerConnection server; // a connection to an application server
GeronimoDeploymentManager(ServerConnection server) {
this.server = server;
}
public DeploymentConfiguration createConfiguration(DeployableObject dObj) throws InvalidModuleException {
return null; //todo
}
/**
* Closes the current server connection, and replaces it with one that
* behaves in disconnected mode.
*/
public void release() {
server.close();
server = new NoServerConnection();
}
/**
* Currently only the default locale is supported.
*/
public Locale getDefaultLocale() {
return Locale.getDefault();
}
/**
* Currently only the default locale is supported.
*/
public Locale getCurrentLocale() {
return Locale.getDefault();
}
/**
* Currently only the default locale is supported.
*
* @throws UnsupportedOperationException Thrown if the argument locale is
* not the default locale, as changing Locales is not supported.
*/
public void setLocale(Locale locale) throws UnsupportedOperationException {
if(!locale.equals(Locale.getDefault())) {
throw new UnsupportedOperationException();
}
}
/**
* Currently only the default locale is supported.
*/
public Locale[] getSupportedLocales() {
return new Locale[]{Locale.getDefault()};
}
/**
* Currently only the default locale is supported.
*/
public boolean isLocaleSupported(Locale locale) {
return locale.equals(Locale.getDefault());
}
/**
* Currently only J2EE 1.4 is supported.
*/
public DConfigBeanVersionType getDConfigBeanVersion() {
return DConfigBeanVersionType.V1_4;
}
/**
* Currently only J2EE 1.4 is supported.
*/
public boolean isDConfigBeanVersionSupported(DConfigBeanVersionType version) {
return version.getValue() == DConfigBeanVersionType.V1_4.getValue();
}
/**
* Currently only J2EE 1.4 is supported.
*
* @throws DConfigBeanVersionUnsupportedException Occurs when the argument
* version is not 1.4.
*/
public void setDConfigBeanVersion(DConfigBeanVersionType version) throws DConfigBeanVersionUnsupportedException {
if(version.getValue() != DConfigBeanVersionType.V1_4.getValue()) {
throw new DConfigBeanVersionUnsupportedException("This implementation only supports J2EE 1.4");
}
}
// ---- All of the methods below are handled by the ServerConnection -----
public Target[] getTargets() throws IllegalStateException {
return server.getTargets();
}
public TargetModuleID[] getRunningModules(ModuleType moduleType, Target[] targetList) throws TargetException, IllegalStateException {
return server.getRunningModules(moduleType, targetList);
}
public TargetModuleID[] getNonRunningModules(ModuleType moduleType, Target[] targetList) throws TargetException, IllegalStateException {
return server.getNonRunningModules(moduleType, targetList);
}
public TargetModuleID[] getAvailableModules(ModuleType moduleType, Target[] targetList) throws TargetException, IllegalStateException {
return server.getAvailableModules(moduleType, targetList);
}
public ProgressObject distribute(Target[] targetList, File moduleArchive, File deploymentPlan) throws IllegalStateException {
return server.distribute(targetList, moduleArchive, deploymentPlan);
}
public ProgressObject distribute(Target[] targetList, InputStream moduleArchive, InputStream deploymentPlan) throws IllegalStateException {
return server.distribute(targetList, moduleArchive, deploymentPlan);
}
public ProgressObject start(TargetModuleID[] moduleIDList) throws IllegalStateException {
return server.start(moduleIDList);
}
public ProgressObject stop(TargetModuleID[] moduleIDList) throws IllegalStateException {
return server.stop(moduleIDList);
}
public ProgressObject undeploy(TargetModuleID[] moduleIDList) throws IllegalStateException {
return server.undeploy(moduleIDList);
}
public boolean isRedeploySupported() {
return server.isRedeploySupported();
}
public ProgressObject redeploy(TargetModuleID[] moduleIDList, File moduleArchive, File deploymentPlan) throws UnsupportedOperationException, IllegalStateException {
return server.redeploy(moduleIDList, moduleArchive, deploymentPlan);
}
public ProgressObject redeploy(TargetModuleID[] moduleIDList, InputStream moduleArchive, InputStream deploymentPlan) throws UnsupportedOperationException, IllegalStateException {
return server.redeploy(moduleIDList, moduleArchive, deploymentPlan);
}
}
1.1 incubator-geronimo/modules/core/src/java/org/apache/geronimo/enterprise/deploy/provider/NoServerConnection.java
Index: NoServerConnection.java
===================================================================
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" and
* "Apache Geronimo" must not be used to endorse or promote products
* derived from this software without prior written permission. For
* written permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* "Apache Geronimo", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
* ====================================================================
*/
package org.apache.geronimo.enterprise.deploy.provider;
import java.io.File;
import java.io.InputStream;
import javax.enterprise.deploy.spi.Target;
import javax.enterprise.deploy.spi.TargetModuleID;
import javax.enterprise.deploy.spi.status.ProgressObject;
import javax.enterprise.deploy.spi.exceptions.TargetException;
import javax.enterprise.deploy.shared.ModuleType;
/**
* An implementation of ServerConnection used when there is not currently any
* connection to a server. This throws an IllegalArgumentException for any
* call, which is the prescribed behavior when one of these methods is called
* on a disconnected DeploymentManager.
*
* @version $Revision: 1.1 $
*/
public class NoServerConnection implements ServerConnection {
/**
* Does nothing (there is no connection to close).
*/
public void close() {}
/**
* @throws IllegalStateException Always thrown, as there is no server available.
*/
public Target[] getTargets() throws IllegalStateException {
throw new IllegalStateException();
}
/**
* @throws IllegalStateException Always thrown, as there is no server available.
*/
public TargetModuleID[] getRunningModules(ModuleType moduleType, Target[] targetList) throws TargetException, IllegalStateException {
throw new IllegalStateException();
}
/**
* @throws IllegalStateException Always thrown, as there is no server available.
*/
public TargetModuleID[] getNonRunningModules(ModuleType moduleType, Target[] targetList) throws TargetException, IllegalStateException {
throw new IllegalStateException();
}
/**
* @throws IllegalStateException Always thrown, as there is no server available.
*/
public TargetModuleID[] getAvailableModules(ModuleType moduleType, Target[] targetList) throws TargetException, IllegalStateException {
throw new IllegalStateException();
}
/**
* @throws IllegalStateException Always thrown, as there is no server available.
*/
public ProgressObject distribute(Target[] targetList, File moduleArchive, File deploymentPlan) throws IllegalStateException {
throw new IllegalStateException();
}
/**
* @throws IllegalStateException Always thrown, as there is no server available.
*/
public ProgressObject distribute(Target[] targetList, InputStream moduleArchive, InputStream deploymentPlan) throws IllegalStateException {
throw new IllegalStateException();
}
/**
* @throws IllegalStateException Always thrown, as there is no server available.
*/
public ProgressObject start(TargetModuleID[] moduleIDList) throws IllegalStateException {
throw new IllegalStateException();
}
/**
* @throws IllegalStateException Always thrown, as there is no server available.
*/
public ProgressObject stop(TargetModuleID[] moduleIDList) throws IllegalStateException {
throw new IllegalStateException();
}
/**
* @throws IllegalStateException Always thrown, as there is no server available.
*/
public ProgressObject undeploy(TargetModuleID[] moduleIDList) throws IllegalStateException {
throw new IllegalStateException();
}
/**
* Can't redeploy when there's not a server connection.
* @return <tt>false</tt>
*/
public boolean isRedeploySupported() {
return false;
}
/**
* @throws IllegalStateException Always thrown, as there is no server available.
*/
public ProgressObject redeploy(TargetModuleID[] moduleIDList, File moduleArchive, File deploymentPlan) throws UnsupportedOperationException, IllegalStateException {
return null;
}
/**
* @throws IllegalStateException Always thrown, as there is no server available.
*/
public ProgressObject redeploy(TargetModuleID[] moduleIDList, InputStream moduleArchive, InputStream deploymentPlan) throws UnsupportedOperationException, IllegalStateException {
return null;
}
}
1.1 incubator-geronimo/modules/core/src/java/org/apache/geronimo/enterprise/deploy/provider/GeronimoDeploymentFactory.java
Index: GeronimoDeploymentFactory.java
===================================================================
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" and
* "Apache Geronimo" must not be used to endorse or promote products
* derived from this software without prior written permission. For
* written permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* "Apache Geronimo", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
* ====================================================================
*/
package org.apache.geronimo.enterprise.deploy.provider;
import javax.enterprise.deploy.spi.factories.DeploymentFactory;
import javax.enterprise.deploy.spi.DeploymentManager;
import javax.enterprise.deploy.spi.exceptions.DeploymentManagerCreationException;
import javax.enterprise.deploy.shared.factories.DeploymentFactoryManager;
/**
* The Geronimo implementation of the JSR-88 DeploymentFactory. This is
* analagous to a JDBC driver. It provides access to usable
* DeploymentManager instances, either disconnected, or connected to a
* specific Geronimo server based on a URL, username, and password.
*
* URLs for this DeploymentFactory should look like this for disconnected
* mode:
*
* <pre>deployer:geronimo:</pre>
*
* For connected mode, they should look like this:
*
* <pre>deployer:geronimo://server:port/application</pre>
*
* (Note that connected mode is not yet implemented)
*
* @version $Revision: 1.1 $
*/
public class GeronimoDeploymentFactory implements DeploymentFactory {
static { // Auto-registers a GeronimoDeploymentFactory
DeploymentFactoryManager.getInstance().registerDeploymentFactory(new GeronimoDeploymentFactory());
}
// All Geronimo URLs must start with this
private final static String URI_PREFIX = "deployer:geronimo:";
/**
* Ensures that the URI starts with the blessed Geronimo prefix.
*/
public boolean handlesURI(String uri) {
return uri.startsWith(URI_PREFIX);
}
/**
* Currently always returns a disconnected DeploymentManager, but will
* eventually return a connected one.
*
* @throws DeploymentManagerCreationException Occurs when the specified
* URI, username, and password are not valid to connect to a
* Geronimo server.
*/
public DeploymentManager getDeploymentManager(String uri, String username, String password) throws DeploymentManagerCreationException {
if(!handlesURI(uri)) {
throw new DeploymentManagerCreationException("Invalid URI for "+getDisplayName()+" "+getProductVersion()+" DeploymentFactory, expecting "+URI_PREFIX+"... got "+uri);
}
return new GeronimoDeploymentManager(new NoServerConnection());
}
/**
* Returns a connected DeploymentManager.
*
* @throws DeploymentManagerCreationException Occurs when the specified
* URI is not a Geronimo URI
*/
public DeploymentManager getDisconnectedDeploymentManager(String uri) throws DeploymentManagerCreationException {
if(!handlesURI(uri)) {
throw new DeploymentManagerCreationException("Invalid URI for "+getDisplayName()+" "+getProductVersion()+" DeploymentFactory, expecting "+URI_PREFIX+"... got "+uri);
}
return new GeronimoDeploymentManager(new NoServerConnection());
}
public String getDisplayName() {
return "Geronimo";
}
public String getProductVersion() {
return "1.0";
}
/**
* All instances of this class are equivalent.
*
* @return The same value, always.
*/
public int hashCode() {
return 42;
}
/**
* All instances of this class are equivalent.
*
* @return True of the argument is a GeronimoDeploymentFactory
*/
public boolean equals(Object o) {
return o instanceof GeronimoDeploymentFactory;
}
public String toString() {
return getDisplayName()+" "+getProductVersion()+" DeploymentFactory";
}
}
1.1 incubator-geronimo/modules/core/src/conf/jsr88-product-provider-manifest.mf
Index: jsr88-product-provider-manifest.mf
===================================================================
Manifest-Version: 1.0
J2EE-DeploymentFactory-Implementation-Class: org.apache.geronimo.enterprise.deploy.provider.GeronimoDeploymentFactory