DConfig 
SourceForge.net Logo PHP Logo

Dynamic Configuration Toolkit

FAQ

  1. What is DConfig?
  2. What is DConfig Attribute Inheritance?
  3. How DConfig Attribute Inheritance is implemented in DConfig GUI Editor?
  4. Where is the DConfig documentation?
  5. How is DConfig licensed?

  6. Where to download DConfig?
  7. Which databases are supported by DConfig?
  8. What kind of data types supported by DConfig?
  9. Where is the DConfig server side log file?
10. Where is the DConfig GUI Editor log file?

11. Why DConfig download size is big?
12. Why I cannot use JDK 1.6.0 to compile the source code?
13. Why I cannot view dconfig-webdemo pages using IE?
14. When to use DConfig GUI Editor?
15. Do I have to use DConfig GUI Editor in order to use DConfig dynamic features?

16. Why dconfig-webdemo 1.1 web pages looks like dconfig-webdemo 1.0 in Tomcat?
17. Why cannot start dconfig-webdemo 1.1 after running 1.0 dconfig-webdemo on Tomcat?
18. Why DConfig-lib source level set as 1.3, while others set as 1.5?
19. Why DConfig GUI Editor input fields got frozen in my JVM?
20. Why DConfig GUI Editor ALT+C, ALT+N keys not functional in my JVM?

21. I used a sql statement to create new key, DConfig GUI Editor seems broken

1. What is DConfig?      

Dynamic Configuration Toolkit (DConfig) is a general purpose configuration toolkit with dynamic features. It provides a unified way to manage configuration data through sever side libraries, the DConfig Library, and a Swing based front-end, the DConfig GUI Editor. It achieves dynamic application configuration without requiring application server restart.

2. What is DConfig Attribute Inheritance?      

Attribute inheritance is one of the core features offered by DConfig. Attribute inheritance is a way to inherit attributes from a nodes' parent and ancestors. DConfig Attribute inheritance is similar to object inheritance in modern programming languages.

3. How DConfig Attribute Inheritance is implemented in DConfig GUI Editor?      

In the DConfig GUI Editor, a check box is displayed to the left of a tree node except those nodes directly under root node. A checked node, with a icon, indicates that this node will inherite all attributes defined in its parent node. The inheritance can go back multiple levels if a node's ancestor's check boxes are checked as well. An unchecked node indicates that the node does not want inherit any attributes from its parents and ancestors.

Inheritance goes back to all checked ancestor nodes until the first unchekced ancestor node or root node is encountered. Inherited atrributes are marked by a * in the '#' attribute column. Mouse over to the * area, tooltip of 'inherited from <parent keyname>' , for example, 'inherited from config', is displayed.

An attribute with same name in the lower level, i.e., deeper in the tree, overrides (hides) inherited attribute.

inheritance

4. Where is the DConfig documentation?      

Some documents / diagrams are posted on this web site. Javadoc and readme files are included in the DConfig distribution in the docs directory and project directories.

5. How is DConfig licensed?      

6. Where to download DConfig?      

DConfig binaries and source code can be downloaded from sourceforge.net dconfig project site.

7. Which databases are supported by DConfig?      

As of the writing, DConfig supports MySQL, Postgres DB, Oracle, SQL Server, Java DB / Derby, Hypersonic DB (Hsqldb), and H2 database. Other databases will be tested and supported later.

8. What kind of data types supported by DConfig?      

Currently supported data types include:
    Boolean
    Boolean Array
    Integer
    Integer Array
    Long
    Long Array
    String
    String Array
    Float
    Float Array
    Double
    Double Array
    Datetime
    Datetime Array

9. Where is the DConfig server side log file?      

The location of DConfig server side log file is determined by the setting in WEB-INF/classes/log4j.properties and web server startup working directory. You may search dconfig.log, the default log file name, to find out the exact location.

10. Where is the DConfig GUI Editor log file?      

