Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/GenericDelegator.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/GenericDelegator.java?rev=1618554&r1=1618553&r2=1618554&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/GenericDelegator.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/GenericDelegator.java Mon Aug 18 07:42:27 2014 @@ -30,13 +30,16 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.Callable; +import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; +import java.util.concurrent.FutureTask; import java.util.concurrent.LinkedBlockingDeque; import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReferenceFieldUpdater; import javax.xml.parsers.ParserConfigurationException; +import org.ofbiz.base.concurrent.ConstantFuture; import org.ofbiz.base.concurrent.ExecutionPool; import org.ofbiz.base.util.Debug; import org.ofbiz.base.util.GeneralRuntimeException; @@ -103,9 +106,9 @@ public class GenericDelegator implements protected Cache cache = null; - protected DistributedCacheClear distributedCacheClear = null; + protected final AtomicReference<Future<DistributedCacheClear>> distributedCacheClear = new AtomicReference<Future<DistributedCacheClear>>(); protected boolean warnNoEcaHandler = false; - protected EntityEcaHandler<?> entityEcaHandler = null; + protected final AtomicReference<Future<EntityEcaHandler<?>>> entityEcaHandler = new AtomicReference<Future<EntityEcaHandler<?>>>(); protected final AtomicReference<SequenceUtil> AtomicRefSequencer = new AtomicReference<SequenceUtil>(null); protected EntityCrypto crypto = null; @@ -249,7 +252,7 @@ public class GenericDelegator implements Set<String> groupNames = getModelGroupReader().getGroupNames(delegatorBaseName); List<Future<Void>> futures = new LinkedList<Future<Void>>(); for (String groupName: groupNames) { - futures.add(ExecutionPool.GLOBAL_EXECUTOR.submit(createHelperCallable(groupName))); + futures.add(ExecutionPool.GLOBAL_BATCH.submit(createHelperCallable(groupName))); } ExecutionPool.getAllFutures(futures); @@ -320,9 +323,23 @@ public class GenericDelegator implements @Override public synchronized void initEntityEcaHandler() { // Nothing to do if already assigned: the class loader has already been called, the class instantiated and casted to EntityEcaHandler - if (this.entityEcaHandler != null || this.warnNoEcaHandler) { + if (this.entityEcaHandler.get() != null || this.warnNoEcaHandler) { return; } + + Callable<EntityEcaHandler<?>> creator = new Callable<EntityEcaHandler<?>>() { + public EntityEcaHandler<?> call() { + return createEntityEcaHandler(); + } + }; + FutureTask<EntityEcaHandler<?>> futureTask = new FutureTask<EntityEcaHandler<?>>(creator); + if (this.entityEcaHandler.compareAndSet(null, futureTask)) { + // This needs to use BATCH, as the service engine might add it's own items into a thread pool. + ExecutionPool.GLOBAL_BATCH.submit(futureTask); + } + } + + protected EntityEcaHandler<?> createEntityEcaHandler() { // If useEntityEca is false do nothing: the entityEcaHandler member field with a null value would cause its code to do nothing if (this.delegatorInfo.getEntityEcaEnabled()) { //time to do some tricks with manual class loading that resolves circular dependencies, like calling services @@ -332,8 +349,9 @@ public class GenericDelegator implements try { Class<?> eecahClass = loader.loadClass(entityEcaHandlerClassName); - this.entityEcaHandler = UtilGenerics.cast(eecahClass.newInstance()); - this.entityEcaHandler.setDelegator(this); + EntityEcaHandler<?> entityEcaHandler = UtilGenerics.cast(eecahClass.newInstance()); + entityEcaHandler.setDelegator(this); + return entityEcaHandler; } catch (ClassNotFoundException e) { Debug.logWarning(e, "EntityEcaHandler class with name " + entityEcaHandlerClassName + " was not found, Entity ECA Rules will be disabled", module); } catch (InstantiationException e) { @@ -347,6 +365,7 @@ public class GenericDelegator implements Debug.logInfo("Entity ECA Handler disabled for delegator [" + delegatorFullName + "]", module); this.warnNoEcaHandler = true; } + return null; } /* (non-Javadoc) @@ -2055,8 +2074,12 @@ public class GenericDelegator implements public void clearAllCaches(boolean distribute) { cache.clear(); - if (distribute && this.distributedCacheClear != null) { - this.distributedCacheClear.clearAllCaches(); + if (!distribute) { + return; + } + DistributedCacheClear dcc = getDistributedCacheClear(); + if (dcc != null) { + dcc.clearAllCaches(); } } @@ -2119,8 +2142,13 @@ public class GenericDelegator implements cache.remove(dummyPK); - if (distribute && this.distributedCacheClear != null) { - this.distributedCacheClear.distributedClearCacheLineFlexible(dummyPK); + if (!distribute) { + return; + } + + DistributedCacheClear dcc = getDistributedCacheClear(); + if (dcc != null) { + dcc.distributedClearCacheLineFlexible(dummyPK); } } } @@ -2146,8 +2174,13 @@ public class GenericDelegator implements cache.remove(entityName, condition); - if (distribute && this.distributedCacheClear != null) { - this.distributedCacheClear.distributedClearCacheLineByCondition(entityName, condition); + if (!distribute) { + return; + } + + DistributedCacheClear dcc = getDistributedCacheClear(); + if (dcc != null) { + dcc.distributedClearCacheLineByCondition(entityName, condition); } } } @@ -2176,8 +2209,13 @@ public class GenericDelegator implements cache.remove(primaryKey); - if (distribute && this.distributedCacheClear != null) { - this.distributedCacheClear.distributedClearCacheLine(primaryKey); + if (!distribute) { + return; + } + + DistributedCacheClear dcc = getDistributedCacheClear(); + if (dcc != null) { + dcc.distributedClearCacheLine(primaryKey); } } @@ -2206,8 +2244,13 @@ public class GenericDelegator implements cache.remove(value); - if (distribute && this.distributedCacheClear != null) { - this.distributedCacheClear.distributedClearCacheLine(value); + if (!distribute) { + return; + } + + DistributedCacheClear dcc = getDistributedCacheClear(); + if (dcc != null) { + dcc.distributedClearCacheLine(value); } } @@ -2291,7 +2334,7 @@ public class GenericDelegator implements */ @Override public void setDistributedCacheClear(DistributedCacheClear distributedCacheClear) { - this.distributedCacheClear = distributedCacheClear; + this.distributedCacheClear.set(new ConstantFuture<DistributedCacheClear>(distributedCacheClear)); } // ======= XML Related Methods ======== @@ -2431,7 +2474,7 @@ public class GenericDelegator implements if (this.testRollbackInProgress) { return createEntityEcaRuleRunner(null, null); } - return createEntityEcaRuleRunner(this.entityEcaHandler, entityName); + return createEntityEcaRuleRunner(getEntityEcaHandler(), entityName); } protected static <T> EntityEcaRuleRunner<T> createEntityEcaRuleRunner(EntityEcaHandler<T> entityEcaHandler, String entityName) { @@ -2443,7 +2486,7 @@ public class GenericDelegator implements */ @Override public <T> void setEntityEcaHandler(EntityEcaHandler<T> entityEcaHandler) { - this.entityEcaHandler = entityEcaHandler; + this.entityEcaHandler.set(new ConstantFuture<EntityEcaHandler<?>>(entityEcaHandler)); this.warnNoEcaHandler = false; } @@ -2452,7 +2495,15 @@ public class GenericDelegator implements */ @Override public <T> EntityEcaHandler<T> getEntityEcaHandler() { - return UtilGenerics.cast(this.entityEcaHandler); + Future<EntityEcaHandler<?>> future = this.entityEcaHandler.get(); + try { + return UtilGenerics.cast(future != null ? future.get() : null); + } catch (ExecutionException e) { + Debug.logError(e, "Could not fetch EntityEcaHandler from the asynchronous instantiation", module); + } catch (InterruptedException e) { + Debug.logError(e, "Could not fetch EntityEcaHandler from the asynchronous instantiation", module); + } + return null; } /* (non-Javadoc) @@ -2791,9 +2842,9 @@ public class GenericDelegator implements newDelegator.delegatorBaseName = this.delegatorBaseName; newDelegator.delegatorInfo = this.delegatorInfo; newDelegator.cache = this.cache; - newDelegator.distributedCacheClear = this.distributedCacheClear; + newDelegator.distributedCacheClear.set(this.distributedCacheClear.get()); newDelegator.originalDelegatorName = getOriginalDelegatorName(); - newDelegator.entityEcaHandler = this.entityEcaHandler; + newDelegator.entityEcaHandler.set(this.entityEcaHandler.get()); newDelegator.crypto = this.crypto; // In case this delegator is in testMode give it a reference to // the rollback list @@ -2818,7 +2869,7 @@ public class GenericDelegator implements @Override public GenericDelegator makeTestDelegator(String delegatorName) { GenericDelegator testDelegator = this.cloneDelegator(delegatorName); - testDelegator.entityEcaHandler = null; + testDelegator.entityEcaHandler.set(null); testDelegator.initEntityEcaHandler(); testDelegator.setTestMode(true); return testDelegator; @@ -2899,10 +2950,22 @@ public class GenericDelegator implements @Override public void initDistributedCacheClear() { // Nothing to do if already assigned: the class loader has already been called, the class instantiated and casted to DistributedCacheClear - if (this.distributedCacheClear != null) { + if (this.distributedCacheClear.get() != null) { return; } + Callable<DistributedCacheClear> creator = new Callable<DistributedCacheClear>() { + public DistributedCacheClear call() { + return createDistributedCacheClear(); + } + }; + FutureTask<DistributedCacheClear> futureTask = new FutureTask<DistributedCacheClear>(creator); + if (distributedCacheClear.compareAndSet(null, futureTask)) { + ExecutionPool.GLOBAL_BATCH.submit(futureTask); + } + } + + protected DistributedCacheClear createDistributedCacheClear() { // If useDistributedCacheClear is false do nothing: the distributedCacheClear member field with a null value would cause dcc code to do nothing if (useDistributedCacheClear()) { //time to do some tricks with manual class loading that resolves circular dependencies, like calling services @@ -2912,8 +2975,9 @@ public class GenericDelegator implements try { Class<?> dccClass = loader.loadClass(distributedCacheClearClassName); - this.distributedCacheClear = UtilGenerics.cast(dccClass.newInstance()); - this.distributedCacheClear.setDelegator(this, this.delegatorInfo.getDistributedCacheClearUserLoginId()); + DistributedCacheClear distributedCacheClear = UtilGenerics.cast(dccClass.newInstance()); + distributedCacheClear.setDelegator(this, this.delegatorInfo.getDistributedCacheClearUserLoginId()); + return distributedCacheClear; } catch (ClassNotFoundException e) { Debug.logWarning(e, "DistributedCacheClear class with name " + distributedCacheClearClassName + " was not found, distributed cache clearing will be disabled", module); } catch (InstantiationException e) { @@ -2926,6 +2990,19 @@ public class GenericDelegator implements } else { Debug.logVerbose("Distributed Cache Clear System disabled for delegator [" + delegatorFullName + "]", module); } + return null; + } + + protected DistributedCacheClear getDistributedCacheClear() { + Future<DistributedCacheClear> future = this.distributedCacheClear.get(); + try { + return future != null ? future.get() : null; + } catch (ExecutionException e) { + Debug.logError(e, "Could not fetch DistributedCacheClear from the asynchronous instantiation", module); + } catch (InterruptedException e) { + Debug.logError(e, "Could not fetch DistributedCacheClear from the asynchronous instantiation", module); + } + return null; } @Override Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/datasource/GenericDAO.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/datasource/GenericDAO.java?rev=1618554&r1=1618553&r2=1618554&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/datasource/GenericDAO.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/datasource/GenericDAO.java Mon Aug 18 07:42:27 2014 @@ -96,7 +96,7 @@ public class GenericDAO { this.helperInfo = helperInfo; this.modelFieldTypeReader = ModelFieldTypeReader.getModelFieldTypeReader(helperInfo.getHelperBaseName()); this.datasource = EntityConfigUtil.getDatasource(helperInfo.getHelperBaseName()); - this.executor = ExecutionPool.getExecutor(GENERIC_DAO_THREAD_GROUP, "OFBiz-entity-datasource(" + helperInfo.getHelperFullName() + ")", datasource.getMaxWorkerPoolSize(), false); + this.executor = ExecutionPool.getScheduledExecutor(GENERIC_DAO_THREAD_GROUP, "OFBiz-entity-datasource(" + helperInfo.getHelperFullName() + ")", datasource.getMaxWorkerPoolSize(), false); } public <T> Future<T> submitWork(Callable<T> callable) throws GenericEntityException { Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/datasource/MemoryHelper.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/datasource/MemoryHelper.java?rev=1618554&r1=1618553&r2=1618554&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/datasource/MemoryHelper.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/datasource/MemoryHelper.java Mon Aug 18 07:42:27 2014 @@ -282,7 +282,7 @@ public class MemoryHelper implements Gen this.helperName = helperName; modelFieldTypeReader = ModelFieldTypeReader.getModelFieldTypeReader(helperName); Datasource datasourceInfo = EntityConfigUtil.getDatasource(helperName); - this.executor = ExecutionPool.getExecutor(MEMORY_HELPER_THREAD_GROUP, "OFBiz-entity-datasource(" + helperName + ")", datasourceInfo.getMaxWorkerPoolSize(), false); + this.executor = ExecutionPool.getScheduledExecutor(MEMORY_HELPER_THREAD_GROUP, "OFBiz-entity-datasource(" + helperName + ")", datasourceInfo.getMaxWorkerPoolSize(), false); } public String getHelperName() { Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/util/EntityUtilProperties.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/util/EntityUtilProperties.java?rev=1618554&r1=1618553&r2=1618554&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/util/EntityUtilProperties.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/util/EntityUtilProperties.java Mon Aug 18 07:42:27 2014 @@ -55,15 +55,15 @@ public class EntityUtilProperties implem // find system property try { - GenericValue systemProperty = delegator.findOne("SystemProperty", UtilMisc.toMap("systemResourceId", resource, "systemPropertyId", name), false); - if (UtilValidate.isNotEmpty(systemProperty)) { + GenericValue systemProperty = delegator.findOne("SystemProperty", UtilMisc.toMap("systemResourceId", resource, "systemPropertyId", name), true); + if (systemProperty != null) { String systemPropertyValue = systemProperty.getString("systemPropertyValue"); if (UtilValidate.isNotEmpty(systemPropertyValue)) { return systemPropertyValue; } } } catch (Exception e) { - Debug.logWarning("Could not get a sytem property for " + name + " : " + e.getMessage(), module); + Debug.logWarning("Could not get a system property for " + name + " : " + e.getMessage(), module); } return null; } Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entityext/src/org/ofbiz/entityext/eca/DelegatorEcaHandler.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entityext/src/org/ofbiz/entityext/eca/DelegatorEcaHandler.java?rev=1618554&r1=1618553&r2=1618554&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entityext/src/org/ofbiz/entityext/eca/DelegatorEcaHandler.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entityext/src/org/ofbiz/entityext/eca/DelegatorEcaHandler.java Mon Aug 18 07:42:27 2014 @@ -22,7 +22,13 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.TreeSet; +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.Future; +import java.util.concurrent.FutureTask; +import java.util.concurrent.atomic.AtomicReference; +import org.ofbiz.base.concurrent.ExecutionPool; import org.ofbiz.base.util.Debug; import org.ofbiz.base.util.UtilValidate; import org.ofbiz.entity.Delegator; @@ -42,7 +48,7 @@ public class DelegatorEcaHandler impleme protected Delegator delegator = null; protected String delegatorName = null; protected String entityEcaReaderName = null; - protected DispatchContext dctx = null; + protected AtomicReference<Future<DispatchContext>> dctx = new AtomicReference<Future<DispatchContext>>(); public DelegatorEcaHandler() { } @@ -50,12 +56,32 @@ public class DelegatorEcaHandler impleme this.delegator = delegator; this.delegatorName = delegator.getDelegatorName(); this.entityEcaReaderName = EntityEcaUtil.getEntityEcaReaderName(delegator.getDelegatorBaseName()); - this.dctx = EntityServiceFactory.getDispatchContext(delegator); + + Callable<DispatchContext> creator = new Callable<DispatchContext>() { + public DispatchContext call() { + return EntityServiceFactory.getDispatchContext(DelegatorEcaHandler.this.delegator); + } + }; + FutureTask<DispatchContext> futureTask = new FutureTask<DispatchContext>(creator); + if (this.dctx.compareAndSet(null, futureTask)) { + ExecutionPool.GLOBAL_BATCH.submit(futureTask); + } //preload the cache EntityEcaUtil.getEntityEcaCache(this.entityEcaReaderName); } + protected DispatchContext getDispatchContext() throws GenericEntityException { + Future<DispatchContext> future = this.dctx.get(); + try { + return future != null ? future.get() : null; + } catch (ExecutionException e) { + throw (GenericEntityException) new GenericEntityException(e.getMessage()).initCause(e); + } catch (InterruptedException e) { + throw (GenericEntityException) new GenericEntityException(e.getMessage()).initCause(e); + } + } + public Map<String, List<EntityEcaRule>> getEntityEventMap(String entityName) { Map<String, Map<String, List<EntityEcaRule>>> ecaCache = EntityEcaUtil.getEntityEcaCache(this.entityEcaReaderName); if (ecaCache == null) return null; @@ -80,7 +106,7 @@ public class DelegatorEcaHandler impleme if (!rules.isEmpty() && Debug.verboseOn()) Debug.logVerbose("Running ECA (" + event + ").", module); Set<String> actionsRun = new TreeSet<String>(); for (EntityEcaRule eca: rules) { - eca.eval(currentOperation, this.dctx, value, isError, actionsRun); + eca.eval(currentOperation, this.getDispatchContext(), value, isError, actionsRun); } } } Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entityext/src/org/ofbiz/entityext/eca/EntityEcaUtil.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entityext/src/org/ofbiz/entityext/eca/EntityEcaUtil.java?rev=1618554&r1=1618553&r2=1618554&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entityext/src/org/ofbiz/entityext/eca/EntityEcaUtil.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entityext/src/org/ofbiz/entityext/eca/EntityEcaUtil.java Mon Aug 18 07:42:27 2014 @@ -90,13 +90,13 @@ public class EntityEcaUtil { List<Future<List<EntityEcaRule>>> futures = FastList.newInstance(); for (Resource eecaResourceElement : entityEcaReaderInfo.getResourceList()) { ResourceHandler handler = new MainResourceHandler(EntityConfigUtil.ENTITY_ENGINE_XML_FILENAME, eecaResourceElement.getLoader(), eecaResourceElement.getLocation()); - futures.add(ExecutionPool.GLOBAL_EXECUTOR.submit(createEcaLoaderCallable(handler))); + futures.add(ExecutionPool.GLOBAL_FORK_JOIN.submit(createEcaLoaderCallable(handler))); } // get all of the component resource eca stuff, ie specified in each ofbiz-component.xml file for (ComponentConfig.EntityResourceInfo componentResourceInfo: ComponentConfig.getAllEntityResourceInfos("eca")) { if (entityEcaReaderName.equals(componentResourceInfo.readerName)) { - futures.add(ExecutionPool.GLOBAL_EXECUTOR.submit(createEcaLoaderCallable(componentResourceInfo.createResourceHandler()))); + futures.add(ExecutionPool.GLOBAL_FORK_JOIN.submit(createEcaLoaderCallable(componentResourceInfo.createResourceHandler()))); } } Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/method/entityops/CreateValue.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/method/entityops/CreateValue.java?rev=1618554&r1=1618553&r2=1618554&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/method/entityops/CreateValue.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/method/entityops/CreateValue.java Mon Aug 18 07:42:27 2014 @@ -68,9 +68,9 @@ public final class CreateValue extends M } try { if (createOrStore) { - value.getDelegator().createOrStore(value, doCacheClear); + value.getDelegator().createOrStore(value); } else { - value.getDelegator().create(value, doCacheClear); + value.getDelegator().create(value); } } catch (GenericEntityException e) { String errMsg = "Exception thrown while creating the \"" + valueFma +"\" GenericValue: " + e.getMessage(); Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/method/entityops/RefreshValue.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/method/entityops/RefreshValue.java?rev=1618554&r1=1618553&r2=1618554&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/method/entityops/RefreshValue.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/method/entityops/RefreshValue.java Mon Aug 18 07:42:27 2014 @@ -64,7 +64,7 @@ public final class RefreshValue extends } boolean doCacheClear = !"false".equals(doCacheClearFse.expandString(methodContext.getEnvMap())); try { - value.getDelegator().refresh(value, doCacheClear); + value.getDelegator().refresh(value); } catch (GenericEntityException e) { String errMsg = "Exception thrown while refreshing value: " + e.getMessage(); Debug.logWarning(e, errMsg, module); Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/method/entityops/RemoveList.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/method/entityops/RemoveList.java?rev=1618554&r1=1618553&r2=1618554&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/method/entityops/RemoveList.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/method/entityops/RemoveList.java Mon Aug 18 07:42:27 2014 @@ -67,7 +67,7 @@ public final class RemoveList extends En boolean doCacheClear = !"false".equals(doCacheClearFse.expandString(methodContext.getEnvMap())); try { Delegator delegator = getDelegator(methodContext); - delegator.removeAll(values, doCacheClear); + delegator.removeAll(values); } catch (GenericEntityException e) { String errMsg = "Exception thrown while removing entities: " + e.getMessage(); Debug.logWarning(e, errMsg, module); Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/method/entityops/RemoveRelated.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/method/entityops/RemoveRelated.java?rev=1618554&r1=1618553&r2=1618554&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/method/entityops/RemoveRelated.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/method/entityops/RemoveRelated.java Mon Aug 18 07:42:27 2014 @@ -68,7 +68,7 @@ public final class RemoveRelated extends @Deprecated boolean doCacheClear = !"false".equals(doCacheClearFse.expandString(methodContext.getEnvMap())); try { - value.getDelegator().removeRelated(relationName, value, doCacheClear); + value.getDelegator().removeRelated(relationName, value); } catch (GenericEntityException e) { String errMsg = "Exception thrown while removing related entities: " + e.getMessage(); Debug.logWarning(e, errMsg, module); Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/method/entityops/RemoveValue.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/method/entityops/RemoveValue.java?rev=1618554&r1=1618553&r2=1618554&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/method/entityops/RemoveValue.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/method/entityops/RemoveValue.java Mon Aug 18 07:42:27 2014 @@ -64,7 +64,7 @@ public final class RemoveValue extends M @Deprecated boolean doCacheClear = !"false".equals(doCacheClearFse.expandString(methodContext.getEnvMap())); try { - value.getDelegator().removeValue(value, doCacheClear); + value.getDelegator().removeValue(value); } catch (GenericEntityException e) { String errMsg = "Exception thrown while removing entity value: " + e.getMessage(); Debug.logWarning(e, errMsg, module); Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/method/entityops/StoreList.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/method/entityops/StoreList.java?rev=1618554&r1=1618553&r2=1618554&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/method/entityops/StoreList.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/method/entityops/StoreList.java Mon Aug 18 07:42:27 2014 @@ -67,7 +67,7 @@ public final class StoreList extends Ent boolean doCacheClear = !"false".equals(doCacheClearFse.expandString(methodContext.getEnvMap())); try { Delegator delegator = getDelegator(methodContext); - delegator.storeAll(values, doCacheClear); + delegator.storeAll(values); } catch (GenericEntityException e) { String errMsg = "Exception thrown while storing entities: " + e.getMessage(); Debug.logWarning(e, errMsg, module); Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/method/entityops/StoreValue.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/method/entityops/StoreValue.java?rev=1618554&r1=1618553&r2=1618554&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/method/entityops/StoreValue.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/method/entityops/StoreValue.java Mon Aug 18 07:42:27 2014 @@ -64,7 +64,7 @@ public final class StoreValue extends Me @Deprecated boolean doCacheClear = !"false".equals(doCacheClearFse.expandString(methodContext.getEnvMap())); try { - value.getDelegator().store(value, doCacheClear); + value.getDelegator().store(value); } catch (GenericEntityException e) { String errMsg = "Exception thrown while storing entity value: " + e.getMessage(); Debug.logWarning(e, errMsg, module); Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/DispatchContext.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/DispatchContext.java?rev=1618554&r1=1618553&r2=1618554&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/DispatchContext.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/DispatchContext.java Mon Aug 18 07:42:27 2014 @@ -258,12 +258,12 @@ public class DispatchContext implements } for (GlobalServices globalServices : globalServicesList) { ResourceHandler handler = new MainResourceHandler(ServiceConfigUtil.SERVICE_ENGINE_XML_FILENAME, globalServices.getLoader(), globalServices.getLocation()); - futures.add(ExecutionPool.GLOBAL_EXECUTOR.submit(createServiceReaderCallable(handler))); + futures.add(ExecutionPool.GLOBAL_FORK_JOIN.submit(createServiceReaderCallable(handler))); } // get all of the component resource model stuff, ie specified in each ofbiz-component.xml file for (ComponentConfig.ServiceResourceInfo componentResourceInfo: ComponentConfig.getAllServiceResourceInfos("model")) { - futures.add(ExecutionPool.GLOBAL_EXECUTOR.submit(createServiceReaderCallable(componentResourceInfo.createResourceHandler()))); + futures.add(ExecutionPool.GLOBAL_FORK_JOIN.submit(createServiceReaderCallable(componentResourceInfo.createResourceHandler()))); } for (Map<String, ModelService> servicesMap: ExecutionPool.getAllFutures(futures)) { if (servicesMap != null) { Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/eca/ServiceEcaUtil.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/eca/ServiceEcaUtil.java?rev=1618554&r1=1618553&r2=1618554&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/eca/ServiceEcaUtil.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/eca/ServiceEcaUtil.java Mon Aug 18 07:42:27 2014 @@ -77,12 +77,12 @@ public class ServiceEcaUtil { } for (ServiceEcas serviceEcas : serviceEcasList) { ResourceHandler handler = new MainResourceHandler(ServiceConfigUtil.SERVICE_ENGINE_XML_FILENAME, serviceEcas.getLoader(), serviceEcas.getLocation()); - futures.add(ExecutionPool.GLOBAL_EXECUTOR.submit(createEcaLoaderCallable(handler))); + futures.add(ExecutionPool.GLOBAL_FORK_JOIN.submit(createEcaLoaderCallable(handler))); } // get all of the component resource eca stuff, ie specified in each ofbiz-component.xml file for (ComponentConfig.ServiceResourceInfo componentResourceInfo: ComponentConfig.getAllServiceResourceInfos("eca")) { - futures.add(ExecutionPool.GLOBAL_EXECUTOR.submit(createEcaLoaderCallable(componentResourceInfo.createResourceHandler()))); + futures.add(ExecutionPool.GLOBAL_FORK_JOIN.submit(createEcaLoaderCallable(componentResourceInfo.createResourceHandler()))); } for (List<ServiceEcaRule> handlerRules: ExecutionPool.getAllFutures(futures)) { Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/start/src/org/ofbiz/base/start/Start.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/start/src/org/ofbiz/base/start/Start.java?rev=1618554&r1=1618553&r2=1618554&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/start/src/org/ofbiz/base/start/Start.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/start/src/org/ofbiz/base/start/Start.java Mon Aug 18 07:42:27 2014 @@ -40,6 +40,19 @@ import java.util.concurrent.atomic.Atomi */ public final class Start { + /* + * This class implements a thread-safe state machine. The design is critical + * for reliable starting and stopping of the server. + * + * The machine's current state and state changes must be encapsulated in this + * class. Client code may query the current state, but it may not change it. + * + * This class uses a singleton pattern to guarantee that only one server instance + * is running in the VM. Client code retrieves the instance by using the getInstance() + * static method. + * + */ + private static final Start instance = new Start(); private static Command checkCommand(Command command, Command wanted) { @@ -135,8 +148,8 @@ public final class Start { private final AtomicReference<ServerState> serverState = new AtomicReference<ServerState>(ServerState.STARTING); private Thread adminPortThread = null; - /** DO NOT REMOVE: This method is needed by commons-daemon in reflection mode. */ - public Start() { + // DO NOT CHANGE THIS! + private Start() { } private void createListenerThread() throws StartupException { @@ -164,7 +177,7 @@ public final class Start { return serverState.get(); } - private void init(String[] args, boolean fullInit) throws StartupException { + void init(String[] args, boolean fullInit) throws StartupException { String globalSystemPropsFileName = System.getProperty("ofbiz.system.props"); if (globalSystemPropsFileName != null) { FileInputStream stream = null; @@ -298,7 +311,7 @@ public final class Start { return sendSocketCommand(Control.SHUTDOWN); } - private void shutdownServer() { + void shutdownServer() { ServerState currentState; do { currentState = this.serverState.get(); @@ -329,7 +342,7 @@ public final class Start { * * @return <code>true</code> if all loaders were started. */ - private boolean startStartLoaders() { + boolean startStartLoaders() { synchronized (this.loaders) { // start the loaders for (StartupLoader loader : this.loaders) { @@ -357,28 +370,12 @@ public final class Start { } } - private void stopServer() { + void stopServer() { shutdownServer(); System.exit(0); } - // ----------------------------------------------- // - // commons-daemon interface - // http://commons.apache.org/proper/commons-daemon/jsvc.html - // ----------------------------------------------- // - - // DO NOT REMOVE: This method is needed by commons-daemon in reflection mode. - public void init(String[] args) throws StartupException { - init(args, true); - } - - // DO NOT REMOVE: This method is needed by commons-daemon in reflection mode. - public void destroy() { - // FIXME: undo init() calls. - } - - // DO NOT REMOVE: This method is needed by commons-daemon in reflection mode. - public void start() throws Exception { + void start() throws Exception { if (!startStartLoaders()) { if (this.serverState.get() == ServerState.STOPPING) { return; @@ -391,11 +388,6 @@ public final class Start { } } - // DO NOT REMOVE: This method is needed by commons-daemon in reflection mode. - public void stop() { - shutdownServer(); - } - // ----------------------------------------------- // private class AdminPortThread extends Thread { Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/event/ServiceEventHandler.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/event/ServiceEventHandler.java?rev=1618554&r1=1618553&r2=1618554&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/event/ServiceEventHandler.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/event/ServiceEventHandler.java Mon Aug 18 07:42:27 2014 @@ -124,35 +124,38 @@ public class ServiceEventHandler impleme throw new EventHandlerException("Problems getting the service model"); } - if (Debug.verboseOn()) Debug.logVerbose("[Processing]: SERVICE Event", module); - if (Debug.verboseOn()) Debug.logVerbose("[Using delegator]: " + dispatcher.getDelegator().getDelegatorName(), module); + if (Debug.verboseOn()) { + Debug.logVerbose("[Processing]: SERVICE Event", module); + Debug.logVerbose("[Using delegator]: " + dispatcher.getDelegator().getDelegatorName(), module); + } - // get the http upload configuration - String maxSizeStr = EntityUtilProperties.getPropertyValue("general.properties", "http.upload.max.size", "-1", dctx.getDelegator()); - long maxUploadSize = -1; - try { - maxUploadSize = Long.parseLong(maxSizeStr); - } catch (NumberFormatException e) { - Debug.logError(e, "Unable to obtain the max upload size from general.properties; using default -1", module); - maxUploadSize = -1; - } - // get the http size threshold configuration - files bigger than this will be - // temporarly stored on disk during upload - String sizeThresholdStr = EntityUtilProperties.getPropertyValue("general.properties", "http.upload.max.sizethreshold", "10240", dctx.getDelegator()); - int sizeThreshold = 10240; // 10K - try { - sizeThreshold = Integer.parseInt(sizeThresholdStr); - } catch (NumberFormatException e) { - Debug.logError(e, "Unable to obtain the threshold size from general.properties; using default 10K", module); - sizeThreshold = -1; - } - // directory used to temporarily store files that are larger than the configured size threshold - String tmpUploadRepository = EntityUtilProperties.getPropertyValue("general.properties", "http.upload.tmprepository", "runtime/tmp", dctx.getDelegator()); - String encoding = request.getCharacterEncoding(); - // check for multipart content types which may have uploaded items boolean isMultiPart = ServletFileUpload.isMultipartContent(request); Map<String, Object> multiPartMap = FastMap.newInstance(); if (isMultiPart) { + // get the http upload configuration + String maxSizeStr = EntityUtilProperties.getPropertyValue("general.properties", "http.upload.max.size", "-1", dctx.getDelegator()); + long maxUploadSize = -1; + try { + maxUploadSize = Long.parseLong(maxSizeStr); + } catch (NumberFormatException e) { + Debug.logError(e, "Unable to obtain the max upload size from general.properties; using default -1", module); + maxUploadSize = -1; + } + // get the http size threshold configuration - files bigger than this will be + // temporarly stored on disk during upload + String sizeThresholdStr = EntityUtilProperties.getPropertyValue("general.properties", "http.upload.max.sizethreshold", "10240", dctx.getDelegator()); + int sizeThreshold = 10240; // 10K + try { + sizeThreshold = Integer.parseInt(sizeThresholdStr); + } catch (NumberFormatException e) { + Debug.logError(e, "Unable to obtain the threshold size from general.properties; using default 10K", module); + sizeThreshold = -1; + } + // directory used to temporarily store files that are larger than the configured size threshold + String tmpUploadRepository = EntityUtilProperties.getPropertyValue("general.properties", "http.upload.tmprepository", "runtime/tmp", dctx.getDelegator()); + String encoding = request.getCharacterEncoding(); + // check for multipart content types which may have uploaded items + ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory(sizeThreshold, new File(tmpUploadRepository))); // create the progress listener and add it to the session Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/src/org/ofbiz/webtools/artifactinfo/ArtifactInfoFactory.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/src/org/ofbiz/webtools/artifactinfo/ArtifactInfoFactory.java?rev=1618554&r1=1618553&r2=1618554&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/src/org/ofbiz/webtools/artifactinfo/ArtifactInfoFactory.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/src/org/ofbiz/webtools/artifactinfo/ArtifactInfoFactory.java Mon Aug 18 07:42:27 2014 @@ -152,7 +152,7 @@ public class ArtifactInfoFactory { Set<String> serviceNames = this.getDispatchContext().getAllServiceNames(); for (String serviceName: serviceNames) { - futures.add(ExecutionPool.GLOBAL_EXECUTOR.submit(prepareTaskForServiceAnalysis(serviceName))); + futures.add(ExecutionPool.GLOBAL_FORK_JOIN.submit(prepareTaskForServiceAnalysis(serviceName))); } // how to get all Service ECAs to prepare? don't worry about it, will be populated from service load, ie all ECAs for each service @@ -160,7 +160,7 @@ public class ArtifactInfoFactory { ExecutionPool.getAllFutures(futures); futures = new ArrayList<Future<Void>>(); for (ComponentConfig componentConfig: componentConfigs) { - futures.add(ExecutionPool.GLOBAL_EXECUTOR.submit(prepareTaskForComponentAnalysis(componentConfig))); + futures.add(ExecutionPool.GLOBAL_FORK_JOIN.submit(prepareTaskForComponentAnalysis(componentConfig))); } ExecutionPool.getAllFutures(futures); Debug.logInfo("Artifact info objects loaded.", module); Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/artifactinfo/ArtifactInfo.ftl URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/artifactinfo/ArtifactInfo.ftl?rev=1618554&r1=1618553&r2=1618554&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/artifactinfo/ArtifactInfo.ftl (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/artifactinfo/ArtifactInfo.ftl Mon Aug 18 07:42:27 2014 @@ -28,12 +28,12 @@ under the License. </div> </#if> -<#if !artifactInfo?exists> +<#if !artifactInfo??> <#-- add form here to specify artifact info name. --> <div> <form name="ArtifactInfoByName" method="post" action="<@ofbizUrl>ArtifactInfo</@ofbizUrl>" class="basic-form"> - Search Names/Locations: <input type="text" name="name" value="${parameters.name?if_exists}" size="40"/> + Search Names/Locations: <input type="text" name="name" value="${parameters.name!}" size="40"/> <select name="type"> <option></option> <option>entity</option> @@ -49,8 +49,8 @@ under the License. </div> <div> <form name="ArtifactInfoByNameAndType" method="post" action="<@ofbizUrl>ArtifactInfo</@ofbizUrl>" class="basic-form"> - <div>Name: <input type="text" name="name" value="${parameters.name?if_exists}" size="40"/></div> - <div>Location: <input type="text" name="location" value="${parameters.location?if_exists}" size="60"/></div> + <div>Name: <input type="text" name="name" value="${parameters.name!}" size="40"/></div> + <div>Location: <input type="text" name="location" value="${parameters.location!}" size="60"/></div> <div>Type: <select name="type"> <option>entity</option> @@ -78,7 +78,7 @@ under the License. <#else/> <h1>${uiLabelMap.WebtoolsArtifactInfo} (${artifactInfo.getDisplayType()}): ${artifactInfo.getDisplayName()}</h1> - <#if artifactInfo.getLocationURL()?exists> + <#if artifactInfo.getLocationURL()??> <div>Defined in: <a href="${artifactInfo.getLocationURL()}">${artifactInfo.getLocationURL()}</a></div> </#if> @@ -87,41 +87,41 @@ under the License. <h2>Entity Fields</h2> <table> <#list artifactInfo.modelEntity.getFieldsUnmodifiable() as modelField> - <tr><td>${modelField.getName()}<#if modelField.getIsPk()>*</#if></td><td>${modelField.getType()}</td><td>${modelField.getDescription()?if_exists}</td></tr> + <tr><td>${modelField.getName()}<#if modelField.getIsPk()>*</#if></td><td>${modelField.getType()}</td><td>${modelField.getDescription()!}</td></tr> </#list> </table> <div> <h2>Entities Related (One)</h2> - <#list artifactInfo.getEntitiesRelatedOne()?if_exists as entityArtifactInfo> + <#list artifactInfo.getEntitiesRelatedOne()! as entityArtifactInfo> <@displayEntityArtifactInfo entityArtifactInfo=entityArtifactInfo/> </#list> </div> <div> <h2>Entities Related (Many)</h2> - <#list artifactInfo.getEntitiesRelatedMany()?if_exists as entityArtifactInfo> + <#list artifactInfo.getEntitiesRelatedMany()! as entityArtifactInfo> <@displayEntityArtifactInfo entityArtifactInfo=entityArtifactInfo/> </#list> </div> <div> <h2>Services Using This Entity</h2> - <#list artifactInfo.getServicesUsingEntity()?if_exists as serviceArtifactInfo> + <#list artifactInfo.getServicesUsingEntity()! as serviceArtifactInfo> <@displayServiceArtifactInfo serviceArtifactInfo=serviceArtifactInfo/> </#list> </div> <div> <h2>Forms Using This Entity</h2> - <#list artifactInfo.getFormsUsingEntity()?if_exists as formWidgetArtifactInfo> + <#list artifactInfo.getFormsUsingEntity()! as formWidgetArtifactInfo> <@displayFormWidgetArtifactInfo formWidgetArtifactInfo=formWidgetArtifactInfo/> </#list> </div> <div> <h2>Screens Using This Entity</h2> - <#list artifactInfo.getScreensUsingEntity()?if_exists as screenWidgetArtifactInfo> + <#list artifactInfo.getScreensUsingEntity()! as screenWidgetArtifactInfo> <@displayScreenWidgetArtifactInfo screenWidgetArtifactInfo=screenWidgetArtifactInfo/> </#list> </div> @@ -130,75 +130,75 @@ under the License. <h2>Service Info</h2> <div> Description: ${artifactInfo.modelService.description}</div> <div> Run (${artifactInfo.modelService.engineName}): ${artifactInfo.modelService.location} :: ${artifactInfo.modelService.invoke}</div> - <div> Impl Location: <a href="${artifactInfo.getImplementationLocationURL()?if_exists}">${artifactInfo.getImplementationLocationURL()?if_exists}</a></div> + <div> Impl Location: <a href="${artifactInfo.getImplementationLocationURL()!}">${artifactInfo.getImplementationLocationURL()!}</a></div> <h2>Service Parameters</h2> <table> <tr><td>Name</td><td>Type</td><td>Optional</td><td>Mode</td><td>Entity.field</td></tr> <#list artifactInfo.modelService.getAllParamNames() as paramName> <#assign modelParam = artifactInfo.modelService.getParam(paramName)/> - <tr><td>${modelParam.getName()}<#if modelParam.getInternal()> (internal)</#if></td><td>${modelParam.getType()}</td><td><#if modelParam.isOptional()>optional<#else/>required</#if></td><td>${modelParam.getMode()}</td><td>${modelParam.getEntityName()?if_exists}.${modelParam.getFieldName()?if_exists}</td></tr> + <tr><td>${modelParam.getName()}<#if modelParam.getInternal()> (internal)</#if></td><td>${modelParam.getType()}</td><td><#if modelParam.isOptional()>optional<#else/>required</#if></td><td>${modelParam.getMode()}</td><td>${modelParam.getEntityName()!}.${modelParam.getFieldName()!}</td></tr> </#list> </table> <div> <h2>Entities Used By This Service</h2> - <#list artifactInfo.getEntitiesUsedByService()?if_exists as entityArtifactInfo> + <#list artifactInfo.getEntitiesUsedByService()! as entityArtifactInfo> <@displayEntityArtifactInfo entityArtifactInfo=entityArtifactInfo/> </#list> </div> <div> <h2>Services Calling This Service</h2> - <#list artifactInfo.getServicesCallingService()?if_exists as serviceArtifactInfo> + <#list artifactInfo.getServicesCallingService()! as serviceArtifactInfo> <@displayServiceArtifactInfo serviceArtifactInfo=serviceArtifactInfo/> </#list> </div> <div> <h2>Services Called By This Service</h2> - <#list artifactInfo.getServicesCalledByService()?if_exists as serviceArtifactInfo> + <#list artifactInfo.getServicesCalledByService()! as serviceArtifactInfo> <@displayServiceArtifactInfo serviceArtifactInfo=serviceArtifactInfo/> </#list> </div> <div> <h2>Service ECA Rules Triggered By This Service</h2> - <#list artifactInfo.getServiceEcaRulesTriggeredByService()?if_exists as serviceEcaArtifactInfo> + <#list artifactInfo.getServiceEcaRulesTriggeredByService()! as serviceEcaArtifactInfo> <@displayServiceEcaArtifactInfo serviceEcaArtifactInfo=serviceEcaArtifactInfo/> </#list> </div> <div> <h2>Service ECA Rules Calling This Service</h2> - <#list artifactInfo.getServiceEcaRulesCallingService()?if_exists as serviceEcaArtifactInfo> + <#list artifactInfo.getServiceEcaRulesCallingService()! as serviceEcaArtifactInfo> <@displayServiceEcaArtifactInfo serviceEcaArtifactInfo=serviceEcaArtifactInfo/> </#list> </div> <div> <h2>Forms Calling This Service</h2> - <#list artifactInfo.getFormsCallingService()?if_exists as formWidgetArtifactInfo> + <#list artifactInfo.getFormsCallingService()! as formWidgetArtifactInfo> <@displayFormWidgetArtifactInfo formWidgetArtifactInfo=formWidgetArtifactInfo/> </#list> </div> <div> <h2>Forms Based On This Service</h2> - <#list artifactInfo.getFormsBasedOnService()?if_exists as formWidgetArtifactInfo> + <#list artifactInfo.getFormsBasedOnService()! as formWidgetArtifactInfo> <@displayFormWidgetArtifactInfo formWidgetArtifactInfo=formWidgetArtifactInfo/> </#list> </div> <div> <h2>Screens Calling This Service</h2> - <#list artifactInfo.getScreensCallingService()?if_exists as screenWidgetArtifactInfo> + <#list artifactInfo.getScreensCallingService()! as screenWidgetArtifactInfo> <@displayScreenWidgetArtifactInfo screenWidgetArtifactInfo=screenWidgetArtifactInfo/> </#list> </div> <div> <h2>Requests with Events That Call This Service</h2> - <#list artifactInfo.getRequestsWithEventCallingService()?if_exists as controllerRequestArtifactInfo> + <#list artifactInfo.getRequestsWithEventCallingService()! as controllerRequestArtifactInfo> <@displayControllerRequestArtifactInfo controllerRequestArtifactInfo=controllerRequestArtifactInfo/> </#list> </div> @@ -206,48 +206,48 @@ under the License. <#elseif artifactInfo.getType() == "form"/> <div> <h2>Form Extended by This Form</h2> - <#if artifactInfo.getFormThisFormExtends()?exists> + <#if artifactInfo.getFormThisFormExtends()??> <@displayFormWidgetArtifactInfo formWidgetArtifactInfo=artifactInfo.getFormThisFormExtends()/> </#if> </div> <div> <h2>Entities Used in This Form</h2> - <#list artifactInfo.getEntitiesUsedInForm()?if_exists as entityArtifactInfo> + <#list artifactInfo.getEntitiesUsedInForm()! as entityArtifactInfo> <@displayEntityArtifactInfo entityArtifactInfo=entityArtifactInfo/> </#list> </div> <div> <h2>Services Used in This Form</h2> - <#list artifactInfo.getServicesUsedInForm()?if_exists as serviceArtifactInfo> + <#list artifactInfo.getServicesUsedInForm()! as serviceArtifactInfo> <@displayServiceArtifactInfo serviceArtifactInfo=serviceArtifactInfo/> </#list> </div> <div> <h2>Forms Extending This Form</h2> - <#list artifactInfo.getFormsExtendingThisForm()?if_exists as formWidgetArtifactInfo> + <#list artifactInfo.getFormsExtendingThisForm()! as formWidgetArtifactInfo> <@displayFormWidgetArtifactInfo formWidgetArtifactInfo=formWidgetArtifactInfo/> </#list> </div> <div> <h2>Screens Including This Form</h2> - <#list artifactInfo.getScreensIncludingThisForm()?if_exists as screenWidgetArtifactInfo> + <#list artifactInfo.getScreensIncludingThisForm()! as screenWidgetArtifactInfo> <@displayScreenWidgetArtifactInfo screenWidgetArtifactInfo=screenWidgetArtifactInfo/> </#list> </div> <div> <h2>Controller Requests That Are Linked to in This Form</h2> - <#list artifactInfo.getRequestsLinkedToInForm()?if_exists as controllerRequestArtifactInfo> + <#list artifactInfo.getRequestsLinkedToInForm()! as controllerRequestArtifactInfo> <@displayControllerRequestArtifactInfo controllerRequestArtifactInfo=controllerRequestArtifactInfo/> </#list> </div> <div> <h2>Controller Requests That Are Targeted By This Form</h2> - <#list artifactInfo.getRequestsTargetedByForm()?if_exists as controllerRequestArtifactInfo> + <#list artifactInfo.getRequestsTargetedByForm()! as controllerRequestArtifactInfo> <@displayControllerRequestArtifactInfo controllerRequestArtifactInfo=controllerRequestArtifactInfo/> </#list> </div> @@ -255,55 +255,55 @@ under the License. <#elseif artifactInfo.getType() == "screen"/> <div> <h2>Entities Used in This Screen</h2> - <#list artifactInfo.getEntitiesUsedInScreen()?if_exists as entityArtifactInfo> + <#list artifactInfo.getEntitiesUsedInScreen()! as entityArtifactInfo> <@displayEntityArtifactInfo entityArtifactInfo=entityArtifactInfo/> </#list> </div> <div> <h2>Services Used in This Screen</h2> - <#list artifactInfo.getServicesUsedInScreen()?if_exists as serviceArtifactInfo> + <#list artifactInfo.getServicesUsedInScreen()! as serviceArtifactInfo> <@displayServiceArtifactInfo serviceArtifactInfo=serviceArtifactInfo/> </#list> </div> <div> <h2>Forms Included in This Screen</h2> - <#list artifactInfo.getFormsIncludedInScreen()?if_exists as formWidgetArtifactInfo> + <#list artifactInfo.getFormsIncludedInScreen()! as formWidgetArtifactInfo> <@displayFormWidgetArtifactInfo formWidgetArtifactInfo=formWidgetArtifactInfo/> </#list> </div> <div> <h2>Screens Include in This Screen</h2> - <#list artifactInfo.getScreensIncludedInScreen()?if_exists as screenWidgetArtifactInfo> + <#list artifactInfo.getScreensIncludedInScreen()! as screenWidgetArtifactInfo> <@displayScreenWidgetArtifactInfo screenWidgetArtifactInfo=screenWidgetArtifactInfo/> </#list> </div> <div> <h2>Screens Including This Screen</h2> - <#list artifactInfo.getScreensIncludingThisScreen()?if_exists as screenWidgetArtifactInfo> + <#list artifactInfo.getScreensIncludingThisScreen()! as screenWidgetArtifactInfo> <@displayScreenWidgetArtifactInfo screenWidgetArtifactInfo=screenWidgetArtifactInfo/> </#list> </div> <div> <h2>Controller Requests That Are Linked to in This Screen</h2> - <#list artifactInfo.getRequestsLinkedToInScreen()?if_exists as controllerRequestArtifactInfo> + <#list artifactInfo.getRequestsLinkedToInScreen()! as controllerRequestArtifactInfo> <@displayControllerRequestArtifactInfo controllerRequestArtifactInfo=controllerRequestArtifactInfo/> </#list> </div> <div> <h2>Controller Views Referring to This Screen</h2> - <#list artifactInfo.getViewsReferringToScreen()?if_exists as controllerViewArtifactInfo> + <#list artifactInfo.getViewsReferringToScreen()! as controllerViewArtifactInfo> <@displayControllerViewArtifactInfo controllerViewArtifactInfo=controllerViewArtifactInfo/> </#list> </div> <#elseif artifactInfo.getType() == "request"/> - <#if artifactInfo.getServiceCalledByRequestEvent()?exists> + <#if artifactInfo.getServiceCalledByRequestEvent()??> <div> <h2>Service Called by Request Event</h2> <@displayServiceArtifactInfo serviceArtifactInfo=artifactInfo.getServiceCalledByRequestEvent()/> @@ -312,41 +312,41 @@ under the License. <div> <h2>Forms Referring to This Request</h2> - <#list artifactInfo.getFormInfosReferringToRequest()?if_exists as formWidgetArtifactInfo> + <#list artifactInfo.getFormInfosReferringToRequest()! as formWidgetArtifactInfo> <@displayFormWidgetArtifactInfo formWidgetArtifactInfo=formWidgetArtifactInfo/> </#list> </div> <div> <h2>Forms Targeting This Request</h2> - <#list artifactInfo.getFormInfosTargetingRequest()?if_exists as formWidgetArtifactInfo> + <#list artifactInfo.getFormInfosTargetingRequest()! as formWidgetArtifactInfo> <@displayFormWidgetArtifactInfo formWidgetArtifactInfo=formWidgetArtifactInfo/> </#list> </div> <div> <h2>Screens Referring to This Request</h2> - <#list artifactInfo.getScreenInfosReferringToRequest()?if_exists as screenWidgetArtifactInfo> + <#list artifactInfo.getScreenInfosReferringToRequest()! as screenWidgetArtifactInfo> <@displayScreenWidgetArtifactInfo screenWidgetArtifactInfo=screenWidgetArtifactInfo/> </#list> </div> <div> <h2>Requests That Are Responses to This Request</h2> - <#list artifactInfo.getRequestsThatAreResponsesToThisRequest()?if_exists as controllerRequestArtifactInfo> + <#list artifactInfo.getRequestsThatAreResponsesToThisRequest()! as controllerRequestArtifactInfo> <@displayControllerRequestArtifactInfo controllerRequestArtifactInfo=controllerRequestArtifactInfo/> </#list> </div> <div> <h2>Requests That This Request is a Responses To</h2> - <#list artifactInfo.getRequestsThatThisRequestIsResponsTo()?if_exists as controllerRequestArtifactInfo> + <#list artifactInfo.getRequestsThatThisRequestIsResponsTo()! as controllerRequestArtifactInfo> <@displayControllerRequestArtifactInfo controllerRequestArtifactInfo=controllerRequestArtifactInfo/> </#list> </div> <div> <h2>Controller Views That Are Responses to This Request</h2> - <#list artifactInfo.getViewsThatAreResponsesToThisRequest()?if_exists as controllerViewArtifactInfo> + <#list artifactInfo.getViewsThatAreResponsesToThisRequest()! as controllerViewArtifactInfo> <@displayControllerViewArtifactInfo controllerViewArtifactInfo=controllerViewArtifactInfo/> </#list> </div> @@ -354,12 +354,12 @@ under the License. <#elseif artifactInfo.getType() == "view"/> <div> <h2>Requests That This View is a Responses To</h2> - <#list artifactInfo.getRequestsThatThisViewIsResponseTo()?if_exists as controllerRequestArtifactInfo> + <#list artifactInfo.getRequestsThatThisViewIsResponseTo()! as controllerRequestArtifactInfo> <@displayControllerRequestArtifactInfo controllerRequestArtifactInfo=controllerRequestArtifactInfo/> </#list> </div> - <#if artifactInfo.getScreenCalledByThisView()?exists> + <#if artifactInfo.getScreenCalledByThisView()??> <div> <h2>Screen Called by This View</h2> <@displayScreenWidgetArtifactInfo screenWidgetArtifactInfo=artifactInfo.getScreenCalledByThisView()/> Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/cert/viewbrowsercerts.ftl URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/cert/viewbrowsercerts.ftl?rev=1618554&r1=1618553&r2=1618554&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/cert/viewbrowsercerts.ftl (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/cert/viewbrowsercerts.ftl Mon Aug 18 07:42:27 2014 @@ -18,9 +18,9 @@ under the License. --> <#assign isSecure = request.isSecure()/> -<#assign clientCerts = request.getAttribute("javax.servlet.request.X509Certificate")?if_exists/> +<#assign clientCerts = request.getAttribute("javax.servlet.request.X509Certificate")!/> <#if (!clientCerts?has_content)> - <#assign clientCerts = request.getAttribute("javax.net.ssl.peer_certificates")?if_exists/> + <#assign clientCerts = request.getAttribute("javax.net.ssl.peer_certificates")!/> </#if> <div class="screenlet"> @@ -31,7 +31,7 @@ under the License. <#if (clientCerts?has_content)> <table class="basic-table"> <#list clientCerts as cert> - <#assign certString = Static["org.ofbiz.base.util.KeyStoreUtil"].certToString(cert)?if_exists> + <#assign certString = Static["org.ofbiz.base.util.KeyStoreUtil"].certToString(cert)!> <#if (certString?has_content)> <tr> <td class="label">${uiLabelMap.WebtoolsCertsCert}</td> Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/datafile/viewdatafile.ftl URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/datafile/viewdatafile.ftl?rev=1618554&r1=1618553&r2=1618554&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/datafile/viewdatafile.ftl (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/datafile/viewdatafile.ftl Mon Aug 18 07:42:27 2014 @@ -23,7 +23,7 @@ under the License. <table class="basic-table" cellspacing="0"> <tr> <td class="label">${uiLabelMap.WebtoolsDataDefinitionFileName}</td> - <td><input name="DEFINITION_LOCATION" type="text" size="60" value="${parameters.DEFINITION_LOCATION?if_exists}" /></td> + <td><input name="DEFINITION_LOCATION" type="text" size="60" value="${parameters.DEFINITION_LOCATION!}" /></td> <td><span class="label">${uiLabelMap.WebtoolsDataIsUrl}</span><input type="checkbox" name="DEFINITION_IS_URL"<#if parameters.DEFINITION_IS_URL?has_content> checked="checked"</#if> /></td> </tr> <tr> @@ -34,28 +34,28 @@ under the License. <option value=""></option> <#list definitionNames as oneDefinitionName> boolean isSelected = definitionName?? && definitionName.equals(oneDefinitionName); - <option value="${oneDefinitionName}" <#if parameters.DEFINITION_NAME?exists && parameters.DEFINITION_NAME == oneDefinitionName> selected="selected" </#if>>${oneDefinitionName}</option> + <option value="${oneDefinitionName}" <#if parameters.DEFINITION_NAME?? && parameters.DEFINITION_NAME == oneDefinitionName> selected="selected" </#if>>${oneDefinitionName}</option> </#list> </select> <#else> - <input name="DEFINITION_NAME" type="text" size="30" value="${definitionName?if_exists}" /> + <input name="DEFINITION_NAME" type="text" size="30" value="${definitionName!}" /> </#if> </td> <td> </td> </tr> <tr> <td class="label">${uiLabelMap.WebtoolsDataFileName}</td> - <td><input name="DATAFILE_LOCATION" type="text" size="60" value="${parameters.DATAFILE_LOCATION?if_exists}" /></td> + <td><input name="DATAFILE_LOCATION" type="text" size="60" value="${parameters.DATAFILE_LOCATION!}" /></td> <td><span class="label">${uiLabelMap.WebtoolsDataIsUrl}</span><input type="checkbox" name="DATAFILE_IS_URL"<#if parameters.DATAFILE_IS_URL?has_content> checked="checked"</#if> /></td> </tr> <tr> <td class="label">${uiLabelMap.WebtoolsDataSaveToFile}</td> - <td><input name="DATAFILE_SAVE" type="text" size="60" value="${parameters.DATAFILE_SAVE?if_exists}"/></td> + <td><input name="DATAFILE_SAVE" type="text" size="60" value="${parameters.DATAFILE_SAVE!}"/></td> <td> </td> </tr> <tr> <td class="label">${uiLabelMap.WebtoolsDataSaveToXml}</td> - <td><input name="ENTITYXML_FILE_SAVE" type="text" size="60" value="${parameters.ENTITYXML_FILE_SAVE?if_exists}" /></td> + <td><input name="ENTITYXML_FILE_SAVE" type="text" size="60" value="${parameters.ENTITYXML_FILE_SAVE!}" /></td> <td> </td> </tr> <tr> Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/entity/ConnectionPoolStatus.ftl URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/entity/ConnectionPoolStatus.ftl?rev=1618554&r1=1618553&r2=1618554&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/entity/ConnectionPoolStatus.ftl (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/entity/ConnectionPoolStatus.ftl Mon Aug 18 07:42:27 2014 @@ -18,7 +18,7 @@ under the License. --> <h1>Connection Pool Status</h1> -<#assign groups = delegator.getModelGroupReader().getGroupNames(delegator.getDelegatorName())?if_exists/> +<#assign groups = delegator.getModelGroupReader().getGroupNames(delegator.getDelegatorName())!/> <table class="basic-table light-grid hover-bar"> <tr class="header-row"> <td>Helper Name</td> @@ -34,20 +34,20 @@ under the License. <#assign alt_row = false> <#if (groups?has_content)> <#list groups as group> - <#assign helper = delegator.getGroupHelperName(group)?if_exists/> + <#assign helper = delegator.getGroupHelperName(group)!/> <#if (helper?has_content)> - <#assign dataSourceInfo = Static["org.ofbiz.entity.connection.DBCPConnectionFactory"].getDataSourceInfo(helper)?if_exists/> + <#assign dataSourceInfo = Static["org.ofbiz.entity.connection.DBCPConnectionFactory"].getDataSourceInfo(helper)!/> <#if (dataSourceInfo?has_content)> <tr> <td>${helper}</td> - <td>${dataSourceInfo.poolNumActive?if_exists}</td> - <td>${dataSourceInfo.poolNumIdle?if_exists}</td> - <td>${dataSourceInfo.poolNumTotal?if_exists}</td> - <td>${dataSourceInfo.poolMaxActive?if_exists}</td> - <td>${dataSourceInfo.poolMaxIdle?if_exists}</td> - <td>${dataSourceInfo.poolMinIdle?if_exists}</td> - <td>${dataSourceInfo.poolMinEvictableIdleTimeMillis?if_exists}</td> - <td>${dataSourceInfo.poolMaxWait?if_exists}</td> + <td>${dataSourceInfo.poolNumActive!}</td> + <td>${dataSourceInfo.poolNumIdle!}</td> + <td>${dataSourceInfo.poolNumTotal!}</td> + <td>${dataSourceInfo.poolMaxActive!}</td> + <td>${dataSourceInfo.poolMaxIdle!}</td> + <td>${dataSourceInfo.poolMinIdle!}</td> + <td>${dataSourceInfo.poolMinEvictableIdleTimeMillis!}</td> + <td>${dataSourceInfo.poolMaxWait!}</td> </tr> </#if> </#if> Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/entity/EntityExportAll.ftl URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/entity/EntityExportAll.ftl?rev=1618554&r1=1618553&r2=1618554&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/entity/EntityExportAll.ftl (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/entity/EntityExportAll.ftl Mon Aug 18 07:42:27 2014 @@ -28,7 +28,7 @@ under the License. </#if> <hr /> <form method="post" action="<@ofbizUrl>entityExportAll</@ofbizUrl>"> - ${uiLabelMap.WebtoolsOutputDirectory}: <input type="text" size="60" name="outpath" value="${outpath?if_exists}" /><br /> + ${uiLabelMap.WebtoolsOutputDirectory}: <input type="text" size="60" name="outpath" value="${outpath!}" /><br /> ${uiLabelMap.CommonFromDate}: <@htmlTemplate.renderDateTimeField name="fromDate" event="" action="" className="" alert="" title="Format: yyyy-MM-dd HH:mm:ss.SSS" value="" size="25" maxlength="30" id="fromDate" dateType="date" shortDateInput=false timeDropdownParamName="" defaultDateTimeString="" localizedIconTitle="" timeDropdown="" timeHourName="" classString="" hour1="" hour2="" timeMinutesName="" minutes="" isTwelveHour="" ampmName="" amSelected="" pmSelected="" compositeType="" formName=""/><br/> ${uiLabelMap.WebtoolsTimeoutSeconds}: <input type="text" size="6" value="${txTimeout?default('7200')}" name="txTimeout"/><br /> <br /> Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/entity/EntityImport.ftl URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/entity/EntityImport.ftl?rev=1618554&r1=1618553&r2=1618554&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/entity/EntityImport.ftl (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/entity/EntityImport.ftl Mon Aug 18 07:42:27 2014 @@ -23,14 +23,14 @@ under the License. <form method="post" action="<@ofbizUrl>entityImport</@ofbizUrl>"> ${uiLabelMap.WebtoolsAbsoluteFileNameOrUrl}:<br /> - <input type="text" size="60" name="filename" value="${filename?if_exists}"/><br /> + <input type="text" size="60" name="filename" value="${filename!}"/><br /> ${uiLabelMap.WebtoolsAbsoluteFTLFilename}:<br /> - <input type="text" size="40" name="fmfilename" value="${fmfilename?if_exists}"/><br /> - <input type="checkbox" name="isUrl" <#if isUrl?exists>checked="checked"</#if>/>${uiLabelMap.WebtoolsIsURL}<br /> - <input type="checkbox" name="mostlyInserts" <#if mostlyInserts?exists>checked="checked"</#if>/>${uiLabelMap.WebtoolsMostlyInserts}<br /> - <input type="checkbox" name="maintainTimeStamps" <#if keepStamps?exists>checked="checked"</#if>/>${uiLabelMap.WebtoolsMaintainTimestamps}<br /> - <input type="checkbox" name="createDummyFks" <#if createDummyFks?exists>checked="checked"</#if>/>${uiLabelMap.WebtoolsCreateDummyFks}<br /> - <input type="checkbox" name="checkDataOnly" <#if checkDataOnly?exists>checked="checked"</#if>/>${uiLabelMap.WebtoolsCheckDataOnly}<br /> + <input type="text" size="40" name="fmfilename" value="${fmfilename!}"/><br /> + <input type="checkbox" name="isUrl" <#if isUrl??>checked="checked"</#if>/>${uiLabelMap.WebtoolsIsURL}<br /> + <input type="checkbox" name="mostlyInserts" <#if mostlyInserts??>checked="checked"</#if>/>${uiLabelMap.WebtoolsMostlyInserts}<br /> + <input type="checkbox" name="maintainTimeStamps" <#if keepStamps??>checked="checked"</#if>/>${uiLabelMap.WebtoolsMaintainTimestamps}<br /> + <input type="checkbox" name="createDummyFks" <#if createDummyFks??>checked="checked"</#if>/>${uiLabelMap.WebtoolsCreateDummyFks}<br /> + <input type="checkbox" name="checkDataOnly" <#if checkDataOnly??>checked="checked"</#if>/>${uiLabelMap.WebtoolsCheckDataOnly}<br /> ${uiLabelMap.WebtoolsTimeoutSeconds}:<input type="text" size="6" value="${txTimeoutStr?default("7200")}" name="txTimeout"/><br /> <div class="button-bar"><input type="submit" value="${uiLabelMap.WebtoolsImportFile}"/></div> </form> @@ -39,7 +39,7 @@ under the License. <textarea rows="20" cols="85" name="fulltext">${fulltext?default("<entity-engine-xml>\n</entity-engine-xml>")}</textarea> <div class="button-bar"><input type="submit" value="${uiLabelMap.WebtoolsImportText}"/></div> </form> - <#if messages?exists> + <#if messages??> <hr /> <h3>${uiLabelMap.WebtoolsResults}:</h3> <#list messages as message> Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/entity/EntityImportDir.ftl URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/entity/EntityImportDir.ftl?rev=1618554&r1=1618553&r2=1618554&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/entity/EntityImportDir.ftl (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/entity/EntityImportDir.ftl Mon Aug 18 07:42:27 2014 @@ -23,17 +23,17 @@ under the License. <form method="post" action="<@ofbizUrl>entityImportDir</@ofbizUrl>"> ${uiLabelMap.WebtoolsAbsolutePath}:<br /> - <input type="text" size="60" name="path" value="${path?if_exists}"/><br /> - <input type="checkbox" name="mostlyInserts" <#if mostlyInserts?exists>checked="checked"</#if>/>${uiLabelMap.WebtoolsMostlyInserts}<br /> - <input type="checkbox" name="maintainTimeStamps" <#if keepStamps?exists>checked="checked"</#if>/>${uiLabelMap.WebtoolsMaintainTimestamps}<br /> - <input type="checkbox" name="createDummyFks" <#if createDummyFks?exists>checked="checked"</#if>/>${uiLabelMap.WebtoolsCreateDummyFks}<br /> - <input type="checkbox" name="deleteFiles" <#if (deleteFiles?exists)>checked="checked"</#if>/>${uiLabelMap.WebtoolsDeleteFiles}<br /> - <input type="checkbox" name="checkDataOnly" <#if checkDataOnly?exists>checked="checked"</#if>/>${uiLabelMap.WebtoolsCheckDataOnly}<br /> + <input type="text" size="60" name="path" value="${path!}"/><br /> + <input type="checkbox" name="mostlyInserts" <#if mostlyInserts??>checked="checked"</#if>/>${uiLabelMap.WebtoolsMostlyInserts}<br /> + <input type="checkbox" name="maintainTimeStamps" <#if keepStamps??>checked="checked"</#if>/>${uiLabelMap.WebtoolsMaintainTimestamps}<br /> + <input type="checkbox" name="createDummyFks" <#if createDummyFks??>checked="checked"</#if>/>${uiLabelMap.WebtoolsCreateDummyFks}<br /> + <input type="checkbox" name="deleteFiles" <#if (deleteFiles??)>checked="checked"</#if>/>${uiLabelMap.WebtoolsDeleteFiles}<br /> + <input type="checkbox" name="checkDataOnly" <#if checkDataOnly??>checked="checked"</#if>/>${uiLabelMap.WebtoolsCheckDataOnly}<br /> ${uiLabelMap.WebtoolsTimeoutSeconds}:<input type="text" size="6" value="${txTimeoutStr?default("7200")}" name="txTimeout"/><br /> ${uiLabelMap.WebtoolsPause}:<input type="text" size="6" value="${filePauseStr?default("0")}" name="filePause"/><br /> <div class="button-bar"><input type="submit" value="${uiLabelMap.WebtoolsImportFile}"/></div> </form> - <#if messages?exists> + <#if messages??> <hr /> <h1>${uiLabelMap.WebtoolsResults}:</h1> <#list messages as message> Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/entity/EntityImportReaders.ftl URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/entity/EntityImportReaders.ftl?rev=1618554&r1=1618553&r2=1618554&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/entity/EntityImportReaders.ftl (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/entity/EntityImportReaders.ftl Mon Aug 18 07:42:27 2014 @@ -23,14 +23,14 @@ under the License. <form method="post" action="<@ofbizUrl>entityImportReaders</@ofbizUrl>"> Enter Readers (comma separated, no spaces; from entityengine.xml and ofbiz-component.xml files; common ones include seed,ext,demo):<br /> <input type="text" size="60" name="readers" value="${readers?default("seed")}"/><br /> - <input type="checkbox" name="mostlyInserts" <#if mostlyInserts?exists>checked="checked"</#if> value="true"/>${uiLabelMap.WebtoolsMostlyInserts}<br /> - <input type="checkbox" name="maintainTimeStamps" <#if keepStamps?exists>checked="checked"</#if> value="true"/>${uiLabelMap.WebtoolsMaintainTimestamps}<br /> - <input type="checkbox" name="createDummyFks" <#if createDummyFks?exists>checked="checked"</#if> value="true"/>${uiLabelMap.WebtoolsCreateDummyFks}<br /> - <input type="checkbox" name="checkDataOnly" <#if checkDataOnly?exists>checked="checked"</#if> value="true"/>${uiLabelMap.WebtoolsCheckDataOnly}<br /> + <input type="checkbox" name="mostlyInserts" <#if mostlyInserts??>checked="checked"</#if> value="true"/>${uiLabelMap.WebtoolsMostlyInserts}<br /> + <input type="checkbox" name="maintainTimeStamps" <#if keepStamps??>checked="checked"</#if> value="true"/>${uiLabelMap.WebtoolsMaintainTimestamps}<br /> + <input type="checkbox" name="createDummyFks" <#if createDummyFks??>checked="checked"</#if> value="true"/>${uiLabelMap.WebtoolsCreateDummyFks}<br /> + <input type="checkbox" name="checkDataOnly" <#if checkDataOnly??>checked="checked"</#if> value="true"/>${uiLabelMap.WebtoolsCheckDataOnly}<br /> ${uiLabelMap.WebtoolsTimeoutSeconds}:<input type="text" size="6" value="${txTimeoutStr?default("7200")}" name="txTimeout"/><br /> <div class="button-bar"><input type="submit" value="${uiLabelMap.WebtoolsImport}"/></div> </form> - <#if messages?exists> + <#if messages??> <hr /> <h3>${uiLabelMap.WebtoolsResults}:</h3> <#list messages as message> Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/entity/EntityMaint.ftl URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/entity/EntityMaint.ftl?rev=1618554&r1=1618553&r2=1618554&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/entity/EntityMaint.ftl (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/entity/EntityMaint.ftl Mon Aug 18 07:42:27 2014 @@ -22,11 +22,11 @@ under the License. <select name="filterByGroupName"> <option value="">${uiLabelMap.CommonAll}</option> <#list entityGroups as group> - <option value="${group}" <#if filterByGroupName?exists><#if group = filterByGroupName>selected="selected"</#if></#if>>${group}</option> + <option value="${group}" <#if filterByGroupName??><#if group = filterByGroupName>selected="selected"</#if></#if>>${group}</option> </#list> </select> <b>${uiLabelMap.WebtoolsEntityName}:</b> - <input type= "text" name= "filterByEntityName" value="${parameters.filterByEntityName?if_exists}"/> + <input type= "text" name= "filterByEntityName" value="${parameters.filterByEntityName!}"/> <input type="submit" value="${uiLabelMap.CommonApply}"/> </form> </div> Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/entity/EntityRefList.ftl URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/entity/EntityRefList.ftl?rev=1618554&r1=1618553&r2=1618554&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/entity/EntityRefList.ftl (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webtools/webapp/webtools/entity/EntityRefList.ftl Mon Aug 18 07:42:27 2014 @@ -67,7 +67,7 @@ under the License. <#if forstatic> <a href="<@ofbizUrl>entityref_main#${entity.entityName}</@ofbizUrl>" target="entityFrame">${entity.entityName}</a> <#else> - <a href="<@ofbizUrl>view/entityref_main#${entity.entityName}${entity.url?if_exists}</@ofbizUrl>" target="entityFrame">${entity.entityName}</a> + <a href="<@ofbizUrl>view/entityref_main#${entity.entityName}${entity.url!}</@ofbizUrl>" target="entityFrame">${entity.entityName}</a> </#if> <br /> </#list> |
Free forum by Nabble | Edit this page |