package restructuring
tom.baeyens May 28, 2008 3:13 AMhere's the package renaming that i would like to introduce
current name ......................... destination package name org.jbpm ............................. org.jbpm.pvm org.jbpm.cal ......................... org.jbpm.pvm.internal.cal org.jbpm.client ...................... org.jbpm.pvm.internal.svc org.jbpm.deploy.Deployment ........... org.jbpm.pvm org.jbpm.deploy ...................... org.jbpm.pvm.internal.deploy org.jbpm.enterprise .................. org.jbpm.pvm.internal.ejb org.jbpm.env ......................... org.jbpm.pvm.env org.jbpm.env.context ................. org.jbpm.pvm.internal.env org.jbpm.env.impl .................... org.jbpm.pvm.internal.env org.jbpm.env.session ................. org.jbpm.pvm.session org.jbpm.env.tx.Transaction .......... org.jbpm.pvm.env org.jbpm.env.tx ...................... org.jbpm.pvm.internal.tx org.jbpm.env.xml.EnvironmentParser ... org.jbpm.pvm.env org.jbpm.env.xml ..................... org.jbpm.pvm.internal.env.xml org.jbpm.hibernate ................... org.jbpm.pvm.internal.hibernate org.jbpm.jms ......................... org.jbpm.pvm.internal.jms org.jbpm.jobexecutor ................. org.jbpm.pvm.internal.jobexecutor org.jbpm.lob ......................... org.jbpm.pvm.internal.lob org.jbpm.log ......................... org.jbpm.pvm.internal.log org.jbpm.pvm.impl .................... org.jbpm.pvm.internal.impl org.jbpm.pvm.impl.op ................. org.jbpm.pvm.internal.impl.op org.jbpm.pvm.job ..................... org.jbpm.pvm.internal.job (implementations) org.jbpm.pvm.job ..................... org.jbpm.pvm.job (extract interfaces) org.jbpm.pvm.log ..................... org.jbpm.pvm.internal.processlog org.jbpm.pvm.type .................... org.jbpm.pvm.internal.type org.jbpm.stream ...................... org.jbpm.pvm.internal.stream org.jbpm.util.Listener ............... org.jbpm.pvm.util org.jbpm.util.Observable ............. org.jbpm.pvm.util org.jbpm.util ........................ org.jbpm.pvm.internal.util org.jbpm.wire ........................ org.jbpm.pvm.internal.wire org.jbpm.xml.Parser .................. org.jbpm.pvm.util org.jbpm.xml.Parse ................... org.jbpm.pvm.util org.jbpm.xml ......................... org.jbpm.pvm.internal.xml
This excercise revealed that the distinction between API and implementation was way more blurry then I thought it was.
The main goal of this separation is improving the user experience. Users should be able to use all of the straightforward functionality by only using the public API. Only for tricky things, users might revert to the internal packages that serve as a kind of back door.
By indicating very clearly the API and minimizing it, we create much more maintainable situation between pvm and its users.
In the next couple of weeks I'll be refactoring towards this restructuring and describing the intended usage in different environments.
So for the next weeks till this refactoring is done, always sync up front with me in this forum before you want to apply changes.