Author: doogie
Date: Wed Aug 13 19:38:54 2014 New Revision: 1617817 URL: http://svn.apache.org/r1617817 Log: We now have a real delegator container, that can be used to auto-start many delegator instances. Just specify the ones to load, separated by commas or spaces. Added: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorContainer.java Modified: ofbiz/trunk/framework/entity/ofbiz-component.xml Modified: ofbiz/trunk/framework/entity/ofbiz-component.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/ofbiz-component.xml?rev=1617817&r1=1617816&r2=1617817&view=diff ============================================================================== --- ofbiz/trunk/framework/entity/ofbiz-component.xml (original) +++ ofbiz/trunk/framework/entity/ofbiz-component.xml Wed Aug 13 19:38:54 2014 @@ -37,4 +37,8 @@ under the License. <entity-resource type="data" reader-name="demo" loader="main" location="data/TenantDemoData.xml"/> <test-suite loader="main" location="testdef/entitytests.xml"/> + + <container name="delegator-container" loaders="main" class="org.ofbiz.entity.DelegatorContainer"> + <property name="preload-delegators" value="default"/> + </container> </ofbiz-component> Added: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorContainer.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorContainer.java?rev=1617817&view=auto ============================================================================== --- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorContainer.java (added) +++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorContainer.java Wed Aug 13 19:38:54 2014 @@ -0,0 +1,67 @@ +/******************************************************************************* + * 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.ArrayList; +import java.util.List; +import java.util.concurrent.Future; + +import org.ofbiz.base.concurrent.ExecutionPool; +import org.ofbiz.base.container.Container; +import org.ofbiz.base.container.ContainerConfig; +import org.ofbiz.base.container.ContainerException; +import org.ofbiz.base.util.UtilValidate; +import org.ofbiz.base.util.StringUtil; + +public class DelegatorContainer implements Container { + private String name; + private List<String> preloadedDelegatorNames; + + @Override + public void init(String[] args, String name, String configFile) throws ContainerException { + this.name = name; + + ContainerConfig.Container cc = ContainerConfig.getContainer(name, configFile); + + preloadedDelegatorNames = StringUtil.split(ContainerConfig.getPropertyValue(cc, "preloaded-delegators", "default"), ", "); + } + + @Override + public boolean start() throws ContainerException { + if (UtilValidate.isEmpty(preloadedDelegatorNames)) { + return true; + } + List<Future<Delegator>> futures = new ArrayList<Future<Delegator>>(); + for (String preloadedDelegatorName: preloadedDelegatorNames) { + futures.add(DelegatorFactory.getDelegatorFuture(preloadedDelegatorName)); + } + ExecutionPool.getAllFutures(futures); + return true; + } + + @Override + public void stop() throws ContainerException { + } + + @Override + public String getName() { + return name; + } +} |
Free forum by Nabble | Edit this page |