You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jl...@apache.org on 2014/08/18 09:42:37 UTC
svn commit: r1618554 [25/38] - in
/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23: ./
applications/accounting/config/
applications/accounting/script/org/ofbiz/accounting/invoice/
applications/accounting/src/org/ofbiz/accounting/invoice/ appli...
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="<@o...@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="<@o...@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="<@o...@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="<@o...@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="<@o...@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="<@o...@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="<@o...@ofbizUrl>" target="entityFrame">${entity.entityName}</a>
<#else>
- <a href="<@o...@ofbizUrl>" target="entityFrame">${entity.entityName}</a>
+ <a href="<@o...@ofbizUrl>" target="entityFrame">${entity.entityName}</a>
</#if>
<br />
</#list>