DConfig GUI Editor creates a log file under /home/xxxx/.dconfig/dconfig.log (Linux) or C:\Documents and Settings\xxxx\.dconfig\dconfig.log (Windows), where xxxx is the user login account.

11. Why DConfig download size is big?      

Currently DConfig download size is about 16+MB for binary and 11+MB for source distributions. DConfig souce code itself is relatively small, it is about 3.2 MB including images before compression, about 385 KB after using jar archive utility. For example, jar -cvf dconfig-ui-src.jar dconfig-ui/src. Please note that a jar file is actually a zip file with some embedded metadata. The 10 ~ 15+ MB package size increase is largely due to third party libraries, embedded databases, and libraries used for creating web demo. Please see following tables for details.

Table: Size of DConfig Source Code
Project / Package Actual Size before jar Size after jar
dconfig-db252 KB22 KB
dconfig-lib692 KB76 KB
dconfig-ui1.7 MB (include images)202 KB
dconfig-ui-jnlp180 KB51 KB
dconfig-webdemo352 KB (include images)34 KB
Total3.2 MB385 KB


Table: Size of DConfig Third Party Libraries
Project / Package Major files Size
dconfig-dbderbyclient.jar289.1 KB
derby.jar2 MB
derbynet.jar163.5 KB
h2.jar1,009.3 KB
hsqldb.jar562.4 KB
Sub-total4.0 MB
dconfig-libcommons-dbutils-1.0.jar26.1 KB
commons-lang.jar62.5 KB
commons-logging-api.jar25.6 KB
commons-logging.jar37.1 KB
log4j-1.2.8.jar344.4 KB
servlet.jar77.3 KB
spring-beans.jar225.2 KB
spring-core.jar118.6 KB
spring-dao.jar92.6 KB
spring-jdbc.jar182.0 KB
Sub-total1.2 MB
dconfig-uidom4j-1.6.1.jar306.5 KB
jaxen-1.1-beta-6.jar238.6 KB
jaxme-api-0.3.jar29.8 KB
jsr173_1.0_api.jar25.8 MB
msv-20030807.jar666.1 KB
pull-parser-2.1.10.jar51.4 KB
relaxngDatatype-20030807.jar18.6 KB
swing-layout-1.0.jar137.3 KB
xpp3-1.1.3.3.jar91.2 KB
xsdlib-20030807.jar240.6 KB
Sub-total1.8 MB
dconfig-webdemoappbase.jar48.7 KB
commons-beanutils.jar114.5 KB
commons-collections.jar164.8 KB
commons-digester.jar105.6 KB
commons-fileupload.jar21.7 KB
commons-logging-1.0.4.jar25.3 KB
dataprovider.jar220.9 KB
defaulttheme.jar201.3 KB
derbyclient.jar300.3 KB
errorhandler.jar22.2 KB
jsf-api.jar350.4 KB
jsfcl.jar199.7 KB
jsf-impl.jar776.3 KB
jstl.jar20.4 KB
rowset.jar120.9 KB
sqlx.jar203.9 KB
standard.jar384.6 KB
webui.jar3.9 MB
Sub-total7.1 MB

12. Why I cannot use JDK 1.6.0 to compile the source code?      

JDK 1.6.0 requires to implement isWrapperFor() abstract method. Since 1.1-beta2 or earlier source code does not provide the method implementation, source code compilation fails for JDK 1.6.0. To compile DConfig 1.1-beta2 or earlier source code, use JDK 1.5.*. 1.1-release or later source code should be compiled under JDK 1.6.x.

13. Why I cannot view dconfig-webdemo pages using IE?      

After I deployed dconfig-webdemo and start tomcat web server, type http://localhost:8080/dconfig-webdemo in IE, I got the following error message:

The XML page cannot be displayed

Cannot view XML input using XSL style sheet. Please correct the error and then click the Refresh button, or try again later.

