[infinispan-dev] Standardising on property names and system parameters

Manik Surtani manik at jboss.org
Thu Jul 8 10:55:30 EDT 2010


Guys,

I have seen a number of places in the codebase where we take in system parameters.  In some cases this is to control certain unit test options such as:

	http://fisheye.jboss.org/browse/Infinispan/trunk/cachestore/jdbc/src/test/java/org/infinispan/test/fwk/UnitTestDatabaseManager.java?r=1957#l53
	http://fisheye.jboss.org/browse/Infinispan/trunk/cachestore/cloud/src/integrationtest/java/org/infinispan/loaders/cloud/CloudCacheStoreFunctionalIntegrationTest.java?r=1845#l46
	http://fisheye.jboss.org/browse/Infinispan/trunk/core/src/test/java/org/infinispan/test/fwk/TransactionSetup.java?r=722#l46

And in some cases these control runtime options such as:

	http://fisheye.jboss.org/browse/Infinispan/trunk/core/src/main/java/org/infinispan/config/InfinispanConfiguration.java?r=1951#l362
	http://fisheye.jboss.org/browse/Infinispan/trunk/server/rest/src/main/scala/org/infinispan/rest/StartupListener.scala?r=1863#l33
	http://fisheye.jboss.org/browse/Infinispan/trunk/server/core/src/main/scala/org/infinispan/server/core/Main.scala?r=1954#l169

And we occasionally use Properties to configure certain bits, such as certain Hot Rod and Memcached server options:

	http://fisheye.jboss.org/browse/Infinispan/trunk/server/core/src/main/scala/org/infinispan/server/core/AbstractProtocolServer.scala?r=1898#l24

And even Hot Rod client configs.

	http://fisheye.jboss.org/browse/Infinispan/trunk/client/hotrod-client/src/main/java/org/infinispan/client/hotrod/RemoteCacheManager.java?r=1999#l167

And here are some examples of what the keys to these properties are:

	infinispan.jclouds.username
	infinispan.jdbc
	infinispan.tm
	infinispan.config.schema
	infinispan.server.rest.cfg
	program.name
	infinispan.server.host
	infinispan.hotrod-client.servers-default

I would like to standardise on these a bit.  It would (a) make it easier to document and (b) provide a greater level of consistency.  So here is what I propose:

* All system and property keys start with "infinispan."
* Properties destined to control the way the test suite runs should have ".test."
* The next bit should be the relevant affected module.  E.g., ".server.hotrod."  or ".server.rest." or ".client.hotrod.", or ".server." for stuff that is common across all server endpoints.
* and the last bit could be descriptive to what the key controls.  E.g., ".host".

So, from above, the examples would look like:

	infinispan.test.cachestore.jclouds.username
	infinispan.test.cachestore.jdbc.driver
	infinispan.test.core.tm
	infinispan.core.config.schema
	infinispan.server.cfg
	(program.name?  Don't know what this is... )
	infinispan.server.host
	infinispan.client.hotrod.servers
	
What do you guys think?  If we agree on this, this would involve:

1) Read the correct, new property
2) Still read the "legacy" property but spit out a warning
3) Update READMEs, javadocs, sample scripts, and wikis/FAQs.

and then we would need to stick with this convention for all future stuff.  

Thoughts?

Cheers
Manik
--
Manik Surtani
manik at jboss.org
Lead, Infinispan
Lead, JBoss Cache
http://www.infinispan.org
http://www.jbosscache.org







More information about the infinispan-dev mailing list