[prev in list] [next in list] [prev in thread] [next in thread] 

List:       jakarta-commons-dev
Subject:    [jira] Issue Comment Edited: (CONFIGURATION-394) Providing
From:       "Java Developer (JIRA)" <jira () apache ! org>
Date:       2010-07-31 2:22:15
Message-ID: 30310945.99361280542935908.JavaMail.jira () thor
[Download RAW message or body]


    [ https://issues.apache.org/jira/browse/CONFIGURATION-394?page=com.atlassian.jira. \
plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12893964#action_12893964 \
] 

Java Developer edited comment on CONFIGURATION-394 at 7/30/10 10:22 PM:
------------------------------------------------------------------------

I admit it is out of scope of Apache commons configuration project. But as interested \
java developer I know there is so much effort to model configuration data which must \
be effective in web development and also application development. So I completed the \
implementation and provided a generator framework which generate configuration \
classes from XML file.

I thought this is best way to close this issue and also provide a way for googlers to \
find some useful code to follow it. I actually have no time to spend for new project. \
So I hope you still accept this last upload and let google searchers use the space of \
Apache project to find interesting stuff.

Just as a short description for interested developers I should say:

1- I've attached a eclipse project (FinalConfigClasses.zip) which contains all code \
of framework. 2- The artifact of this project is an ant task which gets the XML input \
file as description of config-classes and  its output is a generated config-classes \
into "com.fanava.psp.cfg.sample" package. 3- You can inspect classes of  \
"com.fanava.psp.cfg.sample" package to find out how this framework  would generate \
useful config-classes that you can use in serious business applications. \
Test1.java,Test2.java,Test5.java, Test6.java are useful classes to see how you can \
use generated classes. 4- The concurrency equipments of generated classes are much \
simpler than previous upload. 5- So just execute ant target inside build.xml to see \
generated class files. You must fix absolute paths also. 6- Just as a note I've used \
"Jacobe" code beautifuler to format generated classes. You can download it from \
http://www.tiobe.com/index.php/content/products/jacobe/Jacobe.html . 7-I've used \
velocity as a template engine. 8-"cfggenengine.jar" contains the compiled code of \
eclipse project.

I hope this topic provides new ideas for both java developers and also for Apache \
commons configuration framework. May be we could place some useful part of this \
project into Apache commons configuration code.

Anyway thanks for patient.

      was (Author: myapacheaccount):
    I admit it is out of scope of Apache commons configuration project. But as \
interested java developer I know there is so much effort to model configuration data \
which must be effective in web development and also application development. So I \
completed the implementation and provided a generator framework which generate \
configuration classes from XML file.

I thought this is best way to close this issue and also provide a way for googlers to \
find some useful code to follow it. I actually have no time to spend for new project. \
So I hope you still accept this last upload and let google searchers use the space of \
Apache project to find interesting stuff.

Just as a short description for interested developers I should say:

1- I've attached a eclipse project (FinalConfigClasses.zip) which contains all code \
of framework. 2- The artifact of this project is an ant task which gets the XML input \
file as description of config-classes and  its output is a generated config-classes \
into "com.fanava.psp.cfg.sample" package. 3- You can inspect classes of  \
"com.fanava.psp.cfg.sample" package to find out how this framework  would generate \
useful config-classes that you can use in serious business applications. \
Test1.java,Test2.java,Test5.java, Test6.java are useful classes to see how you can \
use generated classes. 4- The concurrency equipments of generated classes are much \
simpler than previous upload. 5- So just execute ant target inside build.xml to see \
generated class files. You must fix absolute paths also. 6- Just as a note I've used \
"Jacobe" code beautifuler to format generated classes. You can download it from \
http://www.tiobe.com/index.php/content/products/jacobe/Jacobe.html . \
7-"cfggenengine.jar" contains the compiled code of eclipse project.

I hope this topic provides new ideas for both java developers and also for Apache \
commons configuration framework. May be we could place some useful part of this \
project into Apache commons configuration code.

Anyway thanks for patient.
  
