Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-534

Standardise keys used for System properties, .properties and Properties entries

XMLWordPrintable

      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

              manik_jira Manik Surtani (Inactive)
              manik_jira Manik Surtani (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Created:
                Updated:
                Resolved: