The last point i would implement where is required....for example debug properties do not need an override......

Regards,Hans


On 02/01/2012 05:36 PM, Chatree Srichart wrote:
So, what I could do next are:
- add systemResource field
- implement every methods in EntityUtilProperties
- replace UtilProperties with EntityUtilProperties in every functions If
they can use delegator.

Any idea?

Regards,
Chatree Srichart



On Wed, Feb 1, 2012 at 5:24 PM, Adrian Crum<
[email protected]>  wrote:

Including a systemResource field makes sense.

-Adrian


On 2/1/2012 10:14 AM, Chatree Srichart wrote:

On Wed, Feb 1, 2012 at 4:23 PM, Adrian Crum<
adrian.crum@sandglass-**software.com<[email protected]>>
  wrote:

  Hans,
This looks pretty good, but I have a few questions.

Do we really need EntityUtilProperties.java? It seems to me you could
just
add the three new methods to EntityUtil.java.

  I don't think just 3 new method. If we need to cover every property's
methods, we also need:

- getPropertyNumber
- getPropertyAsDouble
- propertyValueEquals
- and so on


  In the getSystemPropertyValue method, why are you using findByAnd when
the
SystemProperty entity has a primary key? Also, that lookup could come
from
the cache.

That is my fault. I had thought about the SytemProperty should have 2
primary keys:

- systemResource (pk)
- systemPropertyId (pk)
- systemPropertyValue
- description

Because the<property-to-field/>   includes a resource attribute

<property-to-field resource="" property="" field=""/>

I was wondering if it would be nice to add the systemResource field?

Regards,
Chatree Srichart


  -Adrian


  On 2/1/2012 8:24 AM, [email protected] wrote:

  Author: hansbak
Date: Wed Feb  1 08:24:36 2012
New Revision: 1238998

URL: 
http://svn.apache.org/viewvc?****rev=1238998&view=rev<http://svn.apache.org/viewvc?**rev=1238998&view=rev>
<http://**svn.apache.org/viewvc?rev=**1238998&view=rev<http://svn.apache.org/viewvc?rev=1238998&view=rev>
Log:
some missing files in -r1238993

Added:
     ofbiz/trunk/framework/common/****data/**
CommonSystemPropertyData.**xml
(with props)
     ofbiz/trunk/framework/entity/****script/
     ofbiz/trunk/framework/entity/****script/org/
     ofbiz/trunk/framework/entity/****script/org/ofbiz/
     ofbiz/trunk/framework/entity/****script/org/ofbiz/entity/
     ofbiz/trunk/framework/entity/****script/org/ofbiz/entity/test/
     ofbiz/trunk/framework/entity/****script/org/ofbiz/entity/test/**
**EntityUtilPropertiesTests.**xml
   (with props)
     ofbiz/trunk/framework/entity/****src/org/ofbiz/entity/util/****
EntityUtilProperties.java
   (with props)

Added: ofbiz/trunk/framework/common/****data/**
CommonSystemPropertyData.**xml
URL: 
http://svn.apache.org/viewvc/****ofbiz/trunk/framework/common/****<http://svn.apache.org/viewvc/**ofbiz/trunk/framework/common/**>
data/CommonSystemPropertyData.****xml?rev=1238998&view=auto<ht**
tp://svn.apache.org/viewvc/**ofbiz/trunk/framework/common/**
data/CommonSystemPropertyData.**xml?rev=1238998&view=auto<http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/data/CommonSystemPropertyData.xml?rev=1238998&view=auto>
==============================****============================**==**
==================
--- ofbiz/trunk/framework/common/****data/**
CommonSystemPropertyData.**xml
(added)
+++ ofbiz/trunk/framework/common/****data/**
CommonSystemPropertyData.**xml

Wed Feb  1 08:24:36 2012
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+    
http://www.apache.org/****licenses/LICENSE-2.0<http://www.apache.org/**licenses/LICENSE-2.0>
<http://**www.apache.org/licenses/**LICENSE-2.0<http://www.apache.org/licenses/LICENSE-2.0>
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+<entity-engine-xml>
+<SystemProperty systemPropertyId="currency.****uom.id.default"

systemPropertyValue="THB" description="the default currency to use for
prices, etc"/>
+<SystemProperty systemPropertyId="****defaultFromEmailAddress"
systemPropertyValue="**propertyt**[email protected]<pro**
[email protected]<[email protected]>>"

description="general default 'fromEmailAddress' can be overridden in:
EmailTemplateSetting"/>
+</entity-engine-xml>

Propchange: ofbiz/trunk/framework/common/****data/**
CommonSystemPropertyData.
**xml
------------------------------****----------------------------**--**

------------------
     svn:eol-style = native

Propchange: ofbiz/trunk/framework/common/****data/**
CommonSystemPropertyData.
**xml
------------------------------****----------------------------**--**

------------------
     svn:keywords = Date Rev Author URL Id

Propchange: ofbiz/trunk/framework/common/****data/**
CommonSystemPropertyData.
**xml
------------------------------****----------------------------**--**

------------------
     svn:mime-type = text/xml

Added: ofbiz/trunk/framework/entity/****script/org/ofbiz/entity/test/**
**
EntityUtilPropertiesTests.xml
URL: 
http://svn.apache.org/viewvc/****ofbiz/trunk/framework/entity/****<http://svn.apache.org/viewvc/**ofbiz/trunk/framework/entity/**>
script/org/ofbiz/entity/test/****EntityUtilPropertiesTests.**xml?**
rev=1238998&view=auto<http://**svn.apache.org/viewvc/ofbiz/**
trunk/framework/entity/script/**org/ofbiz/entity/test/**
EntityUtilPropertiesTests.xml?**rev=1238998&view=auto<http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/script/org/ofbiz/entity/test/EntityUtilPropertiesTests.xml?rev=1238998&view=auto>
==============================****============================**==**
==================
--- ofbiz/trunk/framework/entity/****script/org/ofbiz/entity/test/**
**EntityUtilPropertiesTests.**xml
(added)
+++ ofbiz/trunk/framework/entity/****script/org/ofbiz/entity/test/**
**EntityUtilPropertiesTests.**xml

Wed Feb  1 08:24:36 2012
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+http://www.apache.org/****licenses/LICENSE-2.0<http://www.apache.org/**licenses/LICENSE-2.0>
<http://**www.apache.org/licenses/**LICENSE-2.0<http://www.apache.org/licenses/LICENSE-2.0>
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<simple-methods xmlns:xsi="http://www.w3.org/***
*2001/XMLSchema-instance<http://www.w3.org/**2001/XMLSchema-instance><
http:**//www.w3.org/2001/XMLSchema-**instance<http://www.w3.org/2001/XMLSchema-instance>
"
+        xsi:noNamespaceSchemaLocation=****"http://ofbiz.apache.org/**
dtds/**<http://ofbiz.apache.org/dtds/**>
simple-methods.xsd<http://**ofbiz.apache.org/dtds/simple-**methods.xsd<http://ofbiz.apache.org/dtds/simple-methods.xsd>
">
+
+<simple-method method-name="****testGetGeneralProperties"

short-description="test getting general properties"
login-required="false">
+<call-class-method ret-field="****currencyUomIdDefault"
method-name="getPropertyValue" class-name="org.ofbiz.entity.****

util.EntityUtilProperties">
+<string value="general"/>
+<string value="currency.uom.id.****default"/>
+<field field="delegator" type="org.ofbiz.entity.****Delegator"/>

+</call-class-method>
+<assert><if-compare field="currencyUomIdDefault" operator="equals"
value="THB"></if-compare></****assert>
+
+<call-class-method ret-field="****defaultFromEmailAddress"
method-name="getPropertyValue" class-name="org.ofbiz.entity.****

util.EntityUtilProperties">
+<string value="general"/>
+<string value="****defaultFromEmailAddress"/>
+<field field="delegator" type="org.ofbiz.entity.****Delegator"/>
+</call-class-method>
+<assert><if-compare field="****defaultFromEmailAddress"
operator="equals"
value="propertytest@example.****com<[email protected]>
"></if-compare></assert>
+
+<property-to-field resource="general" property="currency.uom.id.****
default"

field="currencyUomIdDefault"/>
+<assert><if-compare field="currencyUomIdDefault" operator="equals"
value="THB"></if-compare></****assert>
+
+<property-to-field resource="general" property="****
defaultFromEmailAddress"
field="****defaultFromEmailAddress"/>
+<assert><if-compare field="****defaultFromEmailAddress"
operator="equals"
value="propertytest@example.****com<[email protected]>

"></if-compare></assert>
+</simple-method>
+</simple-methods>

Propchange: ofbiz/trunk/framework/entity/***
*script/org/ofbiz/entity/test/***
*EntityUtilPropertiesTests.xml
------------------------------****----------------------------**--**

------------------
     svn:eol-style = native

Propchange: ofbiz/trunk/framework/entity/***
*script/org/ofbiz/entity/test/***
*EntityUtilPropertiesTests.xml
------------------------------****----------------------------**--**

------------------
     svn:keywords = Date Rev Author URL Id

Propchange: ofbiz/trunk/framework/entity/***
*script/org/ofbiz/entity/test/***
*EntityUtilPropertiesTests.xml
------------------------------****----------------------------**--**

------------------
     svn:mime-type = text/xml

Added: ofbiz/trunk/framework/entity/****src/org/ofbiz/entity/util/**
EntityUtilProperties.java
URL: 
http://svn.apache.org/viewvc/****ofbiz/trunk/framework/entity/****<http://svn.apache.org/viewvc/**ofbiz/trunk/framework/entity/**>
src/org/ofbiz/entity/util/****EntityUtilProperties.java?rev=****
1238998&view=auto<http://svn.**apache.org/viewvc/ofbiz/trunk/**
framework/entity/src/org/**ofbiz/entity/util/**
EntityUtilProperties.java?rev=**1238998&view=auto<http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/util/EntityUtilProperties.java?rev=1238998&view=auto>
==============================****============================**==**
==================
--- ofbiz/trunk/framework/entity/****src/org/ofbiz/entity/util/****
EntityUtilProperties.java
(added)
+++ ofbiz/trunk/framework/entity/****src/org/ofbiz/entity/util/****
EntityUtilProperties.java

Wed Feb  1 08:24:36 2012
@@ -0,0 +1,242 @@
+/******************************************************************
*********************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * 
http://www.apache.org/****licenses/LICENSE-2.0<http://www.apache.org/**licenses/LICENSE-2.0>
<http://**www.apache.org/licenses/**LICENSE-2.0<http://www.apache.org/licenses/LICENSE-2.0>
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ********************************************************************
*******************/
+package org.ofbiz.entity.util;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.net.URL;
+import java.util.****InvalidPropertiesFormatExcepti****on;

+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Properties;
+import java.util.ResourceBundle;
+import java.util.Set;
+
+import org.ofbiz.base.util.Debug;
+import org.ofbiz.base.util.UtilMisc;
+import org.ofbiz.base.util.****UtilProperties;
+import org.ofbiz.base.util.****UtilValidate;
+import org.ofbiz.base.util.****collections.****
ResourceBundleMapWrapper;

+import org.ofbiz.entity.Delegator;
+import org.ofbiz.entity.GenericValue;
+
+@SuppressWarnings("serial")
+public class EntityUtilProperties implements Serializable {
+
+    public final static String module = EntityUtilProperties.class.**

getName();
+
+    protected static String getSystemPropertyValue(String name,
Delegator delegator) {
+        if (name == null || name.length()<= 0) return "";
+
+        // find system property
+        try {
+            List<GenericValue>    systemProperties =
delegator.findByAnd("
**SystemProperty", UtilMisc.toMap("****systemPropertyId", name));
+            if (UtilValidate.isNotEmpty(****systemProperties)) {
+                GenericValue systemProperty = EntityUtil.getFirst(**
systemProperties);
+                String systemPropertyValue =
systemProperty.getString("*
*systemPropertyValue");

+                return systemPropertyValue;
+            }
+        } catch (Exception e) {
+            Debug.logWarning("Could not get a sytem property for " +
name + " : " + e.getMessage(), module);
+        }
+        return null;
+    }
+
+    public static boolean propertyValueEquals(String resource, String
name, String compareString) {
+        return UtilProperties.****propertyValueEquals(resource, name,
compareString);
+    }
+
+    public static boolean propertyValueEqualsIgnoreCase(****String

resource, String name, String compareString) {
+        return UtilProperties.****propertyValueEqualsIgnoreCase(**
**resource,

name, compareString);
+    }
+
+    public static String getPropertyValue(String resource, String name,
String defaultValue) {
+        return UtilProperties.****getPropertyValue(resource, name,

defaultValue);
+    }
+
+    public static double getPropertyNumber(String resource, String
name,
double defaultValue) {
+        return UtilProperties.****getPropertyNumber(resource, name,

defaultValue);
+    }
+
+    public static double getPropertyNumber(String resource, String
name)
{
+        return UtilProperties.****getPropertyNumber(resource, name);

+    }
+
+    public static Boolean getPropertyAsBoolean(String resource, String
name, boolean defaultValue) {
+        return UtilProperties.****getPropertyAsBoolean(resource, name,

defaultValue);
+    }
+
+    public static Integer getPropertyAsInteger(String resource, String
name, int defaultNumber) {
+        return UtilProperties.****getPropertyAsInteger(resource, name,

defaultNumber);
+    }
+
+    public static Long getPropertyAsLong(String resource, String name,
long defaultNumber) {
+        return UtilProperties.****getPropertyAsLong(resource, name,

defaultNumber);
+    }
+
+    public static Float getPropertyAsFloat(String resource, String
name,
float defaultNumber) {
+        return UtilProperties.****getPropertyAsFloat(resource, name,

defaultNumber);
+    }
+
+    public static Double getPropertyAsDouble(String resource, String
name, double defaultNumber) {
+        return UtilProperties.****getPropertyAsDouble(resource, name,

defaultNumber);
+    }
+
+    public static BigInteger getPropertyAsBigInteger(String resource,
String name, BigInteger defaultNumber) {
+        return UtilProperties.****getPropertyAsBigInteger(****
resource,

name, defaultNumber);
+    }
+
+    public static BigDecimal getPropertyAsBigDecimal(String resource,
String name, BigDecimal defaultNumber) {
+        return UtilProperties.****getPropertyAsBigDecimal(****
resource,

name, defaultNumber);
+    }
+
+    public static String getPropertyValue(String resource, String name,
Delegator delegator) {
+        String value = getSystemPropertyValue(name, delegator);
+        if (UtilValidate.isEmpty(value)) {
+            value = UtilProperties.****getPropertyValue(resource,
name);

+        }
+        return value;
+    }
+
+    public static Properties getProperties(String resource) {
+        return UtilProperties.getProperties(****resource);

+    }
+
+    public static Properties getProperties(URL url) {
+        return UtilProperties.getProperties(****url);

+    }
+
+    public static boolean propertyValueEquals(URL url, String name,
String compareString) {
+        return UtilProperties.****propertyValueEquals(url, name,
compareString);
+    }
+
+    public static boolean propertyValueEqualsIgnoreCase(****URL url,
String name, String compareString) {
+        return UtilProperties.****propertyValueEqualsIgnoreCase(**
**url,

name, compareString);
+    }
+
+    public static String getPropertyValue(URL url, String name, String
defaultValue) {
+        return UtilProperties.****getPropertyValue(url, name,

defaultValue);
+    }
+
+    public static double getPropertyNumber(URL url, String name, double
defaultValue) {
+        return UtilProperties.****getPropertyNumber(url, name,

defaultValue);
+    }
+
+    public static double getPropertyNumber(URL url, String name) {
+        return UtilProperties.****getPropertyNumber(url, name);

+    }
+
+    public static String getPropertyValue(URL url, String name) {
+        return UtilProperties.****getPropertyValue(url, name);

+    }
+
+    public static String getSplitPropertyValue(URL url, String name) {
+        return UtilProperties.****getSplitPropertyValue(url, name);

+    }
+
+     public static void setPropertyValue(String resource, String name,
String value) {
+         UtilProperties.****setPropertyValue(resource, name, value);
+     }
+
+      public static void setPropertyValueInMemory(****String resource,
String name, String value) {
+          UtilProperties.****setPropertyValueInMemory(****resource,
name,

value);
+      }
+
+    public static String getMessage(String resource, String name,
Locale
locale, Delegator delegator) {
+        String value = getSystemPropertyValue(name, delegator);
+        if (UtilValidate.isEmpty(value)) {
+            value = UtilProperties.getMessage(****resource, name,
locale);

+        }
+        return value;
+    }
+
+    public static String getMessage(String resource, String name,
Object[] arguments, Locale locale) {
+        return UtilProperties.getMessage(****resource, name,
arguments,

locale);
+    }
+
+    public static<E>    String getMessage(String resource, String name,
List<E>    arguments, Locale locale) {
+        return UtilProperties.getMessage(****resource, name,
arguments,

locale);
+    }
+
+    public static String getMessageList(String resource, String name,
Locale locale, Object... arguments) {
+        return UtilProperties.getMessageList(****resource, name,
locale,

arguments);
+    }
+
+    public static String getMessage(String resource, String name,
Map<String, ? extends Object>    context, Locale locale) {
+        return UtilProperties.getMessage(****resource, name, context,

locale);
+    }
+
+    public static String getMessageMap(String resource, String name,
Locale locale, Object... context) {
+        return UtilProperties.getMessageMap(****resource, name,
locale,

context);
+    }
+
+    public static ResourceBundle getResourceBundle(String resource,
Locale locale) {
+        return UtilProperties.****getResourceBundle(resource, locale);

+    }
+
+    public static ResourceBundleMapWrapper getResourceBundleMap(String
resource, Locale locale) {
+        return UtilProperties.****getResourceBundleMap(resource,
locale);

+    }
+
+    public static ResourceBundleMapWrapper getResourceBundleMap(String
resource, Locale locale, Map<String, Object>    context) {
+        return UtilProperties.****getResourceBundleMap(resource,
locale,

context);
+    }
+
+    public static Properties getProperties(String resource, Locale
locale) {
+        return UtilProperties.getProperties(****resource, locale);

+    }
+
+    @Deprecated
+    public static Locale getFallbackLocale() {
+        return UtilProperties.****getFallbackLocale();

+    }
+
+    public static List<Locale>    localeToCandidateList(Locale locale) {
+        return UtilProperties.****localeToCandidateList(locale);

+    }
+
+    public static Set<Locale>    getDefaultCandidateLocales() {
+        return UtilProperties.****getDefaultCandidateLocales();

+    }
+
+    @Deprecated
+    public static List<Locale>    getCandidateLocales(Locale locale) {
+        return UtilProperties.****getCandidateLocales(locale);

+    }
+
+    public static String createResourceName(String resource, Locale
locale, boolean removeExtension) {
+        return UtilProperties.****createResourceName(resource, locale,
removeExtension);
+    }
+
+    public static boolean isPropertiesResourceNotFound(****String

resource, Locale locale, boolean removeExtension) {
+        return UtilProperties.****isPropertiesResourceNotFound(***
*resource,

locale, removeExtension);
+    }
+
+    public static URL resolvePropertiesUrl(String resource, Locale
locale) {
+        return UtilProperties.****resolvePropertiesUrl(resource,
locale);

+    }
+
+    public static Properties xmlToProperties(InputStream in, Locale
locale, Properties properties) throws IOException,
InvalidPropertiesFormatExcepti****on {
+        return UtilProperties.****xmlToProperties(in, locale,
properties);
+    }
+}

Propchange: ofbiz/trunk/framework/entity/***
*src/org/ofbiz/entity/util/**
EntityUtilProperties.java
------------------------------****----------------------------**--**

------------------
     svn:eol-style = native

Propchange: ofbiz/trunk/framework/entity/***
*src/org/ofbiz/entity/util/**
EntityUtilProperties.java
------------------------------****----------------------------**--**

------------------
     svn:keywords = Date Rev Author URL Id

Propchange: ofbiz/trunk/framework/entity/***
*src/org/ofbiz/entity/util/**
EntityUtilProperties.java
------------------------------****----------------------------**--**
------------------
     svn:mime-type = text/plain





Reply via email to