> Providing BeanDiff(or ConfigurationDiff), BeanBatchUpdateListener, and some merge \
> facility for Configuration(Specially for HierarchialConfiguration) to implement \
> two-phase-commit-like protocol to alter entire configuration hierarchy in atomic \
>                 manner.
> ------------------------------------------------------------------------------------ \
> ------------------------------------------------------------------------------------ \
> ---------------------------------------------------------------------------------- 
> Key: CONFIGURATION-394
> URL: https://issues.apache.org/jira/browse/CONFIGURATION-394
> Project: Commons Configuration
> Issue Type: Improvement
> Reporter: Java Developer
> Attachments: BeanDiff.zip, cfggenengine.jar, ConfigFramework.zip, \
> FinalConfigClasses.zip 
> Original Estimate: 2016h
> Remaining Estimate: 2016h
> 
> Sorry for English and for such a generic summary:
> If you have ever worked with Weblogic AdminConsole(Weblogic 10.3 in my case) you \
> would find out that it save your changes temporary and finally by clicking "Apply \
> changes" it would save all changes in configurations. If one of the changes is \
> failed then Weblogic would rollback all changes of configurations. Something like \
> database transaction. The general idea could be that you create a clone of your \
> entire or some parts of your configuration hierarchy, then change the cloned \
> version, and finally apply back the cloned version on original version of \
> hierarchy. Here when you ask the original configuration hierarchy to accept new \
> changes then the original hierarchy would compute the Diff between itself and \
> cloned version and deliver the changes to all listeners that have registered for \
> configuration changes. If any of listeners are not agree with new changes then all \
> process of applying configuration would be rolled back! Here in this scenario you \
> need some facility to be added to Apache Commons Config and also to Apache Commons \
> BeanUtils: 1- A BeanDiff class(http://issues.apache.org/jira/browse/BEANUTILS-304) \
> that can compute the difference between two JavaBeans. These JavaBeans are custom \
> classes that programmers write for application configuration (e.g. \
> CacheConfiguration class). These custom configuration classes would use the apache \
> common config classes to to store and retrieve the configuration from any source. \
> It can be extended to have ConfigurationDiff that would represent the changes \
> between two Configuration(shows which properties are altered) 2- Cloning entire \
> hierarchy of configuration, I actually do not know whether currently Apache Commons \
> Config support this feature. 3- The most important part is adding some method to \
> Configuration interface which enables Configuration interface to accept a whole \
> configuration hierarchy and then apply that hierarchy to itself. The apply process \
> consist of traversing the hierarchy and visiting each node, then computing \
> ConfigurationDiff for each node and then notifying the registered listeners of that \
> node for all updates that node has. If one of listeners reject the update then the \
> process would call rollback method of listeners. 4- Some class like \
> ConfigurationUpdateListener(or BeanUpdateListener)  that has some method like : \
> public abstract void prepareUpdate(ConfigurationUpdateEvent updateevent) throws \
> ConfigurationUpdateRejectedException; public abstract void \
> activateUpdate(ConfigurationUpdateEvent updateevent) throws \
> ConfigurationUpdateFailedException; public abstract void \
> rollbackUpdate(ConfigurationUpdateEvent updateevent); All classes that are \
> interested in configuration changes(batch changes not just one property changes) \
> can implement this class and register themselves in Configuration node in \
>                 hierarchy.
> ------------------------------
> After some research! in Weblogic classes and jar files you can find the \
> "com.bea.core.descriptor_1.4.0.0.jar" in "BEA_HOME\modules" folder. After another \
> research you can find some interesting classes like BeanUpdateListener, \
> BeanUpdateEvent, DescriptorBean, Descriptor inside "weblogic.descriptor" package. \
> And also another interesting class "weblogic.descriptor.internal.BeanDiff" class. \
> Looking at  them is useful!! I could not completely understand the model that \
> Weblogic works but that point are what I understood about it. I some useful \
> features can be added to Apache Commons Config by looking at weblogic works. It \
> also can ease the process of writing ConfigurationMBeans for applications.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic