David,

I think I figured out where the confusion comes from - we have different ideas 
of the ExecutionContext role. I see it as a means to keep track of the 
execution path, plus a container for frequently used objects. I believe you see 
it doing much more than that.

I updated my local copy of the branch with my changes from the trunk, but there 
isn't much I can do to test it - since nothing will compile.

I'm at an impasse. I believe the ExecutionContext (and ultimately the 
security-aware artifacts) can be introduced into the project small steps at a 
time - with each step being backwards compatible. I can see from the branch 
your approach is to rewrite everything.

Please accept this in the spirit it is intended. I have collaborated with you 
in the past, and it has always been enjoyable and rewarding. I'm not trying to 
be argumentative or adversarial. I only want to help. But I don't like the 
direction you're taking with this.

Here's what I suggest: let's create a new branch, and introduce changes that 
can be compiled and tested. In other words, the branch is always functional.

I know you're busy, but please try to communicate more. A lot of what you have 
in mind is in your head. I can't see inside your head. Keep in mind that we 
have a design document we can use to share ideas and agree on designs.

I have my local copy of the trunk 50% there as far as the security-aware 
artifacts are concerned. I'd really like to get it into the project.

What do you think?

-Adrian

--- On Mon, 8/10/09, Adrian Crum <adrian.c...@yahoo.com> wrote:

> From: Adrian Crum <adrian.c...@yahoo.com>
> Subject: Re: svn commit: r802567 [1/5] - in /ofbiz/trunk: 
> applications/order/src/org/ofbiz/order/shoppingcart/ 
> applications/product/src/org/ofbiz/shipment/packing/ 
> applications/product/src/org/ofbiz/shipment/verify/ 
> applications/product/src/org/ofbiz/shipment/weigh...
> To: dev@ofbiz.apache.org
> Date: Monday, August 10, 2009, 5:15 PM
> lol - while i was driving home I
> realized that statement would cause confusion. The basic
> part of keeping track of the execution path is in
> framework/base. Other components extend it to add the higher
> level artifacts.
> 
> Let me fix the branch. Then I'll port my implementation
> over to it and commit it. Then you can try it out. It's
> working quite well.
> 
> -Adrian
> 
> --- On Mon, 8/10/09, David E Jones <d...@me.com>
> wrote:
> 
> > From: David E Jones <d...@me.com>
> > Subject: Re: svn commit: r802567 [1/5] - in
> /ofbiz/trunk:
> applications/order/src/org/ofbiz/order/shoppingcart/
> applications/product/src/org/ofbiz/shipment/packing/
> applications/product/src/org/ofbiz/shipment/verify/
> applications/product/src/org/ofbiz/shipment/weigh...
> > To: dev@ofbiz.apache.org
> > Date: Monday, August 10, 2009, 4:41 PM
> > 
> > If the ExecutionContext interface is in base and the
> > GenericDelegator interface is in entity and the
> > ExecutionContext needs to use the GenericDelegator
> > interface, how will that work?
> > 
> > -David
> > 
> > 
> > On Aug 10, 2009, at 5:19 PM, Adrian Crum wrote:
> > 
> > > In my implementation, I put the ExecutionContext
> in
> > framework/base.
> > > 
> > > I'll work on updating the branch - I caused the
> > problem, so I'll fix it.
> > > 
> > > -Adrian
> > > 
> > > David E Jones wrote:
> > >> Yes, that's why I did a similar thing in the
> > branch.
> > >> Stepping back a little... please keep in mind
> that
> > the interface will not be able to stay in the entity
> > component. Part of the point of making these
> interfaces is
> > so that we can have a ExecutionContext that knows
> certain
> > things about a number of framework components without
> > actually depending on those components at compile
> time.
> > Instead with the interfaces in the execution context
> > component all of the other components can depend on
> and
> > share that.
> > >> Without that pattern it will be impossible
> to
> > implement the execution context. As part of that, I'd
> rather
> > do them all together rather than separately otherwise
> (like
> > I mentioned before) merging the branch will become
> > difficult. In fact, even with the changes you've
> already
> > added to the trunk the merge is already a HUGE mess...
> (ie
> > just updating the branch against the trunk).
> > >> -David
> > >> On Aug 10, 2009, at 4:42 PM, Adrian Crum
> wrote:
> > >>> I checked out the branch and examined
> it.
> > After looking over your ideas, I saw a way to make
> > incremental changes to the trunk - negating the need
> for a
> > branch.
> > >>> 
> > >>> The GenericDelegator refactor was done
> for two
> > reasons:
> > >>> 
> > >>> 1. To eliminate the hundreds of
> references to
> > a concrete class, that have caused inconvenience in
> the
> > past.
> > >>> 2. Eliminate thread local variables and
> the
> > cumbersome pushing and popping of the
> GenericDelegator
> > state.
> > >>> 
> > >>> How it relates to the ExecutionContext
> is, we
> > have the ability to keep an instance in the
> GenericDelegator
> > without having to create more thread local variables
> and
> > have even more things to push/pop.
> > >>> 
> > >>> It's a cleaner design.
> > >>> 
> > >>> -Adrian
> > >>> 
> > >>> David E Jones wrote:
> > >>>> Adrian,
> > >>>> What is all of this, and how does it
> > relate to what I've been working on in the
> > executioncontext20090716 branch?
> > >>>> It seems like this will:
> > >>>> 1. cause some inconvenience now,
> while
> > more comprehensive changes are being made in the
> > executioncontext20090716 branch
> > >>>> 2. make it a LOT more difficult
> (perhaps
> > impossible) to merge the executioncontext20090716
> branch
> > >>>> What is your plan with this?
> > >>>> It would make life a lot easier for
> all of
> > us if you would do some research on what I've already
> done
> > in the executioncontext20090716 branch before
> continuing
> > with this.
> > >>>> -David
> > >>>> On Aug 9, 2009, at 12:04 PM, adri...@apache.org
> > wrote:
> > >>>>> Author: adrianc
> > >>>>> Date: Sun Aug  9 18:04:26 2009
> > >>>>> New Revision: 802567
> > >>>>> 
> > >>>>> URL: http://svn.apache.org/viewvc?rev=802567&view=rev
> > >>>>> Log:
> > >>>>> Refactored GenericDelegator:
> > >>>>> 
> > >>>>> 1. Converted GenericDelegator to
> an
> > interface. We already have DelegatorInterface, but it
> isn't
> > being used anywhere. Removed DelegatorInterface.java.
> > >>>>> 
> > >>>>> 2. Extracted the static, cached
> data
> > from the GenericDelegator implementation and put it in
> its
> > own class - DelegatorData. The GenericDelegator
> > implementation holds a reference to the DelegatorData
> > instance. This makes it possible to have per-thread
> > instances of GenericDelegator.
> > >>>>> 
> > >>>>> 3. Replaced the ThreadLocal
> variables
> > with regular variables. ThreadLocal variables are no
> longer
> > needed. Client code doesn't need to be concerned with
> > pushing and popping the GenericDelegator state.
> > >>>>> 
> > >>>>> This commit paves the way for
> the
> > forthcoming ExecutionContext.
> > >>>>> 
> > >>>>> User modifications will have to
> > replace GenericDelegator.getGenericDelegator(...)
> with
> > DelegatorFactory.getGenericDelegator(...). Also,
> replace the
> > push code with the new setXxx methods, and remove the
> pop
> > code. If modifications used DelegatorInterface,
> replace that
> > with GenericDelegator.
> > >>>>> 
> > >>>>> Aside from those changes, this
> commit
> > is backwards compatible.
> > >>>>> 
> > >>>>> Added:
> > >>>>> 
> >
> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorData.java   (with
> > props)
> > >>>>> 
> >
> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorFactory.java   (with
> > props)
> > >>>>> 
> >
> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorImpl.java   (with
> > props)
> > >>>>> Removed:
> > >>>>> 
> >
> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorInterface.java
> > >>>>> Modified:
> > >>>>> 
> >
> ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CartEventListener.java
> > >>>>> 
> >
> ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java
> > >>>>> 
> >
> ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartItem.java
> > >>>>> 
> >
> ofbiz/trunk/applications/product/src/org/ofbiz/shipment/packing/PackingSession.java
> > >>>>> 
> >
> ofbiz/trunk/applications/product/src/org/ofbiz/shipment/verify/VerifyPickSession.java
> > >>>>> 
> >
> ofbiz/trunk/applications/product/src/org/ofbiz/shipment/weightPackage/WeightPackageSession.java
> > >>>>> 
> >
> ofbiz/trunk/framework/catalina/src/org/ofbiz/catalina/container/CatalinaContainer.java
> > >>>>> 
> >
> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/GenericDelegator.java
> > >>>>> 
> >
> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/GenericEntity.java
> > >>>>> 
> >
> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/cache/AbstractCache.java
> > >>>>> 
> >
> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/condition/EntityExpr.java
> > >>>>> 
> >
> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/finder/ListFinder.java
> > >>>>> 
> >
> ofbiz/trunk/framework/entityext/src/org/ofbiz/entityext/data/EntityDataLoadContainer.java
> > >>>>> 
> >
> ofbiz/trunk/framework/entityext/src/org/ofbiz/entityext/synchronization/EntitySyncContext.java
> > >>>>> 
> >
> ofbiz/trunk/framework/entityext/src/org/ofbiz/entityext/synchronization/EntitySyncServices.java
> > >>>>> 
> >
> ofbiz/trunk/framework/guiapp/src/org/ofbiz/guiapp/xui/XuiContainer.java
> > >>>>> 
> >
> ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/EntityCount.java
> > >>>>> 
> >
> ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/EntityData.java
> > >>>>> 
> >
> ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/FindByAnd.java
> > >>>>> 
> >
> ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/entityops/FindByPrimaryKey.java
> > >>>>> 
> >
> ofbiz/trunk/framework/service/src/org/ofbiz/service/ServiceDispatcher.java
> > >>>>> 
> >
> ofbiz/trunk/framework/service/src/org/ofbiz/service/mail/JavaMailContainer.java
> > >>>>> 
> >
> ofbiz/trunk/framework/service/src/org/ofbiz/service/rmi/RmiServiceContainer.java
> > >>>>> 
> >
> ofbiz/trunk/framework/testtools/src/org/ofbiz/testtools/ModelTestSuite.java
> > >>>>> 
> >
> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/ContextFilter.java
> > >>>>> 
> >
> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/ControlServlet.java
> > >>>>> 
> >
> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java
> > >>>>> 
> >
> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/CoreEvents.java
> > >>>>> 
> >
> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/ServiceStreamHandler.java
> > >>>>> 
> >
> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/XmlRpcEventHandler.java
> > >>>>> 
> >
> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/stats/ServerHitBin.java
> > >>>>> 
> >
> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/stats/VisitHandler.java
> > >>>>> 
> >
> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/webdav/WebDavServlet.java
> > >>>>> 
> >
> ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/WebslingerContextMapper.java
> > >>>>> 
> >
> ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/WebToolsServices.java
> > >>>>> 
> >
> ofbiz/trunk/specialpurpose/shark/src/org/ofbiz/shark/audit/AuditEntityObject.java
> > >>>>> 
> >
> ofbiz/trunk/specialpurpose/shark/src/org/ofbiz/shark/container/SharkContainer.java
> > >>>>> 
> >
> ofbiz/trunk/specialpurpose/shark/src/org/ofbiz/shark/instance/InstanceEntityObject.java
> > >>>>> 
> >
> ofbiz/trunk/specialpurpose/shark/src/org/ofbiz/shark/requester/AbstractRequester.java
> > >>>>> 
> >
> ofbiz/trunk/specialpurpose/webpos/src/org/ofbiz/webpos/session/WebPosSession.java
> > >>>>> 
> >
> ofbiz/trunk/specialpurpose/workflow/src/org/ofbiz/workflow/definition/XpdlReader.java
> > >>>>> 
> > >>>>> Modified:
> >
> ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CartEventListener.java
> > >>>>> URL: 
> > >>>>> http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CartEventListener.java?rev=802567&r1=802566&r2=802567&view=diff
> > >>>>>
> >
> ==============================================================================
> > >>>>> ---
> >
> ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CartEventListener.java
> > (original)
> > >>>>> +++
> >
> ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CartEventListener.java
> > Sun Aug  9 18:04:26 2009
> > >>>>> @@ -28,6 +28,7 @@
> > >>>>> import
> org.ofbiz.base.util.Debug;
> > >>>>> import
> > org.ofbiz.base.util.UtilValidate;
> > >>>>> import
> > org.ofbiz.webapp.stats.VisitHandler;
> > >>>>> +import
> > org.ofbiz.entity.DelegatorFactory;
> > >>>>> import
> > org.ofbiz.entity.GenericDelegator;
> > >>>>> import
> > org.ofbiz.entity.GenericEntityException;
> > >>>>> import
> org.ofbiz.entity.GenericValue;
> > >>>>> @@ -58,7 +59,7 @@
> > >>>>>       String
> > delegatorName = (String)
> > session.getAttribute("delegatorName");
> > >>>>>   
> >    GenericDelegator delegator = null;
> > >>>>>       if
> > (UtilValidate.isNotEmpty(delegatorName)) {
> > >>>>> -         
> >   delegator =
> > GenericDelegator.getGenericDelegator(delegatorName);
> > >>>>> +         
> >   delegator =
> > DelegatorFactory.getGenericDelegator(delegatorName);
> > >>>>>       }
> > >>>>>       if
> > (delegator == null) {
> > >>>>>       
> >    Debug.logError("Could not find delegator
> > with delegatorName in session, not saving abandoned
> cart
> > info.", module);
> > >>>>> 
> > >>>>> Modified:
> >
> ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java
> > >>>>> URL: 
> > >>>>> http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java?rev=802567&r1=802566&r2=802567&view=diff
> > >>>>>
> >
> ==============================================================================
> > >>>>> ---
> >
> ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java
> > (original)
> > >>>>> +++
> >
> ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java
> > Sun Aug  9 18:04:26 2009
> > >>>>> @@ -21,6 +21,7 @@
> > >>>>> import javolution.util.FastList;
> > >>>>> import javolution.util.FastMap;
> > >>>>> import org.ofbiz.base.util.*;
> > >>>>> +import
> > org.ofbiz.entity.DelegatorFactory;
> > >>>>> import
> > org.ofbiz.entity.GenericDelegator;
> > >>>>> import
> > org.ofbiz.entity.GenericEntityException;
> > >>>>> import
> org.ofbiz.entity.GenericPK;
> > >>>>> @@ -275,7 +276,7 @@
> > >>>>> 
> > >>>>>   public
> > GenericDelegator getDelegator() {
> > >>>>>       if
> > (delegator == null) {
> > >>>>> -         
> >   delegator =
> > GenericDelegator.getGenericDelegator(delegatorName);
> > >>>>> +         
> >   delegator =
> > DelegatorFactory.getGenericDelegator(delegatorName);
> > >>>>>       }
> > >>>>>       return
> > delegator;
> > >>>>>   }
> > >>>>> 
> > >>>>> Modified:
> >
> ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartItem.java
> > >>>>> URL: 
> > >>>>> http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartItem.java?rev=802567&r1=802566&r2=802567&view=diff
> > >>>>>
> >
> ==============================================================================
> > >>>>> ---
> >
> ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartItem.java
> > (original)
> > >>>>> +++
> >
> ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartItem.java
> > Sun Aug  9 18:04:26 2009
> > >>>>> @@ -41,6 +41,7 @@
> > >>>>> import
> org.ofbiz.base.util.UtilMisc;
> > >>>>> import
> > org.ofbiz.base.util.UtilProperties;
> > >>>>> import
> > org.ofbiz.base.util.UtilValidate;
> > >>>>> +import
> > org.ofbiz.entity.DelegatorFactory;
> > >>>>> import
> > org.ofbiz.entity.GenericDelegator;
> > >>>>> import
> > org.ofbiz.entity.GenericEntityException;
> > >>>>> import
> org.ofbiz.entity.GenericPK;
> > >>>>> @@ -2406,7 +2407,7 @@
> > >>>>>       
> >    if (UtilValidate.isEmpty(delegatorName))
> > {
> > >>>>>         
> >      throw new
> > IllegalStateException("Bad delegator name");
> > >>>>>       
> >    }
> > >>>>> -         
> >   delegator =
> > GenericDelegator.getGenericDelegator(delegatorName);
> > >>>>> +         
> >   delegator =
> > DelegatorFactory.getGenericDelegator(delegatorName);
> > >>>>>       }
> > >>>>>       return
> > delegator;
> > >>>>>   }
> > >>>>> 
> > >>>>> Modified:
> >
> ofbiz/trunk/applications/product/src/org/ofbiz/shipment/packing/PackingSession.java
> > >>>>> URL: 
> > >>>>> http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/shipment/packing/PackingSession.java?rev=802567&r1=802566&r2=802567&view=diff
> > >>>>>
> >
> ==============================================================================
> > >>>>> ---
> >
> ofbiz/trunk/applications/product/src/org/ofbiz/shipment/packing/PackingSession.java
> > (original)
> > >>>>> +++
> >
> ofbiz/trunk/applications/product/src/org/ofbiz/shipment/packing/PackingSession.java
> > Sun Aug  9 18:04:26 2009
> > >>>>> @@ -35,6 +35,7 @@
> > >>>>> import
> > org.ofbiz.base.util.UtilFormatOut;
> > >>>>> import
> org.ofbiz.base.util.UtilMisc;
> > >>>>> import
> > org.ofbiz.base.util.UtilValidate;
> > >>>>> +import
> > org.ofbiz.entity.DelegatorFactory;
> > >>>>> import
> > org.ofbiz.entity.GenericDelegator;
> > >>>>> import
> > org.ofbiz.entity.GenericEntityException;
> > >>>>> import
> org.ofbiz.entity.GenericValue;
> > >>>>> @@ -500,7 +501,7 @@
> > >>>>> 
> > >>>>>   public
> > GenericDelegator getDelegator() {
> > >>>>>       if
> > (_delegator == null) {
> > >>>>> -         
> >   _delegator =
> > GenericDelegator.getGenericDelegator(delegatorName);
> > >>>>> +         
> >   _delegator =
> > DelegatorFactory.getGenericDelegator(delegatorName);
> > >>>>>       }
> > >>>>>       return
> > _delegator;
> > >>>>>   }
> > >>>>> 
> > >>>>> Modified:
> >
> ofbiz/trunk/applications/product/src/org/ofbiz/shipment/verify/VerifyPickSession.java
> > >>>>> URL: 
> > >>>>> http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/shipment/verify/VerifyPickSession.java?rev=802567&r1=802566&r2=802567&view=diff
> > >>>>>
> >
> ==============================================================================
> > >>>>> ---
> >
> ofbiz/trunk/applications/product/src/org/ofbiz/shipment/verify/VerifyPickSession.java
> > (original)
> > >>>>> +++
> >
> ofbiz/trunk/applications/product/src/org/ofbiz/shipment/verify/VerifyPickSession.java
> > Sun Aug  9 18:04:26 2009
> > >>>>> @@ -32,6 +32,7 @@
> > >>>>> import
> org.ofbiz.base.util.UtilMisc;
> > >>>>> import
> > org.ofbiz.base.util.UtilProperties;
> > >>>>> import
> > org.ofbiz.base.util.UtilValidate;
> > >>>>> +import
> > org.ofbiz.entity.DelegatorFactory;
> > >>>>> import
> > org.ofbiz.entity.GenericDelegator;
> > >>>>> import
> > org.ofbiz.entity.GenericEntityException;
> > >>>>> import
> org.ofbiz.entity.GenericValue;
> > >>>>> @@ -76,7 +77,7 @@
> > >>>>> 
> > >>>>>   public
> > GenericDelegator getDelegator() {
> > >>>>>       if
> > (_delegator == null) {
> > >>>>> -         
> >   _delegator =
> > GenericDelegator.getGenericDelegator(delegatorName);
> > >>>>> +         
> >   _delegator =
> > DelegatorFactory.getGenericDelegator(delegatorName);
> > >>>>>       }
> > >>>>>       return
> > _delegator;
> > >>>>>   }
> > >>>>> 
> > >>>>> Modified:
> >
> ofbiz/trunk/applications/product/src/org/ofbiz/shipment/weightPackage/WeightPackageSession.java
> > >>>>> URL: 
> > >>>>> http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/shipment/weightPackage/WeightPackageSession.java?rev=802567&r1=802566&r2=802567&view=diff
> > >>>>>
> >
> ==============================================================================
> > >>>>> ---
> >
> ofbiz/trunk/applications/product/src/org/ofbiz/shipment/weightPackage/WeightPackageSession.java
> > (original)
> > >>>>> +++
> >
> ofbiz/trunk/applications/product/src/org/ofbiz/shipment/weightPackage/WeightPackageSession.java
> > Sun Aug  9 18:04:26 2009
> > >>>>> @@ -34,6 +34,7 @@
> > >>>>> import
> > org.ofbiz.base.util.UtilNumber;
> > >>>>> import
> > org.ofbiz.base.util.UtilProperties;
> > >>>>> import
> > org.ofbiz.base.util.UtilValidate;
> > >>>>> +import
> > org.ofbiz.entity.DelegatorFactory;
> > >>>>> import
> > org.ofbiz.entity.GenericDelegator;
> > >>>>> import
> > org.ofbiz.entity.GenericEntityException;
> > >>>>> import
> org.ofbiz.entity.GenericValue;
> > >>>>> @@ -102,7 +103,7 @@
> > >>>>> 
> > >>>>>   public
> > GenericDelegator getDelegator() {
> > >>>>>       if
> > (_delegator == null) {
> > >>>>> -         
> >   _delegator =
> > GenericDelegator.getGenericDelegator(delegatorName);
> > >>>>> +         
> >   _delegator =
> > DelegatorFactory.getGenericDelegator(delegatorName);
> > >>>>>       }
> > >>>>>       return
> > _delegator;
> > >>>>>   }
> > >>>>> 
> > >>>>> Modified:
> >
> ofbiz/trunk/framework/catalina/src/org/ofbiz/catalina/container/CatalinaContainer.java
> > >>>>> URL: 
> > >>>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/catalina/src/org/ofbiz/catalina/container/CatalinaContainer.java?rev=802567&r1=802566&r2=802567&view=diff
> > >>>>>
> >
> ==============================================================================
> > >>>>> ---
> >
> ofbiz/trunk/framework/catalina/src/org/ofbiz/catalina/container/CatalinaContainer.java
> > (original)
> > >>>>> +++
> >
> ofbiz/trunk/framework/catalina/src/org/ofbiz/catalina/container/CatalinaContainer.java
> > Sun Aug  9 18:04:26 2009
> > >>>>> @@ -36,6 +36,7 @@
> > >>>>> import
> > org.ofbiz.base.container.ContainerException;
> > >>>>> import
> >
> org.ofbiz.base.container.ContainerConfig.Container.Property;
> > >>>>> import org.ofbiz.base.util.*;
> > >>>>> +import
> > org.ofbiz.entity.DelegatorFactory;
> > >>>>> import
> > org.ofbiz.entity.GenericDelegator;
> > >>>>> 
> > >>>>> import
> org.apache.catalina.Cluster;
> > >>>>> @@ -168,7 +169,7 @@
> > >>>>>       //int
> > debug = ContainerConfig.getPropertyValue(cc, "debug",
> 0);
> > >>>>> 
> > >>>>>       // grab
> > some global context settings
> > >>>>> -       
> > this.delegator =
> >
> GenericDelegator.getGenericDelegator(ContainerConfig.getPropertyValue(cc,
> > "delegator-name", "default"));
> > >>>>> +       
> > this.delegator =
> >
> DelegatorFactory.getGenericDelegator(ContainerConfig.getPropertyValue(cc,
> > "delegator-name", "default"));
> > >>>>>   
> >    this.contextReloadable =
> > ContainerConfig.getPropertyValue(cc,
> > "apps-context-reloadable", false);
> > >>>>>   
> >    this.crossContext =
> > ContainerConfig.getPropertyValue(cc,
> "apps-cross-context",
> > true);
> > >>>>>   
> >    this.distribute =
> > ContainerConfig.getPropertyValue(cc,
> "apps-distributable",
> > true);
> > >>>>> 
> > >>>>> Added:
> >
> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorData.java
> > >>>>> URL: 
> > >>>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorData.java?rev=802567&view=auto
> > >>>>>
> >
> ==============================================================================
> > >>>>> ---
> >
> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorData.java
> > (added)
> > >>>>> +++
> >
> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorData.java
> > Sun Aug  9 18:04:26 2009
> > >>>>> @@ -0,0 +1,110 @@
> > >>>>> +/*
> > >>>>> + * Licensed to the Apache
> Software
> > Foundation (ASF) under one
> > >>>>> + * or more contributor license
> > agreements.  See the NOTICE file
> > >>>>> + * distributed with this work
> for
> > additional information
> > >>>>> + * regarding copyright
> > ownership.  The ASF licenses this file
> > >>>>> + * to you under the Apache
> License,
> > Version 2.0 (the
> > >>>>> + * "License"); you may not use
> this
> > file except in compliance
> > >>>>> + * with the License.  You may
> > obtain a copy of the License at
> > >>>>> + *
> > >>>>> + * http://www.apache.org/licenses/LICENSE-2.0
> > >>>>> + *
> > >>>>> + * Unless required by applicable
> law
> > or agreed to in writing,
> > >>>>> + * software distributed under
> the
> > License is distributed on an
> > >>>>> + * "AS IS" BASIS, WITHOUT
> WARRANTIES
> > OR CONDITIONS OF ANY
> > >>>>> + * KIND, either express or
> > implied.  See the License for the
> > >>>>> + * specific language governing
> > permissions and limitations
> > >>>>> + * under the License.
> > >>>>> + */
> > >>>>> +package org.ofbiz.entity;
> > >>>>> +
> > >>>>> +import java.util.Map;
> > >>>>> +
> > >>>>> +import javolution.util.FastMap;
> > >>>>> +
> > >>>>> +import
> org.ofbiz.base.util.Debug;
> > >>>>> +import
> org.ofbiz.entity.cache.Cache;
> > >>>>> +import
> > org.ofbiz.entity.config.DelegatorInfo;
> > >>>>> +import
> > org.ofbiz.entity.config.EntityConfigUtil;
> > >>>>> +import
> > org.ofbiz.entity.eca.EntityEcaHandler;
> > >>>>> +import
> > org.ofbiz.entity.model.ModelGroupReader;
> > >>>>> +import
> > org.ofbiz.entity.model.ModelReader;
> > >>>>> +import
> > org.ofbiz.entity.util.DistributedCacheClear;
> > >>>>> +import
> > org.ofbiz.entity.util.EntityCrypto;
> > >>>>> +import
> > org.ofbiz.entity.util.SequenceUtil;
> > >>>>> +
> > >>>>> +/** Data source for the
> DelegatorImpl
> > Class. */
> > >>>>> +public class DelegatorData
> implements
> > Cloneable {
> > >>>>> +
> > >>>>> +    public static final
> > String module = DelegatorData.class.getName();
> > >>>>> +    /**
> > >>>>> +     * the
> > delegatorDataCache will now be a HashMap, allowing
> reload
> > of
> > >>>>> +     *
> > definitions, but the delegator will always be the
> same
> > object for the
> > >>>>> +     * given
> > name
> > >>>>> +     */
> > >>>>> +    protected static final
> > Map<String, DelegatorData> delegatorDataCache =
> > FastMap.newInstance();
> > >>>>> +
> > >>>>> +    /**
> > >>>>> +     * keeps a
> > list of field key sets used in the by and cache, a Set
> (of
> > Sets
> > >>>>> +     * of
> > fieldNames) for each entityName
> > >>>>> +     */
> > >>>>> +    protected Map<?,
> > ?> andCacheFieldSets = FastMap.newInstance();
> > >>>>> +    protected Cache cache =
> > null;
> > >>>>> +    protected EntityCrypto
> > crypto = null;
> > >>>>> +    protected DelegatorInfo
> > delegatorInfo = null;
> > >>>>> +    protected String
> > delegatorName = null;
> > >>>>> +    protected
> > DistributedCacheClear distributedCacheClear = null;
> > >>>>> +    protected
> > EntityEcaHandler<?> entityEcaHandler = null;
> > >>>>> +    protected
> > ModelGroupReader modelGroupReader = null;
> > >>>>> +    protected ModelReader
> > modelReader = null;
> > >>>>> +    protected String
> > originalDelegatorName = null;
> > >>>>> +    protected SequenceUtil
> > sequencer = null;
> > >>>>> +    protected boolean
> > initialized = false;
> > >>>>> +
> > >>>>> +    public static
> > synchronized DelegatorData getInstance(String
> delegatorName)
> > throws GenericEntityException {
> > >>>>> +        if
> > (delegatorName == null) {
> > >>>>> +         
> >   delegatorName = "default";
> > >>>>> +         
> >   Debug.logWarning(new Exception("Location where
> > getting delegator with null name"), "Got a
> > getGenericDelegator call with a null delegatorName,
> assuming
> > \"default\" for the name.", module);
> > >>>>> +        }
> > >>>>> +       
> > DelegatorData delegatorData =
> > delegatorDataCache.get(delegatorName);
> > >>>>> +        if
> > (delegatorData == null) {
> > >>>>> +         
> >   if (Debug.infoOn()) {
> > >>>>> +         
> >       Debug.logInfo("Creating new delegator
> > data instance [" + delegatorName + "] (" +
> > Thread.currentThread().getName() + ")", module);
> > >>>>> +         
> >   }
> > >>>>> +         
> >   delegatorData = new DelegatorData(delegatorName);
> > >>>>> +         
> >   delegatorDataCache.put(delegatorName,
> > delegatorData);
> > >>>>> +        }
> > >>>>> +        return
> > delegatorData;
> > >>>>> +    }
> > >>>>> +
> > >>>>> +    /** Only allow creation
> > through the factory method */
> > >>>>> +    protected
> > DelegatorData() {
> > >>>>> +    }
> > >>>>> +
> > >>>>> +    /** Only allow creation
> > through the factory method */
> > >>>>> +    protected
> > DelegatorData(String delegatorName) throws
> > GenericEntityException {
> > >>>>> +       
> > this.delegatorName = delegatorName;
> > >>>>> +       
> > this.originalDelegatorName = delegatorName;
> > >>>>> +       
> > this.modelReader =
> > ModelReader.getModelReader(delegatorName);
> > >>>>> +       
> > this.modelGroupReader =
> > ModelGroupReader.getModelGroupReader(delegatorName);
> > >>>>> +       
> > this.cache = new Cache(delegatorName);
> > >>>>> +       
> > this.delegatorInfo =
> >
> EntityConfigUtil.getDelegatorInfo(this.delegatorName);
> > >>>>> +    }
> > >>>>> +
> > >>>>> +    @Override
> > >>>>> +    protected Object
> > clone() {
> > >>>>> +       
> > DelegatorData delegatorData = new DelegatorData();
> > >>>>> +       
> > delegatorData.modelReader = this.modelReader;
> > >>>>> +       
> > delegatorData.modelGroupReader =
> this.modelGroupReader;
> > >>>>> +       
> > delegatorData.delegatorName = this.delegatorName;
> > >>>>> +       
> > delegatorData.delegatorInfo = this.delegatorInfo;
> > >>>>> +       
> > delegatorData.cache = this.cache;
> > >>>>> +       
> > delegatorData.andCacheFieldSets =
> this.andCacheFieldSets;
> > >>>>> +       
> > delegatorData.distributedCacheClear =
> > this.distributedCacheClear;
> > >>>>> +       
> > delegatorData.originalDelegatorName =
> > this.originalDelegatorName;
> > >>>>> +       
> > delegatorData.entityEcaHandler =
> this.entityEcaHandler;
> > >>>>> +       
> > delegatorData.sequencer = this.sequencer;
> > >>>>> +       
> > delegatorData.crypto = this.crypto;
> > >>>>> +        return
> > delegatorData;
> > >>>>> +    }
> > >>>>> +}
> > >>>>> 
> > >>>>> Propchange:
> >
> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorData.java
> > >>>>>
> >
> ------------------------------------------------------------------------------
> > >>>>>  svn:eol-style = native
> > >>>>> 
> > >>>>> Propchange:
> >
> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorData.java
> > >>>>>
> >
> ------------------------------------------------------------------------------
> > >>>>>  svn:keywords = "Date Rev
> Author
> > URL Id"
> > >>>>> 
> > >>>>> Propchange:
> >
> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorData.java
> > >>>>>
> >
> ------------------------------------------------------------------------------
> > >>>>>  svn:mime-type = text/plain
> > >>>>> 
> > >>>>> Added:
> >
> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorFactory.java
> > >>>>> URL: 
> > >>>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorFactory.java?rev=802567&view=auto
> > >>>>>
> >
> ==============================================================================
> > >>>>> ---
> >
> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorFactory.java
> > (added)
> > >>>>> +++
> >
> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorFactory.java
> > Sun Aug  9 18:04:26 2009
> > >>>>> @@ -0,0 +1,44 @@
> > >>>>> +/*
> > >>>>> + * Licensed to the Apache
> Software
> > Foundation (ASF) under one
> > >>>>> + * or more contributor license
> > agreements.  See the NOTICE file
> > >>>>> + * distributed with this work
> for
> > additional information
> > >>>>> + * regarding copyright
> > ownership.  The ASF licenses this file
> > >>>>> + * to you under the Apache
> License,
> > Version 2.0 (the
> > >>>>> + * "License"); you may not use
> this
> > file except in compliance
> > >>>>> + * with the License.  You may
> > obtain a copy of the License at
> > >>>>> + *
> > >>>>> + * http://www.apache.org/licenses/LICENSE-2.0
> > >>>>> + *
> > >>>>> + * Unless required by applicable
> law
> > or agreed to in writing,
> > >>>>> + * software distributed under
> the
> > License is distributed on an
> > >>>>> + * "AS IS" BASIS, WITHOUT
> WARRANTIES
> > OR CONDITIONS OF ANY
> > >>>>> + * KIND, either express or
> > implied.  See the License for the
> > >>>>> + * specific language governing
> > permissions and limitations
> > >>>>> + * under the License.
> > >>>>> + */
> > >>>>> +package org.ofbiz.entity;
> > >>>>> +
> > >>>>> +import
> org.ofbiz.base.util.Debug;
> > >>>>> +
> > >>>>> +/** GenericDelegator Factory
> Class.
> > */
> > >>>>> +public class DelegatorFactory {
> > >>>>> +
> > >>>>> +    public static final
> > String module = DelegatorFactory.class.getName();
> > >>>>> +
> > >>>>> +    public static
> > GenericDelegator getGenericDelegator(String
> delegatorName)
> > {
> > >>>>> +        if
> > (delegatorName == null) {
> > >>>>> +         
> >   delegatorName = "default";
> > >>>>> +         
> >   Debug.logWarning(new Exception("Location where
> > getting delegator with null name"), "Got a
> > getGenericDelegator call with a null delegatorName,
> assuming
> > default for the name.", module);
> > >>>>> +        }
> > >>>>> +       
> > DelegatorData delegatorData = null;
> > >>>>> +        try {
> > >>>>> +         
> >   delegatorData =
> > DelegatorData.getInstance(delegatorName);
> > >>>>> +        } catch
> > (GenericEntityException e) {
> > >>>>> +         
> >   Debug.logError(e, "Could not create delegator with
> > name \"" + delegatorName + "\": ", module);
> > >>>>> +        }
> > >>>>> +        if
> > (delegatorData != null) {
> > >>>>> +         
> >   return new DelegatorImpl(delegatorData);
> > >>>>> +        }
> > >>>>> +        return
> > null;
> > >>>>> +    }
> > >>>>> +}
> > >>>>> 
> > >>>>> Propchange:
> >
> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorFactory.java
> > >>>>>
> >
> ------------------------------------------------------------------------------
> > >>>>>  svn:eol-style = native
> > >>>>> 
> > >>>>> Propchange:
> >
> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorFactory.java
> > >>>>>
> >
> ------------------------------------------------------------------------------
> > >>>>>  svn:keywords = "Date Rev
> Author
> > URL Id"
> > >>>>> 
> > >>>>> Propchange:
> >
> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorFactory.java
> > >>>>>
> >
> ------------------------------------------------------------------------------
> > >>>>>  svn:mime-type = text/plain
> > >>>>> 
> > >>>>> 
> > 
> > 
> 
> 
>  
> 



Reply via email to