FileDocCategorySizeDatePackage
RepositoryFactory.javaAPI DocGlassfish v2 API7846Fri May 04 22:24:44 BST 2007com.sun.enterprise.admin.wsmgmt.repository.spi

RepositoryFactory

public class RepositoryFactory extends Object
This SPI mechanism allows RepositoryProvider instance. This repority provider can be queried for existence of web services.
Because the methods in the RepositoryFactory are all static, there is only one RepositoryFactory per Java VM at any one time. This ensures that there is a single source from which RepositoryProvider implementation is obtained.
Registering RepositoryProvider
The name of the provider is supplied on the command line. If no provider is specified, default implementation is assumed. Default provider class is com.sun.enterprise.admin.repository.impl.ApplicationServerRepositoryProvider. For example the following -Drepository.provider.classname=com.sun.web.WebServerRepositoryProvider would change the provider class to com.sun.web.WebServerRepositoryProvider.

Fields Summary
public static final String
REPOSITORY_PROVIDER_NAME
Environment property name to customize Repository Provider
public static final String
WEBSERVICE_INFO_PROVIDER_NAME
Environment property name to customize Web Service Info Provider
private static final String
AS_DEFAULT_PROVIDER
Constructors Summary
private RepositoryFactory()
Make RepositoryFactory private, only one sigleton object is available.

    
Methods Summary
public static com.sun.enterprise.admin.wsmgmt.repository.spi.RepositoryFactorygetRepositoryFactory()
Returns the RepositoryFactory singleton.

return
the RepositoryFactory instance

        return new RepositoryFactory();
    
public static RepositoryProvidergetRepositoryProvider()
Returns the RepositoryProvider instance. If -Drepository.provider.classname is defined, that class is loaded and returned as the repository provider. If there is an error finding or loading the class, the default provider class is returned.

return
RepositoryProvider implementation
throws
IllegalAccessException - if the class or its nullary constructor is not accessible. InstantiationException - if this Class represents an abstract class,an interface, an array class, a primitive type, or void; or if the class * has no nullary constructor; or if the instantiation fails for some other reason. ClassCastException - if the provider implementation specified by -D does not implement the com.sun. enterprise.admin.wsmgmt.repository.spi. RepositoryProvider interface. ClassNotFoundException - if the provider implementation specified * by -D does could not be found by the class loader.

       String implName = System.getProperty(REPOSITORY_PROVIDER_NAME);
       if ( implName == null ) {
            return new AppServRepositoryProvider();
       } else {
            Class repClass = Class.forName(implName);
            Object o = repClass.newInstance();
            return (RepositoryProvider)o;

       }
    
public static WebServiceInfoProvidergetWebServiceInfoProvider()
Returns the WebServiceInfoProvider instance. If -Dwebserviceinfo.provider.classname is defined, that class is loaded and returned as the repository provider. If there is an error finding or loading the class, the default provider class is returned.

return
WebServiceInfoProvider implementation
throws
IllegalAccessException - if the class or its nullary constructor is not accessible. InstantiationException - if this Class represents an abstract class,an interface, an array class, a primitive type, or void; or if the class * has no nullary constructor; or if the instantiation fails for some other reason. ClassCastException - if the provider implementation specified by -D does not implement the com.sun. enterprise.admin.wsmgmt.repository.spi. RepositoryProvider interface. ClassNotFoundException - if the provider implementation specified * by -D does could not be found by the class loader.

       String implName = System.getProperty(WEBSERVICE_INFO_PROVIDER_NAME);
       if ( implName == null ) {
            //return new AppServWebServiceInfoProvider();
            Class repClass = Class.forName(AS_DEFAULT_PROVIDER);
            return (WebServiceInfoProvider) repClass.newInstance();
       } else {
            Class repClass = Class.forName(implName);
            return (WebServiceInfoProvider) repClass.newInstance();
       }