Cannot have a DOCTYPE declaration outside of a prolog. Error processing resource 'http://localhost:8080/dconfig-webdemo/'. ...


The above error may occur for IE in some Windows machines, you may try to use Firefox browser to view the webdemo example. Firefox browser can be downloaded from http://www.mozilla.com/en-US/firefox/.

14. When to use DConfig GUI Editor?      

Configuration data visualization is one of the core features provided by DConfig GUI Editor. For any standard opeartions, like create new keys, attributes, search, copy / paste, import / export, etc., application developer and / or system administratior should consider use DConfig GUI Editor instead of write code to perform these functionalities.

15. Do I have to use DConfig GUI Editor in order to use DConfig dynamic features?      

No. Except for dconfig-lib.jar, DConfig GUI Editor is not required to use DConfig dynamic features. However, DConfig GUI Editor is a great tool to create keys, attributes; editing attribute values; search, sort key / attributes and perform copy / paste, import, export functionalities for the application configuration.
Please see a example at Run the Web Demo Without DConfig GUI Editor

16. Why dconfig-webdemo 1.1 web pages looks like dconfig-webdemo 1.0 in Tomcat?      

I ran dconfig-1.0 webdemo in Tomcat before, now deployed dconfig-1.1 webdemo in Tomcat. For some reason, the 1.1 webdemo just look like 1.0 webdemo, why?
This may be caused by previous working copy. Try to remove the following folders
{tomcat_home}/work/Catalina/localhost/dconfig-webdemo
{tomcat_home}/work/Catalina/localhost/dconfig-ui-jnlp
Restart Tomcat web server.

17. Why cannot start dconfig-webdemo 1.1 on Tomcat after running 1.0 dconfig-webdemo?      

This may be caused by previous working copy as described in 16. Try to remove the following folders
{tomcat_home}/work/Catalina/localhost/dconfig-webdemo
{tomcat_home}/work/Catalina/localhost/dconfig-ui-jnlp
Restart Tomcat web server.

18. Why DConfig-lib source level set as 1.3, while others set as 1.5?      

The reason to set dconfig-lib source level as 1.3 is to allow dconfig-lib be used by maximum possible applications since many applications are still compiled at 1.3 source level. Other projects like dconfig-ui, dconfig-webdemo uses JDK 1.5.0 features, so their source level are set as 1.5.

19. Why DConfig GUI Editor input fields got frozen for my JVM?      

If you are using earlier versions of JDK 1.5.0_xx, JDK 1.6.0_01, or JDK 1.6.0_02, you may experience the String Editor input field frozen issue. Suggest to use JDK 1.5.0_12 since it has a fix for All editable fields get frozen.

20. Why DConfig GUI Editor ALT+C, ALT+N keys not functional in my JVM?      

When working on value editors under JDk 1.5.0_12, press ALT+C to close the dialog, the button is pressed down, but not functional. The input fields got frozen after that. It appears that it is either a Swing or awt bug and need further investigation. To work around, use mouse to click the Close button and open the editor dialog again, the input fields should work.

21. I used a sql statement to create new key, DConfig GUI Editor seems broken      

I run the following sql against dconfig_key table:
insert into dconfig_key (key_name) values ('test.newKey.key#1');
where parent keys 'test', 'test.newKey' do not exist in dconfig_key table.
Now start DConfig GUI Editor, the new key messed up in the tree view.

Parent keys are required for DConfig GUI Editor to work properly, i.e., you need to do the following as well:
insert into dconfig_key (key_name) values ('test')
insert into dconfig_key (key_name) values ('test.newKey')
Note:
1. DConfig-1.2.1 or later does not have the issue any more.
2. When create a new key through DConfig GUI Editor or through DConfigWriter write methods, for example, DConfigWriter.writeString("test.newKey.key#1', "new attribute#1", "attribute value is here"); Parent keys are automatically created if they are not existed yet.