hlship      2003/07/16 10:22:38

  Modified:    hivemind/src/java/org/apache/commons/hivemind
                        HiveMindMessages.properties
                        ServiceImplementationFactory.java
               hivemind/xdocs descriptor.xml services.xml
               hivemind/src/java/org/apache/commons/hivemind/parse
                        FactoryDescriptor.java HiveMind_1.0.xsd
                        ParametersDescriptor.java
               hivemind/src/test/hivemind/test/parse
                        TestDescriptorParser.java
                        ContributeFactoryParameters.xml
               hivemind/src/test/hivemind/test/services EJBProxy.xml
               hivemind/src/java/org/apache/commons/hivemind/service/impl
                        EJBProxyFactory.java
  Log:
  Change the <parameters> element to configure a parameters object provided by the 
service implementation factory.
  
  Revision  Changes    Path
  1.12      +5 -2      
jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/HiveMindMessages.properties
  
  Index: HiveMindMessages.properties
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/HiveMindMessages.properties,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- HiveMindMessages.properties       15 Jul 2003 17:36:20 -0000      1.11
  +++ HiveMindMessages.properties       16 Jul 2003 17:22:37 -0000      1.12
  @@ -5,10 +5,13 @@
   no-such-service-extension-id=Service extension point {0} does not exist.
   no-such-configuration-extension-id=Configuration extension point {0} does not exist.
   no-such-service=Service {0} (implementing interface {1}) does not exist.
  -service-wrong-parameter-count=Service factory {0} expects {1,choice,0#no 
parameters,1#one parameter, 1>#{1} parameters} , but was passed {2,choice,0#no 
parameters,1#one parameter, 1>#{2} parameters} parameters.
  +
  +missing-factory-parameter=Core implementation factory parameter ''{0}'' is not 
specified for factory {1}.
  +
   
   HiveMind.default-registry-not-set=HiveMind.getDefault() invoked before default 
registry has been set.
   HiveMind.elements-not-orderable=Elements of list {0} do not implement the Orderable 
interface and can not be sorted.
  +
   # impl package
   
   BaseRegistry.no-such-module-id=Registry does not contain module ''{0}''.
  
  
  
  1.2       +14 -2     
jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/ServiceImplementationFactory.java
  
  Index: ServiceImplementationFactory.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/ServiceImplementationFactory.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ServiceImplementationFactory.java 30 Jun 2003 23:04:30 -0000      1.1
  +++ ServiceImplementationFactory.java 16 Jul 2003 17:22:37 -0000      1.2
  @@ -65,6 +65,18 @@
    */
   public interface ServiceImplementationFactory
   {
  +     /**
  +      * Called first, to create a object to hold parameters.  The &lt;parameters&gt;
  +      * element will configure the empty object that is returned; the configured
  +      * parameters object is passed back to 
  +      * [EMAIL PROTECTED] #createCoreServiceImplementation(ServiceExtensionPoint, 
Object)}.
  +      * 
  +      * @returns the object, or null if the factory does not use any
  +      * parameters.
  +      */     
  +     
  +     public Object createNewParameters();
  +
       /**
        * Creates a core implementation object for a particular service extension 
point.
        * Typically, the factory creates an instance and modifies it to implement
  @@ -76,5 +88,5 @@
        * @param parameters any additional parameters that are needed by the factory.  
        * parameters may be empty, but won't be null.
        */
  -    public Object createCoreServiceImplementation(ServiceExtensionPoint point, 
Object[] parameters);
  +    public Object createCoreServiceImplementation(ServiceExtensionPoint point, 
Object parameters);
   }
  
  
  
  1.13      +8 -5      jakarta-commons-sandbox/hivemind/xdocs/descriptor.xml
  
  Index: descriptor.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/hivemind/xdocs/descriptor.xml,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- descriptor.xml    2 Jul 2003 21:41:12 -0000       1.12
  +++ descriptor.xml    16 Jul 2003 17:22:37 -0000      1.13
  @@ -682,13 +682,14 @@
                                                
                                                <td>0..1</td>
                                                
  -                                             <td>A list of parameters passed to the 
factory, used when it constructs the implmentation.</td>
  +                                             <td>Used to configure the specific 
parameters used by the factory to create the instance.</td>
                                </tr>
                                
                                <tr>
                                        <td colspan="4">
                                        The remaining elements are the same
  -                                     as for &create-instance;
  +                                     as for &create-instance; (and are used to 
configure properties of the instance
  +                                     created by the factory).
                                        </td>
                                </tr>
                                        
  @@ -699,13 +700,15 @@
                
                <section name="parameters">
                        
  -                     <p>&_parameters; is used to pass a list of values to an 
implementation factory.
  +                     <p>&_parameters; is used to configure a
  +                             <a 
href="apidocs/org/apache/commons/hivemind/ServiceImplementationFactory.html">service 
implementation factory</a>'s
  +                             parameters.
                                
                                </p>
                                
                                
                        <p>
  -                     &_parameters; accepts the same elements as &configuration;     
 
  +                     &_parameters; accepts the same elements as &create-instance;   
 
                        </p>
                
                        </section>
  
  
  
  1.10      +58 -16    jakarta-commons-sandbox/hivemind/xdocs/services.xml
  
  Index: services.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/hivemind/xdocs/services.xml,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- services.xml      15 Jul 2003 17:36:20 -0000      1.9
  +++ services.xml      16 Jul 2003 17:22:37 -0000      1.10
  @@ -35,31 +35,62 @@
                                and the client, and add functionality to the core 
implementation such as
                                logging, security, transaction demarkation or 
performance monitoring.</p>
                </section>
  +             
                <section name="Contributing to Services">
                        <p>Any module may contribute to any service extension point. A 
&lt;
                                contribute-service&gt; element contains these 
contributions.
  -                             Contributions take three forms: <ul> <li>Instance 
Creators</li> <li>
  -                             Instance Factories</li> <li>Interceptors</li> </ul> 
</p>
  -                     <subsection name="Factory Contributions">
  -                             <p>A factory contribution is used to instantiate a 
Java class as the
  +                             Contributions take three forms: 
  +                                     
  +                                             <ul> 
  +                                                     <li>Implementations
  +                                                     <ul>
  +                                                                     <li>by 
creating an instance</li>
  +                                                                     <li>by 
invoking an implementation factory</li>
  +                                                             </ul>
  +                                                             </li>
  +                                             <li>Interceptors</li> 
  +                                             </ul> 
  +                                             
  +                                             </p>
  +                                             
  +                     <subsection name="Implementation Contributions">
  +                             <p>An implementation contribution is used to 
instantiate a Java class as the
                                        core implementation instance for the service. 
This instance may be
  -                                     configured as well (by setting properties of 
the instance).</p>
  -                             <p>There are two forms of service constructors: 
instance creators and
  -                                     instance factories.</p>
  +                                     configured as well (by setting properties of 
the  instance).</p>
  +                             <p>There are two forms of implementation contributions:
  +                                      instance creators and
  +                                     implementation factories.</p>
                                <p>An instance creator is represented by a 
&create-instance; element. It
                                        includes a class attribute, the Java class to 
instantiate.</p>
  -                             <p>An instance factory is represented by a 
&service-factory; element. It
  +                             <p>An implementation factory is represented by a 
&service-factory; element. It
                                        includes a service-id attribute. This is the 
fully qualfied id of a
                                        service implementation factory service, a 
service which implements the
                                        
                                        <a 
href="apidocs/org/apache/commons/hivemind/ServiceImplementationFactory.html">ServiceImplementationFactory</a>
 
                                        
                                        interface.</p>
  +                                     
                                <p>In both cases, the properties of the core instance 
may be configured
  -                                     using enclosed &set;, &set-expression;, 
&set-create;, &set-factory;
  -                                     &set-service-ref; and &set-xml;
  -                                     elements.</p>
  +                                     using enclosed &set;, &set-expression;, etc. 
elements</p>
  +                     </subsection>
  +                     
  +                     <subsection name="Implementation Factories">
  +                             
  +                     <p>
  +                     An implementation factory is used to create a core 
implementation for a         
  +                     service at runtime.  This may be accomplished using JDK 
Proxies or
  +                     bytecode enhancement.
  +                     </p>
  +                     
  +                     <p>
  +                     Often, the factory will need some additional configuration 
information.
  +                     For example, the
  +                     <a 
href="apidocs/org/apache/commons/hivemind/service/impl/EJBProxyFactory.html">org.apache.commons.hivemind.EJBProxyFactory</a>
  +                     uses its parameters to identify the JNDI name of the EJB's 
home interface.      
  +                     </p>
  +                             
                        </subsection>
  +                     
                        <subsection name="Interceptor Contributions">
                                <p>An interceptor contribution is represented by a 
&interceptor; 
                                        element. The service-id attribute identifies a 
service interceptor factory
  @@ -68,15 +99,25 @@
                                        <a 
href="apidocs/org/apache/commons/hivemind/ServiceInterceptorFactory.html">ServiceInterceptorFactory</a>
                                        
                                        interface.</p>
  +                                     
                                <p>An interceptor factory knows how to create an 
object that implements
  -                                     an arbitrary interface, adding the 
functionality of that interface.
  -                                     For example, a logging interceptor factory 
would create an object
  -                                     instance that logged entry and exit to each 
method. The factory
  +                                     an arbitrary interface (the interface being 
defined by the
  +                                     service extension point), adding the 
functionality of that interface.
  +                                     For example, the
  +                                     
  +<a 
href="apidocs/org/apache/commons/hivemind/service/impl/LoggingInterceptorFactory.html">org.apache.commons.hivemind.LoggingInterceptor</a>
  +                                     factory creates an 
  +                                     instance that logs entry and exit to each 
method.
  +                                     </p>
  +                                     
  +                                     <p>The factory
                                        shouldn't care what the interface itself is 
... it should adapt to
                                        whatever interface is defined by the service 
extension point it will
                                        create an instance for.</p>
  +                                     
                                <p>Interceptor factories can be implemented using 
dynamic proxies (a
                                        feature introduced in JDK 1.3), or by dynamic 
bytecode enhancement.</p>
  +                                     
                                <p>A service extension point may have any number of 
interceptor
                                        contributions. If the order in which 
interceptors are applied is
                                        important, then the optional order attribute 
can be specified; it is
  @@ -90,7 +131,8 @@
                                the core implementation.  Then comes "Performance" and 
last "Logging".  When a client
                                invokes a method, it is really invoking it on the 
"Logging" interceptor, which then re-invokes the method
                                on the "Performance" interceptor, and so in, down to 
the core implementation.  Each interceptor
  -                             can perform work before and/or after re-invoking the 
method on the next layer.  In this example,
  +                             can perform work before and/or after re-invoking the 
method on the next layer
  +                             (as well as catch exceptions thrown by the more inner 
objects).  In this example,
                                "Logging" was given a high order so that it wouldn't 
affect the "Performance" interceptor.  Security
                                was given a lower order than "Performance" so that the 
time for security checks would be included in the
                                "Performance" analysis.
  
  
  
  1.7       +14 -13    
jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/parse/FactoryDescriptor.java
  
  Index: FactoryDescriptor.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/parse/FactoryDescriptor.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- FactoryDescriptor.java    30 Jun 2003 23:04:54 -0000      1.6
  +++ FactoryDescriptor.java    16 Jul 2003 17:22:37 -0000      1.7
  @@ -79,7 +79,7 @@
   public class FactoryDescriptor extends AbstractInstanceBuilderDescriptor
   {
       private String _factoryServiceId;
  -     private ParametersDescriptor _parameters;
  +    private ParametersDescriptor _parameters;
   
       public String getFactoryServiceId()
       {
  @@ -91,7 +91,6 @@
           _factoryServiceId = string;
       }
   
  -
       /**
        * Obtains the factory service (using the service id) and uses
        * it to create a new instance, which is configured
  @@ -101,7 +100,8 @@
       public Object provideValue(Module module)
       {
           Registry registry = module.getRegistry();
  -        InstanceFactory factory = (InstanceFactory) 
registry.getService(_factoryServiceId, InstanceFactory.class);
  +        InstanceFactory factory =
  +            (InstanceFactory) registry.getService(_factoryServiceId, 
InstanceFactory.class);
   
           if (factory == null)
               throw new ApplicationRuntimeException(
  @@ -123,6 +123,7 @@
       public Object createCoreServiceImplementation(ServiceExtensionPoint point, 
Module module)
       {
           Registry registry = module.getRegistry();
  +
           ServiceImplementationFactory factory =
               (ServiceImplementationFactory) registry.getService(
                   _factoryServiceId,
  @@ -134,11 +135,12 @@
                   getLocation(),
                   null);
   
  -        Object[] parameters =
  -             _parameters == null ? new Object[0] : 
_parameters.extractParameterValues(module);
  -        
  +        Object factoryParameters = factory.createNewParameters();
  +
  +        if (_parameters != null)
  +            _parameters.configureFactoryParameter(factoryParameters, module);
   
  -        Object result = factory.createCoreServiceImplementation(point, parameters);
  +        Object result = factory.createCoreServiceImplementation(point, 
factoryParameters);
   
           configureNewInstance(result, module);
   
  @@ -158,11 +160,10 @@
           return _parameters;
       }
   
  -
  -     /**
  -      * Sets the parameters for the factory, which is only used
  -      * for service factories.
  -      */
  +    /**
  +     * Sets the parameters for the factory, which is only used
  +     * for service factories.
  +     */
       public void setParameters(ParametersDescriptor descriptor)
       {
           _parameters = descriptor;
  
  
  
  1.13      +3 -3      
jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/parse/HiveMind_1.0.xsd
  
  Index: HiveMind_1.0.xsd
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/parse/HiveMind_1.0.xsd,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- HiveMind_1.0.xsd  2 Jul 2003 21:41:12 -0000       1.12
  +++ HiveMind_1.0.xsd  16 Jul 2003 17:22:37 -0000      1.13
  @@ -464,10 +464,10 @@
                        <xs:sequence minOccurs="0" maxOccurs="1">
                                <xs:element name="parameters" minOccurs="0" 
maxOccurs="1">
                                        <xs:annotation>
  -                                             <xs:documentation>Specifies parameters 
passed to a service factory.</xs:documentation>
  +                                             <xs:documentation>Used to configure 
the parameters object passed to the core instance factory.</xs:documentation>
                                        </xs:annotation>
                                        <xs:complexType>
  -                                             <xs:group ref="value-providers-group" 
minOccurs="1"
  +                                             <xs:group 
ref="configure-instance-group" minOccurs="1"
                                                        maxOccurs="unbounded" />
                                        </xs:complexType>
                                </xs:element>
  
  
  
  1.4       +33 -35    
jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/parse/ParametersDescriptor.java
  
  Index: ParametersDescriptor.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/parse/ParametersDescriptor.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ParametersDescriptor.java 16 Jul 2003 14:11:01 -0000      1.3
  +++ ParametersDescriptor.java 16 Jul 2003 17:22:37 -0000      1.4
  @@ -73,38 +73,36 @@
    */
   public class ParametersDescriptor extends BaseLocatable
   {
  -     private List _providers = new ArrayList();
  -     
  -     public void addProvider(ValueProvider provider)
  -     {
  -             _providers.add(provider);
  -     }
  -     
  -     public List getProviders()
  -     {
  -             return _providers;
  -     }
  -     
  -     public Object[] extractParameterValues(Module module)
  -     {
  -             int count = _providers.size();
  -             Object[] result = new Object[count];
  -             
  -             for (int i = 0; i < count; i++)
  -             {
  -                     ValueProvider provider = (ValueProvider)_providers.get(i);
  -                     result[i] = provider.provideValue(module);
  -             }
  -             
  -             return result;
  -     }
  -     
  -     public String toString()
  -     {
  -             ToStringBuilder builder = new ToStringBuilder(this);
  -             
  -             builder.append("providers", _providers);
  -             
  -             return builder.toString();
  -     }
  +    private List _configurators = new ArrayList();
  +
  +    public void addConfigurator(Configurator c)
  +    {
  +        _configurators.add(c);
  +    }
  +
  +    public List getConfigurators()
  +    {
  +        return _configurators;
  +    }
  +
  +    public void configureFactoryParameter(Object factoryParameters, Module module)
  +    {
  +        int count = _configurators.size();
  +
  +        for (int i = 0; i < count; i++)
  +        {
  +            Configurator c = (Configurator) _configurators.get(i);
  +
  +            c.configure(factoryParameters, module);
  +        }
  +    }
  +
  +    public String toString()
  +    {
  +        ToStringBuilder builder = new ToStringBuilder(this);
  +
  +        builder.append("configuratiors", _configurators);
  +
  +        return builder.toString();
  +    }
   }
  
  
  
  1.13      +4 -3      
jakarta-commons-sandbox/hivemind/src/test/hivemind/test/parse/TestDescriptorParser.java
  
  Index: TestDescriptorParser.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/hivemind/src/test/hivemind/test/parse/TestDescriptorParser.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- TestDescriptorParser.java 2 Jul 2003 21:41:13 -0000       1.12
  +++ TestDescriptorParser.java 16 Jul 2003 17:22:37 -0000      1.13
  @@ -565,11 +565,12 @@
           assertEquals("package.blat.BlatFactory", fd.getFactoryServiceId());
   
           ParametersDescriptor pd = fd.getParameters();
  -        List l = pd.getProviders();
  +        List l = pd.getConfigurators();
           assertEquals(1, l.size());
   
           ValueDescriptor vd = (ValueDescriptor) l.get(0);
  -        assertEquals("foo", vd.getValue());
  +        assertEquals("foo", vd.getPropertyName());
  +        assertEquals("baz", vd.getValue());
   
           l = fd.getConfigurators();
           assertEquals(1, l.size());
  
  
  
  1.2       +2 -2      
jakarta-commons-sandbox/hivemind/src/test/hivemind/test/parse/ContributeFactoryParameters.xml
  
  Index: ContributeFactoryParameters.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/hivemind/src/test/hivemind/test/parse/ContributeFactoryParameters.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ContributeFactoryParameters.xml   26 Jun 2003 20:31:30 -0000      1.1
  +++ ContributeFactoryParameters.xml   16 Jul 2003 17:22:37 -0000      1.2
  @@ -7,7 +7,7 @@
        <contribute-service service-id="package.bar.Bar">
                <service-factory service-id="package.blat.BlatFactory">
                                <parameters>
  -                                     <value>foo</value>
  +                                     <set property="foo" value="baz"/>
                                </parameters>
                                <set property="bar" value="blat"/>
                </service-factory>
  
  
  
  1.3       +2 -2      
jakarta-commons-sandbox/hivemind/src/test/hivemind/test/services/EJBProxy.xml
  
  Index: EJBProxy.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/hivemind/src/test/hivemind/test/services/EJBProxy.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- EJBProxy.xml      30 Jun 2003 23:04:45 -0000      1.2
  +++ EJBProxy.xml      16 Jul 2003 17:22:38 -0000      1.3
  @@ -11,7 +11,7 @@
     
       <service-factory service-id="org.apache.commons.hivemind.EJBProxyFactory">
        <parameters>
  -             <value>hivemind.test.services.Simple</value>    
  +             <set property="jndiName" value="hivemind.test.services.Simple"/>
        </parameters>   
       </service-factory>                       
     </service>
  
  
  
  1.4       +45 -13    
jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/service/impl/EJBProxyFactory.java
  
  Index: EJBProxyFactory.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/service/impl/EJBProxyFactory.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- EJBProxyFactory.java      15 Jul 2003 17:36:19 -0000      1.3
  +++ EJBProxyFactory.java      16 Jul 2003 17:22:38 -0000      1.4
  @@ -65,35 +65,62 @@
   import org.apache.commons.hivemind.Registry;
   import org.apache.commons.hivemind.ServiceExtensionPoint;
   import org.apache.commons.hivemind.ServiceImplementationFactory;
  +import org.apache.commons.lang.StringUtils;
   import org.apache.tapestry.ApplicationRuntimeException;
  +import org.apache.tapestry.spec.BaseLocatable;
   
   /**
    * An implementation of [EMAIL PROTECTED] 
org.apache.commons.hivemind.ServiceImplementationFactory}
    * that can create a proxy to a stateless session EJB.  Using this factory, it is
    * easy to create a HiveMind service wrapper around the actual EJB.
    * 
  + * <p>
  + * The parameters for the factory are used to identify the JNDI name of the
  + * session EJB's home interface.
  + * 
  + * 
    *
    * @author Howard Lewis Ship
    * @version $Id$
    */
  -public class EJBProxyFactory implements ServiceImplementationFactory, Initializable
  +public class EJBProxyFactory
  +    extends BaseLocatable
  +    implements ServiceImplementationFactory, Initializable
   {
       private String _serviceId;
   
  -    public Object createCoreServiceImplementation(
  -        ServiceExtensionPoint point,
  -        Object[] parameters)
  +    /**
  +     * Parameters object for [EMAIL PROTECTED] EJBProxyFactory}.  Used to
  +     * specify the JNDI name of the session EJB's home interface.
  +     */
  +    public static class Parameters
       {
  -        if (parameters.length != 1)
  -            throw new ApplicationRuntimeException(
  -                HiveMind.format(
  -                    "service-wrong-parameter-count",
  -                    _serviceId,
  -                    "1",
  -                    Integer.toString(parameters.length)));
  +        private String _jndiName;
  +
  +        public String getJndiName()
  +        {
  +            return _jndiName;
  +        }
  +
  +        public void setJndiName(String string)
  +        {
  +            _jndiName = string;
  +        }
   
  +    }
  +
  +    public Object createCoreServiceImplementation(ServiceExtensionPoint point, 
Object parameters)
  +    {
           Class serviceInterface = point.getServiceInterface();
  -        String jndiName = (String) parameters[0];
  +        Parameters p = (Parameters) parameters;
  +
  +        String jndiName = p.getJndiName();
  +
  +        if (StringUtils.isEmpty(jndiName))
  +            throw new ApplicationRuntimeException(
  +                HiveMind.format("missing-factory-parameter", "jndiName", 
_serviceId),
  +                getLocation(),
  +                null);
   
           Registry registry = point.getModule().getRegistry();
   
  @@ -109,6 +136,11 @@
       public void initializeService(ServiceExtensionPoint point, Object service)
       {
           _serviceId = point.getExtensionPointId();
  +    }
  +
  +    public Object createNewParameters()
  +    {
  +        return new Parameters();
       }
   
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to