You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by sa...@apache.org on 2012/08/07 08:26:13 UTC
svn commit: r1370126 [6/15] - in /ofbiz/branches/jackrabbit20120501: ./
applications/accounting/script/org/ofbiz/accounting/payment/
applications/accounting/src/org/ofbiz/accounting/payment/
applications/accounting/webapp/accounting/WEB-INF/ applicatio...
Modified: ofbiz/branches/jackrabbit20120501/framework/entity/src/org/ofbiz/entity/finder/EntityFinderUtil.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/framework/entity/src/org/ofbiz/entity/finder/EntityFinderUtil.java?rev=1370126&r1=1370125&r2=1370126&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20120501/framework/entity/src/org/ofbiz/entity/finder/EntityFinderUtil.java (original)
+++ ofbiz/branches/jackrabbit20120501/framework/entity/src/org/ofbiz/entity/finder/EntityFinderUtil.java Tue Aug 7 06:25:59 2012
@@ -21,19 +21,20 @@ package org.ofbiz.entity.finder;
import static org.ofbiz.base.util.UtilGenerics.cast;
import java.io.Serializable;
+import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
import java.util.HashSet;
-import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import javolution.util.FastMap;
+import javolution.util.FastList;
import org.ofbiz.base.util.Debug;
import org.ofbiz.base.util.ObjectType;
import org.ofbiz.base.util.StringUtil;
-import org.ofbiz.base.util.UtilFormatOut;
import org.ofbiz.base.util.UtilGenerics;
import org.ofbiz.base.util.UtilValidate;
import org.ofbiz.base.util.UtilXml;
@@ -63,24 +64,24 @@ public class EntityFinderUtil {
Map<FlexibleMapAccessor<Object>, Object> fieldMap = null;
List<? extends Element> fieldMapElementList = UtilXml.childElementList(element, "field-map");
if (fieldMapElementList.size() > 0) {
- fieldMap = FastMap.newInstance();
+ fieldMap = new HashMap<FlexibleMapAccessor<Object>, Object>(fieldMapElementList.size());
for (Element fieldMapElement: fieldMapElementList) {
// set the env-name for each field-name, noting that if no field-name is specified it defaults to the env-name
String fieldName = fieldMapElement.getAttribute("field-name");
String envName = fieldMapElement.getAttribute("from-field");
- if (UtilValidate.isEmpty(envName)) {
+ if (envName.isEmpty()) {
envName = fieldMapElement.getAttribute("env-name");
}
String value = fieldMapElement.getAttribute("value");
- if (UtilValidate.isEmpty(fieldName)) {
+ if (fieldName.isEmpty()) {
// no fieldName, use envName for both
fieldMap.put(FlexibleMapAccessor.getInstance(envName), FlexibleMapAccessor.getInstance(envName));
} else {
- if (UtilValidate.isNotEmpty(value)) {
+ if (!value.isEmpty()) {
fieldMap.put(FlexibleMapAccessor.getInstance(fieldName), FlexibleStringExpander.getInstance(value));
} else {
// at this point we have a fieldName and no value, do we have a envName?
- if (UtilValidate.isNotEmpty(envName)) {
+ if (!envName.isEmpty()) {
fieldMap.put(FlexibleMapAccessor.getInstance(fieldName), FlexibleMapAccessor.getInstance(envName));
} else {
// no envName, use fieldName for both
@@ -116,7 +117,7 @@ public class EntityFinderUtil {
List<FlexibleStringExpander> selectFieldExpanderList = null;
List<? extends Element> selectFieldElementList = UtilXml.childElementList(element, "select-field");
if (selectFieldElementList.size() > 0) {
- selectFieldExpanderList = new LinkedList<FlexibleStringExpander>();
+ selectFieldExpanderList = new ArrayList<FlexibleStringExpander>(selectFieldElementList.size());
for (Element selectFieldElement: selectFieldElementList) {
selectFieldExpanderList.add(FlexibleStringExpander.getInstance(selectFieldElement.getAttribute("field-name")));
}
@@ -138,7 +139,7 @@ public class EntityFinderUtil {
public static List<String> makeOrderByFieldList(List<FlexibleStringExpander> orderByExpanderList, Map<String, Object> context) {
List<String> orderByFields = null;
if (UtilValidate.isNotEmpty(orderByExpanderList)) {
- orderByFields = new LinkedList<String>();
+ orderByFields = new ArrayList<String>(orderByExpanderList.size());
for (FlexibleStringExpander orderByExpander: orderByExpanderList) {
orderByFields.add(orderByExpander.expandString(context));
}
@@ -149,30 +150,37 @@ public class EntityFinderUtil {
public static interface Condition extends Serializable {
public EntityCondition createCondition(Map<String, ? extends Object> context, ModelEntity modelEntity, ModelFieldTypeReader modelFieldTypeReader);
}
+
@SuppressWarnings("serial")
- public static class ConditionExpr implements Condition {
- protected FlexibleStringExpander fieldNameExdr;
- protected FlexibleStringExpander operatorExdr;
- protected FlexibleMapAccessor<Object> envNameAcsr;
- protected FlexibleStringExpander valueExdr;
- protected FlexibleStringExpander ignoreExdr;
- protected boolean ignoreIfNull;
- protected boolean ignoreIfEmpty;
- protected boolean ignoreCase;
+ public static final class ConditionExpr implements Condition {
+ private final String fieldName;
+ private final EntityOperator<?,?,?> operator;
+ private final FlexibleMapAccessor<Object> envNameAcsr;
+ private final FlexibleStringExpander valueExdr;
+ private final FlexibleStringExpander ignoreExdr;
+ private final boolean ignoreIfNull;
+ private final boolean ignoreIfEmpty;
+ private final boolean ignoreCase;
public ConditionExpr(Element conditionExprElement) {
- this.fieldNameExdr = FlexibleStringExpander.getInstance(conditionExprElement.getAttribute("field-name"));
- if (this.fieldNameExdr.isEmpty()) {
- // no "field-name"? try "name"
- this.fieldNameExdr = FlexibleStringExpander.getInstance(conditionExprElement.getAttribute("name"));
- }
-
- this.operatorExdr = FlexibleStringExpander.getInstance(UtilFormatOut.checkEmpty(conditionExprElement.getAttribute("operator"), "equals"));
- if (UtilValidate.isNotEmpty(conditionExprElement.getAttribute("from-field"))) {
- this.envNameAcsr = FlexibleMapAccessor.getInstance(conditionExprElement.getAttribute("from-field"));
- } else {
- this.envNameAcsr = FlexibleMapAccessor.getInstance(conditionExprElement.getAttribute("env-name"));
+ String fieldNameAttribute = conditionExprElement.getAttribute("field-name");
+ if (fieldNameAttribute.isEmpty()) {
+ fieldNameAttribute = conditionExprElement.getAttribute("name");
+ }
+ this.fieldName = fieldNameAttribute;
+ String operatorAttribute = conditionExprElement.getAttribute("operator");
+ if (operatorAttribute.isEmpty()) {
+ operatorAttribute = "equals";
+ }
+ this.operator = EntityOperator.lookup(operatorAttribute);
+ if (this.operator == null) {
+ throw new IllegalArgumentException("Could not find an entity operator for the name: " + operatorAttribute);
+ }
+ String fromFieldAttribute = conditionExprElement.getAttribute("from-field");
+ if (fromFieldAttribute.isEmpty()) {
+ fromFieldAttribute = conditionExprElement.getAttribute("env-name");
}
+ this.envNameAcsr = FlexibleMapAccessor.getInstance(fromFieldAttribute);
this.valueExdr = FlexibleStringExpander.getInstance(conditionExprElement.getAttribute("value"));
this.ignoreIfNull = "true".equals(conditionExprElement.getAttribute("ignore-if-null"));
this.ignoreIfEmpty = "true".equals(conditionExprElement.getAttribute("ignore-if-empty"));
@@ -181,22 +189,19 @@ public class EntityFinderUtil {
}
public EntityCondition createCondition(Map<String, ? extends Object> context, ModelEntity modelEntity, ModelFieldTypeReader modelFieldTypeReader) {
- String fieldName = fieldNameExdr.expandString(context);
-
- Object value = null;
- // start with the environment variable, will override if exists and a value is specified
- if (envNameAcsr != null) {
- value = envNameAcsr.get(context);
+ if ("true".equals(this.ignoreExdr.expandString(context))) {
+ return null;
}
- // no value so far, and a string value is specified, use that
- if (value == null && valueExdr != null) {
- value = valueExdr.expandString(context);
+ if (modelEntity.getField(fieldName) == null) {
+ throw new IllegalArgumentException("Error in Entity Find: could not find field [" + fieldName + "] in entity with name [" + modelEntity.getEntityName() + "]");
}
- String operatorName = operatorExdr.expandString(context);
- EntityOperator<?,?,?> operator = EntityOperator.lookup(operatorName);
- if (operator == null) {
- throw new IllegalArgumentException("Could not find an entity operator for the name: " + operatorName);
+ Object value = envNameAcsr.get(context);
+ if (value == null && !valueExdr.isEmpty()) {
+ value = valueExdr.expandString(context);
+ }
+ if (this.ignoreIfNull && value == null) {
+ return null;
}
// If IN or BETWEEN operator, see if value is a literal list and split it
@@ -208,15 +213,11 @@ public class EntityFinderUtil {
} else if (((String)value).indexOf(",") >= 0) {
delim = ",";
}
- if (UtilValidate.isNotEmpty(delim)) {
+ if (delim != null) {
value = StringUtil.split((String)value, delim);
}
}
- if (modelEntity.getField(fieldName) == null) {
- throw new IllegalArgumentException("Error in Entity Find: could not find field [" + fieldName + "] in entity with name [" + modelEntity.getEntityName() + "]");
- }
-
// don't convert the field to the desired type if this is an IN or BETWEEN operator and we have a Collection
if (!((operator.equals(EntityOperator.IN) || operator.equals(EntityOperator.BETWEEN) || operator.equals(EntityOperator.NOT_IN))
&& value instanceof Collection<?>)) {
@@ -226,17 +227,10 @@ public class EntityFinderUtil {
if (Debug.verboseOn()) Debug.logVerbose("Got value for fieldName [" + fieldName + "]: " + value, module);
- if (this.ignoreIfNull && value == null) {
- return null;
- }
if (this.ignoreIfEmpty && ObjectType.isEmpty(value)) {
return null;
}
- if ("true".equals(this.ignoreExdr.expandString(context))) {
- return null;
- }
-
if (operator == EntityOperator.NOT_EQUAL && value != null) {
// since some databases don't consider nulls in != comparisons, explicitly include them
// this makes more sense logically, but if anyone ever needs it to not behave this way we should add an "or-null" attribute that is true by default
@@ -263,68 +257,72 @@ public class EntityFinderUtil {
}
@SuppressWarnings("serial")
- public static class ConditionList implements Condition {
- List<Condition> conditionList = new LinkedList<Condition>();
- FlexibleStringExpander combineExdr;
+ public static final class ConditionList implements Condition {
+ private final List<Condition> conditionList;
+ private final EntityOperator<?,?,?> operator;
public ConditionList(Element conditionListElement) {
- this.combineExdr = FlexibleStringExpander.getInstance(conditionListElement.getAttribute("combine"));
-
+ String operatorAttribute = conditionListElement.getAttribute("combine");
+ if (operatorAttribute.isEmpty()) {
+ operatorAttribute = "and";
+ }
+ this.operator = EntityOperator.lookup(operatorAttribute);
+ if (this.operator == null) {
+ throw new IllegalArgumentException("Could not find an entity operator for the name: " + operatorAttribute);
+ }
List<? extends Element> subElements = UtilXml.childElementList(conditionListElement);
- for (Element subElement: subElements) {
- if ("condition-expr".equals(subElement.getNodeName())) {
- conditionList.add(new ConditionExpr(subElement));
- } else if ("condition-list".equals(subElement.getNodeName())) {
- conditionList.add(new ConditionList(subElement));
- } else if ("condition-object".equals(subElement.getNodeName())) {
- conditionList.add(new ConditionObject(subElement));
- } else {
- throw new IllegalArgumentException("Invalid element with name [" + subElement.getNodeName() + "] found under a condition-list element.");
+ if (subElements.isEmpty()) {
+ this.conditionList = null;
+ } else {
+ List<Condition> conditionList = new ArrayList<Condition>(subElements.size());
+ for (Element subElement : subElements) {
+ if ("condition-expr".equals(subElement.getNodeName())) {
+ conditionList.add(new ConditionExpr(subElement));
+ } else if ("condition-list".equals(subElement.getNodeName())) {
+ conditionList.add(new ConditionList(subElement));
+ } else if ("condition-object".equals(subElement.getNodeName())) {
+ conditionList.add(new ConditionObject(subElement));
+ } else {
+ throw new IllegalArgumentException("Invalid element with name [" + subElement.getNodeName() + "] found under a condition-list element.");
+ }
}
+ this.conditionList = Collections.unmodifiableList(conditionList);
}
}
public EntityCondition createCondition(Map<String, ? extends Object> context, ModelEntity modelEntity, ModelFieldTypeReader modelFieldTypeReader) {
- if (this.conditionList.size() == 0) {
+ if (this.conditionList == null) {
return null;
}
if (this.conditionList.size() == 1) {
Condition condition = this.conditionList.get(0);
return condition.createCondition(context, modelEntity, modelFieldTypeReader);
}
-
- List<EntityCondition> entityConditionList = new LinkedList<EntityCondition>();
- for (Condition curCondition: conditionList) {
+ List<EntityCondition> entityConditionList = new ArrayList<EntityCondition>(this.conditionList.size());
+ for (Condition curCondition: this.conditionList) {
EntityCondition econd = curCondition.createCondition(context, modelEntity, modelFieldTypeReader);
if (econd != null) {
entityConditionList.add(econd);
}
}
-
- String operatorName = combineExdr.expandString(context);
- EntityOperator<?,?,?> operator = EntityOperator.lookup(operatorName);
- if (operator == null) {
- throw new IllegalArgumentException("Could not find an entity operator for the name: " + operatorName);
- }
-
return EntityCondition.makeCondition(entityConditionList, UtilGenerics.<EntityJoinOperator>cast(operator));
}
}
+
@SuppressWarnings("serial")
- public static class ConditionObject implements Condition {
- protected FlexibleMapAccessor<Object> fieldNameAcsr;
+ public static final class ConditionObject implements Condition {
+ private final FlexibleMapAccessor<Object> fieldNameAcsr;
public ConditionObject(Element conditionExprElement) {
- this.fieldNameAcsr = FlexibleMapAccessor.getInstance(conditionExprElement.getAttribute("field"));
- if (this.fieldNameAcsr.isEmpty()) {
- // no "field"? try "field-name"
- this.fieldNameAcsr = FlexibleMapAccessor.getInstance(conditionExprElement.getAttribute("field-name"));
+ String fieldNameAttribute = conditionExprElement.getAttribute("field");
+ if (fieldNameAttribute.isEmpty()) {
+ fieldNameAttribute = conditionExprElement.getAttribute("field-name");
}
+ this.fieldNameAcsr = FlexibleMapAccessor.getInstance(fieldNameAttribute);
}
public EntityCondition createCondition(Map<String, ? extends Object> context, ModelEntity modelEntity, ModelFieldTypeReader modelFieldTypeReader) {
- EntityCondition condition = (EntityCondition) fieldNameAcsr.get(context);
- return condition;
+ return (EntityCondition) fieldNameAcsr.get(context);
}
}
@@ -332,6 +330,7 @@ public class EntityFinderUtil {
public void handleOutput(EntityListIterator eli, Map<String, Object> context, FlexibleMapAccessor<Object> listAcsr);
public void handleOutput(List<GenericValue> results, Map<String, Object> context, FlexibleMapAccessor<Object> listAcsr);
}
+
@SuppressWarnings("serial")
public static class LimitRange implements OutputHandler {
FlexibleStringExpander startExdr;
@@ -365,7 +364,7 @@ public class EntityFinderUtil {
}
public void handleOutput(EntityListIterator eli, Map<String, Object> context, FlexibleMapAccessor<Object> listAcsr) {
- int start = getStart(context);
+ int start = getStart(context) + 1; // ELI index is one-based.
int size = getSize(context);
try {
listAcsr.put(context, eli.getPartialList(start, size));
@@ -378,15 +377,22 @@ public class EntityFinderUtil {
}
public void handleOutput(List<GenericValue> results, Map<String, Object> context, FlexibleMapAccessor<Object> listAcsr) {
+ List<GenericValue> result = null;
int start = getStart(context);
- int size = getSize(context);
-
- int end = start + size;
- if (end > results.size()) end = results.size();
-
- listAcsr.put(context, results.subList(start, end));
+ if (start < results.size()) {
+ int size = getSize(context);
+ int end = start + size;
+ if (end > results.size()) {
+ end = results.size();
+ }
+ result = results.subList(start, end);
+ } else {
+ result = FastList.newInstance();
+ }
+ listAcsr.put(context, result);
}
}
+
@SuppressWarnings("serial")
public static class LimitView implements OutputHandler {
FlexibleStringExpander viewIndexExdr;
@@ -422,9 +428,8 @@ public class EntityFinderUtil {
public void handleOutput(EntityListIterator eli, Map<String, Object> context, FlexibleMapAccessor<Object> listAcsr) {
int index = this.getIndex(context);
int size = this.getSize(context);
-
try {
- listAcsr.put(context, eli.getPartialList(((index - 1) * size) + 1, size));
+ listAcsr.put(context, eli.getPartialList(((index - 1) * size) + 1, size)); // ELI index is one-based.
eli.close();
} catch (GenericEntityException e) {
String errMsg = "Error getting partial list in limit-view with index=" + index + " and size=" + size + ": " + e.toString();
@@ -434,16 +439,23 @@ public class EntityFinderUtil {
}
public void handleOutput(List<GenericValue> results, Map<String, Object> context, FlexibleMapAccessor<Object> listAcsr) {
+ List<GenericValue> result = null;
int index = this.getIndex(context);
int size = this.getSize(context);
-
- int begin = index * size;
- int end = index * size + size;
- if (end > results.size()) end = results.size();
-
- listAcsr.put(context, results.subList(begin, end));
+ int begin = (index - 1) * size;
+ if (begin < results.size()) {
+ int end = begin + size;
+ if (end > results.size()) {
+ end = results.size();
+ }
+ result = results.subList(begin, end);
+ } else {
+ result = FastList.newInstance();
+ }
+ listAcsr.put(context, result);
}
}
+
@SuppressWarnings("serial")
public static class UseIterator implements OutputHandler {
public UseIterator(Element useIteratorElement) {
Modified: ofbiz/branches/jackrabbit20120501/framework/entity/src/org/ofbiz/entity/model/DynamicViewEntity.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/framework/entity/src/org/ofbiz/entity/model/DynamicViewEntity.java?rev=1370126&r1=1370125&r2=1370126&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20120501/framework/entity/src/org/ofbiz/entity/model/DynamicViewEntity.java (original)
+++ ofbiz/branches/jackrabbit20120501/framework/entity/src/org/ofbiz/entity/model/DynamicViewEntity.java Tue Aug 7 06:25:59 2012
@@ -230,7 +230,7 @@ public class DynamicViewEntity {
}
/**
- * @deprecated use {@link #addAliasAll(String, String, Collection<String>)}
+ * @deprecated use {@link #addAliasAll(String, String, Collection)}
*/
@Deprecated
public void addAliasAll(String entityAlias, String prefix) {
Modified: ofbiz/branches/jackrabbit20120501/framework/entity/src/org/ofbiz/entity/model/ModelReader.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/framework/entity/src/org/ofbiz/entity/model/ModelReader.java?rev=1370126&r1=1370125&r2=1370126&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20120501/framework/entity/src/org/ofbiz/entity/model/ModelReader.java (original)
+++ ofbiz/branches/jackrabbit20120501/framework/entity/src/org/ofbiz/entity/model/ModelReader.java Tue Aug 7 06:25:59 2012
@@ -98,7 +98,7 @@ public class ModelReader implements Seri
return reader;
}
- public ModelReader(String modelName) throws GenericEntityException {
+ private ModelReader(String modelName) throws GenericEntityException {
this.modelName = modelName;
entityResourceHandlers = FastList.newInstance();
resourceHandlerEntities = FastMap.newInstance();
@@ -127,6 +127,7 @@ public class ModelReader implements Seri
private ModelEntity buildEntity(ResourceHandler entityResourceHandler, Element curEntityElement, int i, ModelInfo def) throws GenericEntityException {
boolean isEntity = "entity".equals(curEntityElement.getNodeName());
String entityName = UtilXml.checkEmpty(curEntityElement.getAttribute("entity-name")).intern();
+ boolean redefinedEntity = "true".equals(curEntityElement.getAttribute("redefinition"));
// add entityName to appropriate resourceHandlerEntities collection
Collection<String> resourceHandlerEntityNames = resourceHandlerEntities.get(entityResourceHandler);
@@ -138,7 +139,7 @@ public class ModelReader implements Seri
resourceHandlerEntityNames.add(entityName);
// check to see if entity with same name has already been read
- if (entityCache.containsKey(entityName)) {
+ if (entityCache.containsKey(entityName) && !redefinedEntity) {
Debug.logWarning("WARNING: Entity " + entityName +
" is defined more than once, most recent will over-write " +
"previous definition(s)", module);
Modified: ofbiz/branches/jackrabbit20120501/framework/entity/src/org/ofbiz/entity/serialize/XmlSerializer.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/framework/entity/src/org/ofbiz/entity/serialize/XmlSerializer.java?rev=1370126&r1=1370125&r2=1370126&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20120501/framework/entity/src/org/ofbiz/entity/serialize/XmlSerializer.java (original)
+++ ofbiz/branches/jackrabbit20120501/framework/entity/src/org/ofbiz/entity/serialize/XmlSerializer.java Tue Aug 7 06:25:59 2012
@@ -264,7 +264,8 @@ public class XmlSerializer {
} else {
String byteHex = StringUtil.toHexString(objBytes);
Element element = document.createElement("cus-obj");
- element.appendChild(document.createCDATASection(byteHex));
+ // this is hex encoded so does not need to be in a CDATA block
+ element.appendChild(document.createTextNode(byteHex));
return element;
}
} else {
@@ -499,4 +500,4 @@ public class XmlSerializer {
}
return formatter;
}
-}
\ No newline at end of file
+}
Modified: ofbiz/branches/jackrabbit20120501/framework/entityext/ofbiz-component.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/framework/entityext/ofbiz-component.xml?rev=1370126&r1=1370125&r2=1370126&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20120501/framework/entityext/ofbiz-component.xml (original)
+++ ofbiz/branches/jackrabbit20120501/framework/entityext/ofbiz-component.xml Tue Aug 7 06:25:59 2012
@@ -34,4 +34,10 @@ under the License.
<service-resource type="model" loader="main" location="servicedef/services.xml"/>
<service-resource type="group" loader="main" location="servicedef/groups.xml"/>
+
+ <!-- load the data load container, runs the entity data load stuff -->
+ <container name="dataload-container" loaders="install" class="org.ofbiz.entityext.data.EntityDataLoadContainer">
+ <property name="delegator-name" value="default"/>
+ <property name="entity-group-name" value="org.ofbiz"/>
+ </container>
</ofbiz-component>
Modified: ofbiz/branches/jackrabbit20120501/framework/entityext/src/org/ofbiz/entityext/EntityServiceFactory.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/framework/entityext/src/org/ofbiz/entityext/EntityServiceFactory.java?rev=1370126&r1=1370125&r2=1370126&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20120501/framework/entityext/src/org/ofbiz/entityext/EntityServiceFactory.java (original)
+++ ofbiz/branches/jackrabbit20120501/framework/entityext/src/org/ofbiz/entityext/EntityServiceFactory.java Tue Aug 7 06:25:59 2012
@@ -20,8 +20,8 @@ package org.ofbiz.entityext;
import org.ofbiz.entity.Delegator;
import org.ofbiz.service.DispatchContext;
-import org.ofbiz.service.GenericDispatcher;
import org.ofbiz.service.LocalDispatcher;
+import org.ofbiz.service.ServiceContainer;
/**
* EntityEcaUtil
@@ -31,7 +31,7 @@ public class EntityServiceFactory {
public static final String module = EntityServiceFactory.class.getName();
public static LocalDispatcher getLocalDispatcher(Delegator delegator) {
- LocalDispatcher dispatcher = GenericDispatcher.getLocalDispatcher("entity-" + delegator.getDelegatorName(), delegator);
+ LocalDispatcher dispatcher = ServiceContainer.getLocalDispatcher("entity-" + delegator.getDelegatorName(), delegator);
return dispatcher;
}
Modified: ofbiz/branches/jackrabbit20120501/framework/entityext/src/org/ofbiz/entityext/data/EntityDataLoadContainer.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/framework/entityext/src/org/ofbiz/entityext/data/EntityDataLoadContainer.java?rev=1370126&r1=1370125&r2=1370126&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20120501/framework/entityext/src/org/ofbiz/entityext/data/EntityDataLoadContainer.java (original)
+++ ofbiz/branches/jackrabbit20120501/framework/entityext/src/org/ofbiz/entityext/data/EntityDataLoadContainer.java Tue Aug 7 06:25:59 2012
@@ -77,14 +77,15 @@ public class EntityDataLoadContainer imp
protected boolean createConstraints = false;
protected int txTimeout = -1;
+ private String name;
+
public EntityDataLoadContainer() {
super();
}
- /**
- * @see org.ofbiz.base.container.Container#init(java.lang.String[], java.lang.String)
- */
- public void init(String[] args, String configFile) throws ContainerException {
+ @Override
+ public void init(String[] args, String name, String configFile) throws ContainerException {
+ this.name = name;
this.configFile = configFile;
// disable job scheduler, JMS listener and startup services
ServiceDispatcher.enableJM(false);
@@ -207,7 +208,7 @@ public class EntityDataLoadContainer imp
Debug.logWarning("Please enable multitenant. (e.g. general.properties --> multitenant=Y)", module);
return true;
}
- ContainerConfig.Container cfg = ContainerConfig.getContainer("dataload-container", configFile);
+ ContainerConfig.Container cfg = ContainerConfig.getContainer(name, configFile);
ContainerConfig.Container.Property delegatorNameProp = cfg.getProperty("delegator-name");
String delegatorName = null;
if (delegatorNameProp == null || UtilValidate.isEmpty(delegatorNameProp.value)) {
@@ -238,7 +239,7 @@ public class EntityDataLoadContainer imp
return true;
}
private void loadContainer() throws ContainerException{
- ContainerConfig.Container cfg = ContainerConfig.getContainer("dataload-container", configFile);
+ ContainerConfig.Container cfg = ContainerConfig.getContainer(name, configFile);
ContainerConfig.Container.Property delegatorNameProp = cfg.getProperty("delegator-name");
ContainerConfig.Container.Property entityGroupNameProp = cfg.getProperty("entity-group-name");
@@ -570,4 +571,8 @@ public class EntityDataLoadContainer imp
*/
public void stop() throws ContainerException {
}
+
+ public String getName() {
+ return name;
+ }
}
Modified: ofbiz/branches/jackrabbit20120501/framework/geronimo/src/org/ofbiz/geronimo/GeronimoContainer.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/framework/geronimo/src/org/ofbiz/geronimo/GeronimoContainer.java?rev=1370126&r1=1370125&r2=1370126&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20120501/framework/geronimo/src/org/ofbiz/geronimo/GeronimoContainer.java (original)
+++ ofbiz/branches/jackrabbit20120501/framework/geronimo/src/org/ofbiz/geronimo/GeronimoContainer.java Tue Aug 7 06:25:59 2012
@@ -35,11 +35,11 @@ public class GeronimoContainer implement
public static final String module = GeronimoContainer.class.getName();
protected String configFile = null;
+ private String name;
- /**
- * @see org.ofbiz.base.container.Container#init(java.lang.String[], java.lang.String)
- */
- public void init(String[] args, String configFile) throws ContainerException {
+ @Override
+ public void init(String[] args, String name, String configFile) throws ContainerException {
+ this.name = name;
this.configFile = configFile;
this.startGeronimo();
}
@@ -50,7 +50,7 @@ public class GeronimoContainer implement
private void startGeronimo() throws ContainerException {
// get the container config
- ContainerConfig.Container cc = ContainerConfig.getContainer("geronimo-container", configFile);
+ ContainerConfig.Container cc = ContainerConfig.getContainer(name, configFile);
if (cc == null) {
throw new ContainerException("No geronimo-container configuration found in container config!");
}
@@ -83,4 +83,8 @@ public class GeronimoContainer implement
// TODO: how to stop the Geronimo transaction manager? is it even needed?
}
+ public String getName() {
+ return name;
+ }
+
}
Modified: ofbiz/branches/jackrabbit20120501/framework/images/webapp/images/fieldlookup.js
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/framework/images/webapp/images/fieldlookup.js?rev=1370126&r1=1370125&r2=1370126&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20120501/framework/images/webapp/images/fieldlookup.js (original)
+++ ofbiz/branches/jackrabbit20120501/framework/images/webapp/images/fieldlookup.js Tue Aug 7 06:25:59 2012
@@ -449,7 +449,7 @@ var FieldLookupCounter = function() {
};
};
-var GLOBAL_LOOKUP_REF = new FieldLookupCounter;
+var GLOBAL_LOOKUP_REF = new FieldLookupCounter();
/*******************************************************************************
* Button Modifier Object
@@ -474,8 +474,8 @@ var ButtonModifier = function(lookupDiv)
var slTitleBars = jQuery("#" + lookupDiv + " .screenlet-title-bar");
- jQuery.each(slTitleBars, function(i) {
- var slTitleBar = slTitleBars[i];
+ jQuery.each(slTitleBars, function(index) {
+ var slTitleBar = slTitleBars[index];
var ul = slTitleBar.firstChild;
if ((typeof ul) != 'object') {
return true;
@@ -610,10 +610,10 @@ var ButtonModifier = function(lookupDiv)
jQuery.each(cellChilds, function(child) {
if (cellChilds[child].tagName == "A") {
var link = cellChilds[child].href;
- var liSub = link.substring(link.lastIndexOf('/') + 1, (link.length));
- if (liSub.indexOf("javascript:set_") != -1) {
+ if (link.indexOf("javascript:set_") != -1) {
cellChilds[child].href = link;
} else {
+ var liSub = link.substring(link.lastIndexOf('/') + 1, (link.length));
cellChilds[child].href = "javascript:lookupAjaxRequest('" + liSub + "&presentation=layer')";
}
}
@@ -851,22 +851,21 @@ lookupDescriptionLoaded.prototype.update
this.allParams = this.params + '&' + fieldSerialized + '&' + 'searchType=EQUALS';
var _fieldId = this.fieldId;
- jQuery
- .ajax({
- url : this.url,
- type : "POST",
- data : this.allParams,
- async : false,
- success : function(result) {
- // This would be far more reliable if we were removing
- // the widget boundaries in LookupDecorator using
- // widgetVerbose in context :/
- if (result.split("ajaxAutocompleteOptions.ftl -->")[1]) {
- setLookDescription(_fieldId, result.split("ajaxAutocompleteOptions.ftl -->")[1].trim().split("<!--")[0].trim(),
- "", "");
- }
- }
- });
+ jQuery.ajax({
+ url : this.url,
+ type : "POST",
+ data : this.allParams,
+ async : false,
+ success : function(result) {
+ // This would be far more reliable if we were removing
+ // the widget boundaries in LookupDecorator using
+ // widgetVerbose in context :/
+ if (result.split("ajaxAutocompleteOptions.ftl -->")[1]) {
+ setLookDescription(_fieldId, result.split("ajaxAutocompleteOptions.ftl -->")[1].trim().split("<!--")[0].trim(),
+ "", "");
+ }
+ }
+ });
}
}
Modified: ofbiz/branches/jackrabbit20120501/framework/images/webapp/images/getDependentDropdownValues.js
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/framework/images/webapp/images/getDependentDropdownValues.js?rev=1370126&r1=1370125&r2=1370126&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20120501/framework/images/webapp/images/getDependentDropdownValues.js (original)
+++ ofbiz/branches/jackrabbit20120501/framework/images/webapp/images/getDependentDropdownValues.js Tue Aug 7 06:25:59 2012
@@ -52,7 +52,7 @@ function getDependentDropdownValues(requ
jQuery.each(list, function(key, value){
if (typeof value == 'string') {
values = value.split(': ');
- if (values[1].indexOf(selected) >= 0) {
+ if (values[1].indexOf(selected) >= 0 && selected.length > 0) {
optionList += "<option selected='selected' value = " + values[1] + " >" + values[0] + "</option>";
} else {
optionList += "<option value = " + values[1] + " >" + values[0] + "</option>";
Modified: ofbiz/branches/jackrabbit20120501/framework/images/webapp/images/selectall.js
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/framework/images/webapp/images/selectall.js?rev=1370126&r1=1370125&r2=1370126&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20120501/framework/images/webapp/images/selectall.js (original)
+++ ofbiz/branches/jackrabbit20120501/framework/images/webapp/images/selectall.js Tue Aug 7 06:25:59 2012
@@ -390,7 +390,7 @@ function ajaxSubmitFormUpdateAreas(form,
});
}
-/** Enable auto-completion for text elements.
+/** Enable auto-completion for text elements, with a possible span of tooltip class showing description.
* @param areaCsvString The area CSV string. The CSV string is a flat array in the
* form of: areaId, target, target parameters [, areaId, target, target parameters...].
*/
Modified: ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/loader/JCRContainer.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/loader/JCRContainer.java?rev=1370126&r1=1370125&r2=1370126&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/loader/JCRContainer.java (original)
+++ ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/loader/JCRContainer.java Tue Aug 7 06:25:59 2012
@@ -36,11 +36,11 @@ public class JCRContainer implements Con
public static final String DEFAULT_JCR_CONFIG_PATH = "framework/jcr/config/jcr-config.xml";
- private static final String module = JCRContainer.class.getName();
-
private static String configFilePath = null;
private boolean removeRepositoryOnShutdown = false;
+ private String name;
+
/*
* (non-Javadoc)
*
@@ -48,8 +48,10 @@ public class JCRContainer implements Con
* java.lang.String)
*/
@Override
- public void init(String[] args, String configFile) throws ContainerException {
- readContainerConfig(configFile);
+ public void init(String[] args, String name, String configFile) throws ContainerException {
+ this.name = name;
+
+ readContainerConfig(configFile);
Element configRootElement = getConfigFileRootElement();
@@ -62,7 +64,6 @@ public class JCRContainer implements Con
*
* @see org.ofbiz.base.container.Container#start()
*/
- @Override
public boolean start() throws ContainerException {
JCRFactory jcrFactory = getJCRFactory();
@@ -80,7 +81,6 @@ public class JCRContainer implements Con
*
* @see org.ofbiz.base.container.Container#stop()
*/
- @Override
public void stop() throws ContainerException {
JCRFactory jcrFactory = getJCRFactory();
@@ -154,4 +154,9 @@ public class JCRContainer implements Con
}
return jcrFactory;
}
+
+ @Override
+ public String getName() {
+ return this.name;
+ }
}
Modified: ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/test/JackrabbitBaseTests.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/test/JackrabbitBaseTests.java?rev=1370126&r1=1370125&r2=1370126&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/test/JackrabbitBaseTests.java (original)
+++ ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/test/JackrabbitBaseTests.java Tue Aug 7 06:25:59 2012
@@ -48,7 +48,7 @@ public class JackrabbitBaseTests extends
@Override
protected void setUp() throws Exception {
- userLogin = delegator.findByPrimaryKey("UserLogin", UtilMisc.toMap("userLoginId", "system"));
+ userLogin = delegator.findOne("UserLogin", true, UtilMisc.toMap("userLoginId", "system"));
}
Modified: ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/test/JackrabbitTenantTests.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/test/JackrabbitTenantTests.java?rev=1370126&r1=1370125&r2=1370126&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/test/JackrabbitTenantTests.java (original)
+++ ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/test/JackrabbitTenantTests.java Tue Aug 7 06:25:59 2012
@@ -24,14 +24,14 @@ public class JackrabbitTenantTests exten
@Override
protected void setUp() throws Exception {
- userLogin = delegator.findByPrimaryKey("UserLogin", UtilMisc.toMap("userLoginId", "admin"));
+ userLogin = delegator.findOne("UserLogin", true, UtilMisc.toMap("userLoginId", "admin"));
// tenant delegator
String delegatorName = delegator.getDelegatorBaseName() + "#DEMO1";
tenantDelegator = DelegatorFactory.getDelegator(delegatorName);
assertNotNull(tenantDelegator);
- tenantUserLogin = tenantDelegator.findByPrimaryKey("UserLogin", UtilMisc.toMap("userLoginId", "admin"));
+ tenantUserLogin = tenantDelegator.findOne("UserLogin", true, UtilMisc.toMap("userLoginId", "admin"));
assertNotNull(tenantUserLogin);
}
Modified: ofbiz/branches/jackrabbit20120501/framework/jetty/ofbiz-component.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/framework/jetty/ofbiz-component.xml?rev=1370126&r1=1370125&r2=1370126&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20120501/framework/jetty/ofbiz-component.xml (original)
+++ ofbiz/branches/jackrabbit20120501/framework/jetty/ofbiz-component.xml Tue Aug 7 06:25:59 2012
@@ -24,4 +24,61 @@ under the License.
<resource-loader name="main" type="component"/>
<classpath type="jar" location="lib/*"/>
<classpath type="jar" location="build/lib/*"/>
+
+ <container name="jetty-container" class="org.ofbiz.jetty.container.JettyContainer">
+ <property name="default-server" value="server">
+ <property name="send-server-version" value="false"/>
+ <!-- thread pool config -->
+ <property name="min-threads" value="5"/>
+ <property name="max-threads" value="100"/>
+ <property name="max-idle-time-ms" value="30000"/>
+ <property name="max-stop-time-ms" value="5000"/>
+ <!-- connectors -->
+ <!--
+ <property name="http-connector" value="connector">
+ <property name="type" value="http"/>
+ <property name="host" value="0.0.0.0"/>
+ <property name="port" value="8080"/>
+ </property>
+ <property name="https-connector" value="connector">
+ <property name="type" value="https"/>
+ <property name="host" value="0.0.0.0"/>
+ <property name="port" value="8443"/>
+ <property name="keystore" value="framework/base/config/ofbizssl.jks"/>
+ <property name="password" value="changeit"/>
+ <property name="key-password" value="changeit"/>
+ <property name="client-auth" value="false"/>
+ </property>
+ -->
+ <property name="nio-http-connector" value="connector">
+ <property name="type" value="nio-http"/>
+ <property name="host" value="0.0.0.0"/>
+ <property name="port" value="8080"/>
+ </property>
+ <property name="nio-https-connector" value="connector">
+ <property name="type" value="nio-https"/>
+ <property name="host" value="0.0.0.0"/>
+ <property name="port" value="8443"/>
+ <property name="keystore" value="framework/base/config/ofbizssl.jks"/>
+ <property name="password" value="changeit"/>
+ <property name="key-password" value="changeit"/>
+ <property name="client-auth" value="false"/>
+ </property>
+ <!--
+ <property name="ajp13-connector" value="connector">
+ <property name="type" value="ajp13"/>
+ <property name="host" value="0.0.0.0"/>
+ <property name="port" value="8009"/>
+ </property>
+ -->
+ <!-- request logs -->
+ <property name="request-log" value="request-log">
+ <property name="filename" value="runtime/logs/yyyy_mm_dd.request.log"/>
+ <property name="append" value="true"/>
+ <property name="extended" value="true"/>
+ <property name="timezone" value="GMT"/>
+ <property name="retain-days" value="90"/>
+ </property>
+ </property>
+ </container>
</ofbiz-component>
Modified: ofbiz/branches/jackrabbit20120501/framework/jetty/src/org/ofbiz/jetty/container/JettyContainer.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/framework/jetty/src/org/ofbiz/jetty/container/JettyContainer.java?rev=1370126&r1=1370125&r2=1370126&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20120501/framework/jetty/src/org/ofbiz/jetty/container/JettyContainer.java (original)
+++ ofbiz/branches/jackrabbit20120501/framework/jetty/src/org/ofbiz/jetty/container/JettyContainer.java Tue Aug 7 06:25:59 2012
@@ -58,13 +58,12 @@ public class JettyContainer implements C
public static final String module = JettyContainer.class.getName();
+ private String name;
private Map<String, Server> servers = new HashMap<String, Server>();
- /**
- * @see org.ofbiz.base.container.Container#init(java.lang.String[], java.lang.String)
- */
- public void init(String[] args, String configFile) throws ContainerException {
-
+ @Override
+ public void init(String[] args, String name, String configFile) throws ContainerException {
+ this.name = name;
// configure JSSE properties
SSLUtil.loadJsseProperties();
@@ -77,7 +76,7 @@ public class JettyContainer implements C
}
// get the jetty container config
- ContainerConfig.Container jettyContainerConfig = ContainerConfig.getContainer("jetty-container", configFile);
+ ContainerConfig.Container jettyContainerConfig = ContainerConfig.getContainer(name, configFile);
// create the servers
for (ContainerConfig.Container.Property serverConfig : jettyContainerConfig.getPropertiesWithValue("server")) {
@@ -376,4 +375,8 @@ public class JettyContainer implements C
}
}
+ public String getName() {
+ return name;
+ }
+
}
Modified: ofbiz/branches/jackrabbit20120501/framework/minilang/config/minilang.properties
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/framework/minilang/config/minilang.properties?rev=1370126&r1=1370125&r2=1370126&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20120501/framework/minilang/config/minilang.properties (original)
+++ ofbiz/branches/jackrabbit20120501/framework/minilang/config/minilang.properties Tue Aug 7 06:25:59 2012
@@ -26,3 +26,7 @@ validation.level=none
# to correct common syntax errors. The corrections are saved in the original
# source file.
autocorrect=false
+
+# Enable trace statements in mini-language unit tests. If set to true, mini-language
+# unit tests will log trace messages. Log messages will be INFO.
+unit.tests.trace.enabled=false