[infinispan-dev] Module configuration proposal

Vladimir Blagojevic vblagoje at redhat.com
Wed Nov 4 12:56:43 EST 2009


Ok, I see where you are going. This is along the line with 
https://jira.jboss.org/jira/browse/ISPN-245. No problem, even better. 
Also there is no need to declare all configurations beans, only the root 
class of configuration, jaxb will resolve others, as long as they are on 
classpath.

How do we proceed from here? I can take over ISPN-245 as well, looks 
interesting...

On 09-11-04 12:27 PM, Manik Surtani wrote:
> Nice work!  Is there any way to register the module beans in code so
> they don't appear in XML (which is exposed to users)?  Perhaps
> something like:
>
> In core:
> * look thru classpath for all instances of "infinispan-module-
> cfg.properties"
> * this file would contain infinispan.module.cfg-
> beans=org.infinispan.query.config.QueryConfigurationBean,
> org.infinispan.query.config.QueryConfigurationBean2,
> org.infinispan.query.config.QueryConfigurationBean3, etc
>
> in any given module:
>    * must package a "infinispan-module-cfg.properties" if it wants to
> hook in to the XML cfg parsing system
>    * delcare any cfg beans in this file, as infinispan.module.cfg-
> beans=org.infinispan.query.config.QueryConfigurationBean,
> org.infinispan.query.config.QueryConfigurationBean2,
> org.infinispan.query.config.QueryConfigurationBean3, etc
>
> WDYT?
>
>
> On 3 Nov 2009, at 15:52, Vladimir Blagojevic wrote:
>
>    
>> Hey guys,
>>
>> I completed module configuration proposal Manik and I agreed upon.
>> It is
>> very important to get this one right so I want to run it by you before
>> proceeding further!
>>
>> Have a look at [1] and follow proposed module configuration example
>> below:
>>
>> <infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> xmlns="urn:infinispan:config:4.0">
>> <global>
>> <transport clusterName="demoCluster"/>
>> </global>
>>
>> <default>
>> <clustering mode="replication">
>> </clustering>
>> <modules>
>> <module name="query"
>> configClassName="org.infinispan.query.config.QueryConfigurationBean">
>> <indexing enabled="true" indexLocalOnly="true"/>
>> </module>
>> </modules>
>> </default>
>> </infinispan>
>>
>> A few things to notice:
>>
>> a) Any configuration (including default and namedCache) can have a
>> module definition
>> b) Instance of configClassName is a rich object structure filled from
>> module's child XML content
>> c) Module's XML content can be arbitrary
>> d) Custom module configuration bean is accessed by module name:
>>
>>
>>        Configuration def = c.parseDefaultConfiguration();
>>        ModuleConfigurationBean extensionConfig =
>> def.getModuleConfigurationBean("query");
>>        QueryConfigurationBean bean = (QueryConfigurationBean)
>> extensionConfig.getConfigurationBean();
>>        assert bean.isEnabled();
>>        assert bean.isIndexLocalOnly();
>>
>>
>> The proposal achieves full flexibility when it comes to having rich
>> object configuration structure that modules define themselves.
>> Furthermore, core module is completely isolated from module
>> configuration extensions. Schema easily accommodates this model and
>> there is no adverse effect on performance!
>>
>>
>> [1] https://jira.jboss.org/jira/browse/ISPN-193
>> _______________________________________________
>> infinispan-dev mailing list
>> infinispan-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/infinispan-dev
>>      
> --
> Manik Surtani
> manik at jboss.org
> Lead, Infinispan
> Lead, JBoss Cache
> http://www.infinispan.org
> http://www.jbosscache.org
>
>
>
>
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev
>    




More information about the infinispan-dev mailing list