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/09/29 09:08:05 UTC

svn commit: r1628129 [2/2] - in /ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23: ./ applications/accounting/src/org/ofbiz/accounting/payment/ applications/content/script/org/ofbiz/content/compdoc/ applications/content/script/org/ofbiz/content...

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/util/HttpClient.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/util/HttpClient.java?rev=1628129&r1=1628128&r2=1628129&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/util/HttpClient.java (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/util/HttpClient.java Mon Sep 29 07:08:04 2014
@@ -373,7 +373,7 @@ public class HttpClient {
                     charset = contentType.substring(charsetEqualsLoc + 1);
                 }
 
-                if (charset != null) charset = charset.trim();
+                if (charset != null) charset = charset.trim().replaceAll("\"", "");
                 if (Debug.verboseOn() || debug) Debug.logVerbose("Getting text from HttpClient with charset: " + charset, module);
             }
 

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/testdef/basetests.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/testdef/basetests.xml?rev=1628129&r1=1628128&r2=1628129&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/testdef/basetests.xml (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/testdef/basetests.xml Mon Sep 29 07:08:04 2014
@@ -32,7 +32,6 @@
         <junit-test-suite class-name="org.ofbiz.base.util.cache.test.UtilCacheTests"/>
         <junit-test-suite class-name="org.ofbiz.base.conversion.test.DateTimeTests"/>
         <junit-test-suite class-name="org.ofbiz.base.conversion.test.MiscTests"/>
-        <junit-test-suite class-name="org.ofbiz.base.concurrent.test.DependencyPoolTests"/>
         <junit-test-suite class-name="org.ofbiz.base.json.test.JSONTests"/>
         <!--junit-test-suite class-name="org.ofbiz.base.util.test.UtilIOTests"/-->
         <junit-test-suite class-name="org.ofbiz.base.test.BaseUnitTests"/>

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/catalina/ofbiz-component.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/catalina/ofbiz-component.xml?rev=1628129&r1=1628128&r2=1628129&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/catalina/ofbiz-component.xml (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/catalina/ofbiz-component.xml Mon Sep 29 07:08:04 2014
@@ -74,11 +74,11 @@ under the License.
             <property name="secure" value="false"/>
             <property name="URIEncoding" value="UTF-8"/>
             <property name="xpoweredBy" value="true"/>
-            <property name="enableLookups" value="true"/> <!-- set to false to improve performance (false is the default value in Tomcat) -->
             <!-- AJP/13 connector attributes -->
             <!-- commented out because the values match the Tomcat defaults:
             <property name="tomcatAuthentication" value="true"/>
             <property name="allowTrace" value="false"/>
+            <property name="enableLookups" value="false"/>
             <property name="maxPostSize" value="2097152"/>
             <property name="noCompressionUserAgents" value=""/>
             <property name="connectionLinger" value="-1"/>
@@ -102,11 +102,11 @@ under the License.
             <property name="secure" value="false"/>
             <property name="URIEncoding" value="UTF-8"/>
             <property name="xpoweredBy" value="true"/>
-            <property name="enableLookups" value="true"/> <!-- set to false to improve performance (false is the default value in Tomcat) -->
             <property name="compression" value="on"/>
             <property name="compressableMimeType" value="text/html,text/xml,text/plain,text/javascript,text/css"/>
             <!-- commented out because the values match the Tomcat defaults:
             <property name="allowTrace" value="false"/>
+            <property name="enableLookups" value="false"/>
             <property name="maxPostSize" value="2097152"/>
             <property name="noCompressionUserAgents" value=""/>
             <property name="connectionLinger" value="-1"/>
@@ -131,7 +131,6 @@ under the License.
             <property name="SSLEnabled" value="true"/>
             <property name="URIEncoding" value="UTF-8"/>
             <property name="xpoweredBy" value="true"/>
-            <property name="enableLookups" value="true"/> <!-- set to false to improve performance (false is the default value in Tomcat) -->
             <property name="compression" value="on"/>
             <property name="compressableMimeType" value="text/html,text/xml,text/plain,text/javascript,text/css"/>
             <!-- SSL connector attributes -->
@@ -178,7 +177,6 @@ under the License.
             <property name="secure" value="false"/>
             <property name="URIEncoding" value="UTF-8"/>
             <property name="xpoweredBy" value="true"/>
-            <property name="enableLookups" value="true"/>
         </property>
         <property name="http-connector" value="connector">
             <property name="port" value="8080"/>
@@ -187,7 +185,6 @@ under the License.
             <property name="secure" value="false"/>
             <property name="URIEncoding" value="UTF-8"/>
             <property name="xpoweredBy" value="true"/>
-            <property name="enableLookups" value="true"/>
             <property name="compression" value="on"/>
             <property name="compressableMimeType" value="text/html,text/xml,text/plain,text/javascript,text/css"/>
         </property>
@@ -199,7 +196,6 @@ under the License.
             <property name="SSLEnabled" value="true"/>
             <property name="URIEncoding" value="UTF-8"/>
             <property name="xpoweredBy" value="true"/>
-            <property name="enableLookups" value="true"/>
             <property name="compression" value="on"/>
             <property name="compressableMimeType" value="text/html,text/xml,text/plain,text/javascript,text/css"/>
             <property name="sslImplementationName" value="org.ofbiz.catalina.container.SSLImpl"/>

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/catalina/src/org/ofbiz/catalina/container/CatalinaContainer.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/catalina/src/org/ofbiz/catalina/container/CatalinaContainer.java?rev=1628129&r1=1628128&r2=1628129&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/catalina/src/org/ofbiz/catalina/container/CatalinaContainer.java (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/catalina/src/org/ofbiz/catalina/container/CatalinaContainer.java Mon Sep 29 07:08:04 2014
@@ -41,7 +41,6 @@ import org.apache.catalina.Host;
 import org.apache.catalina.LifecycleException;
 import org.apache.catalina.Manager;
 import org.apache.catalina.connector.Connector;
-import org.apache.catalina.core.JreMemoryLeakPreventionListener;
 import org.apache.catalina.core.StandardContext;
 import org.apache.catalina.core.StandardEngine;
 import org.apache.catalina.core.StandardHost;
@@ -140,7 +139,7 @@ public class CatalinaContainer implement
     public static final String module = CatalinaContainer.class.getName();
     private static final ThreadGroup CATALINA_THREAD_GROUP = new ThreadGroup("CatalinaContainer");
 
-    // load the JSSE propertes (set the trust store)
+    // load the JSSE properties (set the trust store)
     static {
         SSLUtil.loadJsseProperties();
     }
@@ -185,17 +184,6 @@ public class CatalinaContainer implement
         tomcat = new Tomcat();
         tomcat.setBaseDir(System.getProperty("ofbiz.home"));
 
-        // https://tomcat.apache.org/tomcat-7.0-doc/config/listeners.html#JRE_Memory_Leak_Prevention_Listener_-_org.apache.catalina.core.JreMemoryLeakPreventionListener
-        // <<The JRE Memory Leak Prevention Listener provides work-arounds for known places where the Java Runtime environment uses
-        // the context class loader to load a singleton as this will cause a memory leak if a web application class loader happens
-        // to be the context class loader at the time.>>
-        // http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java?view=annotate
-        JreMemoryLeakPreventionListener jreMemoryLeakPreventionListener = new JreMemoryLeakPreventionListener();
-        // Mostly use default config, but some specific cases here
-        jreMemoryLeakPreventionListener.setAppContextProtection(true); // True is the default for Java 1.6, use false for Java from 1.7.0_02 onwards (see sources above)
-        jreMemoryLeakPreventionListener.setGcDaemonProtection(false); // False because of https://mail-archives.apache.org/mod_mbox/tomcat-users/201008.mbox/%3CAANLkTino=BjP5LsBCwncB2HvNDzyKLr5y-8yWdt15a89@mail.gmail.com%3E
-        jreMemoryLeakPreventionListener.setUrlCacheProtection(false); // False to keep the URLConnection cache, moot point
-
         // configure JNDI in the StandardServer
         StandardServer server = (StandardServer) tomcat.getServer();
         if (useNaming) {
@@ -628,7 +616,7 @@ public class CatalinaContainer implement
             return;
         }
 
-        ScheduledExecutorService executor = ExecutionPool.getScheduledExecutor(CATALINA_THREAD_GROUP, "catalina-startup", -1, true);
+        ScheduledExecutorService executor = ExecutionPool.getScheduledExecutor(CATALINA_THREAD_GROUP, "catalina-startup", Runtime.getRuntime().availableProcessors(), 0, true);
         try {
             List<Future<Context>> futures = new ArrayList<Future<Context>>();
 

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/build.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/build.xml?rev=1628129&r1=1628128&r2=1628129&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/build.xml (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/build.xml Mon Sep 29 07:08:04 2014
@@ -47,8 +47,8 @@ under the License.
         <main-jar/>
         <test-jar>
             <test-selector>
-                <filename name="META-INF/services" negate="true"/>
-                <filename name="META-INF/services/*" negate="true"/>
+                <filename name="META-INF/services"/>
+                <filename name="META-INF/services/*"/>
             </test-selector>
         </test-jar>
     </target>

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/dtd/entity-config.xsd
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/dtd/entity-config.xsd?rev=1628129&r1=1628128&r2=1628129&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/dtd/entity-config.xsd (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/dtd/entity-config.xsd Mon Sep 29 07:08:04 2014
@@ -411,7 +411,7 @@ under the License.
         <xs:attribute type="xs:string" name="table-type"/>
         <xs:attribute type="xs:string" name="character-set"/>
         <xs:attribute type="xs:string" name="collate"/>
-        <xs:attribute type="xs:integer" name="max-worker-pool-size" default="0"/>
+        <xs:attribute type="xs:integer" name="max-worker-pool-size" default="1"/>
     </xs:attributeGroup>
     <xs:element name="sql-load-path">
         <xs:complexType>

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/DelegatorFactory.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/DelegatorFactory.java?rev=1628129&r1=1628128&r2=1628129&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/DelegatorFactory.java (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/DelegatorFactory.java Mon Sep 29 07:08:04 2014
@@ -36,7 +36,7 @@ public abstract class DelegatorFactory i
     public static final String module = DelegatorFactoryImpl.class.getName();
     private static final ConcurrentHashMap<String, Future<Delegator>> delegators = new ConcurrentHashMap<String, Future<Delegator>>();
     private static final ThreadGroup DELEGATOR_THREAD_GROUP = new ThreadGroup("DelegatorFactory");
-    private static final ScheduledExecutorService executor = ExecutionPool.getScheduledExecutor(DELEGATOR_THREAD_GROUP, "delegator-startup", -1, true);
+    private static final ScheduledExecutorService executor = ExecutionPool.getScheduledExecutor(DELEGATOR_THREAD_GROUP, "delegator-startup", Runtime.getRuntime().availableProcessors(), 10, true);
 
     public static Delegator getDelegator(String delegatorName) {
         Future<Delegator> future = getDelegatorFuture(delegatorName);

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/config/model/Datasource.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/config/model/Datasource.java?rev=1628129&r1=1628128&r2=1628129&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/config/model/Datasource.java (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/config/model/Datasource.java Mon Sep 29 07:08:04 2014
@@ -169,8 +169,8 @@ public final class Datasource {
                 int maxWorkerPoolSizeInt = Integer.parseInt(maxWorkerPoolSize);
                 if (maxWorkerPoolSizeInt == 0) {
                     maxWorkerPoolSizeInt = 1;
-                } else if (maxWorkerPoolSizeInt < -2) {
-                    maxWorkerPoolSizeInt = -2;
+                } else if (maxWorkerPoolSizeInt < 0) {
+                    maxWorkerPoolSizeInt = Math.abs(maxWorkerPoolSizeInt) * Runtime.getRuntime().availableProcessors();
                 }
                 this.maxWorkerPoolSize = maxWorkerPoolSizeInt;
             } catch (Exception e) {

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=1628129&r1=1628128&r2=1628129&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 Sep 29 07:08:04 2014
@@ -31,12 +31,8 @@ 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.ConcurrentHashMap;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Future;
 
-import org.ofbiz.base.concurrent.ExecutionPool;
 import org.ofbiz.base.util.Debug;
 import org.ofbiz.base.util.UtilValidate;
 import org.ofbiz.entity.Delegator;
@@ -78,7 +74,6 @@ public class GenericDAO {
     private final GenericHelperInfo helperInfo;
     private final ModelFieldTypeReader modelFieldTypeReader;
     private final Datasource datasource;
-    private final ExecutorService executor;
 
     public static GenericDAO getGenericDAO(GenericHelperInfo helperInfo) {
         String cacheKey = helperInfo.getHelperFullName();
@@ -94,11 +89,6 @@ public class GenericDAO {
         this.helperInfo = helperInfo;
         this.modelFieldTypeReader = ModelFieldTypeReader.getModelFieldTypeReader(helperInfo.getHelperBaseName());
         this.datasource = EntityConfig.getDatasource(helperInfo.getHelperBaseName());
-        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 {
-        return this.executor.submit(callable);
     }
 
     private void addFieldIfMissing(List<ModelField> fieldsToSave, String fieldName, ModelEntity modelEntity) {
@@ -1228,13 +1218,13 @@ public class GenericDAO {
     /* ====================================================================== */
 
     public void checkDb(Map<String, ModelEntity> modelEntities, List<String> messages, boolean addMissing) {
-        DatabaseUtil dbUtil = new DatabaseUtil(this.helperInfo, this.executor);
+        DatabaseUtil dbUtil = new DatabaseUtil(this.helperInfo);
         dbUtil.checkDb(modelEntities, messages, addMissing);
     }
 
     /** Creates a list of ModelEntity objects based on meta data from the database */
     public List<ModelEntity> induceModelFromDb(Collection<String> messages) {
-        DatabaseUtil dbUtil = new DatabaseUtil(this.helperInfo, this.executor);
+        DatabaseUtil dbUtil = new DatabaseUtil(this.helperInfo);
         return dbUtil.induceModelFromDb(messages);
     }
 }

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/datasource/GenericHelper.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/datasource/GenericHelper.java?rev=1628129&r1=1628128&r2=1628129&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/datasource/GenericHelper.java (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/datasource/GenericHelper.java Mon Sep 29 07:08:04 2014
@@ -49,8 +49,6 @@ public interface GenericHelper {
      */
     public String getHelperName();
 
-    public <T> Future<T> submitWork(Callable<T> callable) throws GenericEntityException;
-
     /** Creates a Entity in the form of a GenericValue and write it to the database
      *@return GenericValue instance containing the new instance
      */

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/datasource/GenericHelperDAO.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/datasource/GenericHelperDAO.java?rev=1628129&r1=1628128&r2=1628129&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/datasource/GenericHelperDAO.java (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/datasource/GenericHelperDAO.java Mon Sep 29 07:08:04 2014
@@ -57,10 +57,6 @@ public class GenericHelperDAO implements
         return this.helperInfo.getHelperFullName();
     }
 
-    public <T> Future<T> submitWork(Callable<T> callable) throws GenericEntityException {
-        return genericDAO.submitWork(callable);
-    }
-
     /** Creates a Entity in the form of a GenericValue and write it to the database
      *@return GenericValue instance containing the new instance
      */

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/jdbc/DatabaseUtil.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/jdbc/DatabaseUtil.java?rev=1628129&r1=1628128&r2=1628129&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/jdbc/DatabaseUtil.java (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/jdbc/DatabaseUtil.java Mon Sep 29 07:08:04 2014
@@ -40,6 +40,7 @@ import java.util.Set;
 import java.util.TreeSet;
 import java.util.concurrent.Callable;
 import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
 import java.util.concurrent.FutureTask;
 
@@ -47,7 +48,6 @@ import org.ofbiz.base.concurrent.Executi
 import org.ofbiz.base.util.Debug;
 import org.ofbiz.base.util.UtilTimer;
 import org.ofbiz.base.util.UtilValidate;
-import org.ofbiz.base.util.UtilXml;
 import org.ofbiz.entity.GenericEntityException;
 import org.ofbiz.entity.config.model.Datasource;
 import org.ofbiz.entity.config.model.EntityConfig;
@@ -62,8 +62,6 @@ import org.ofbiz.entity.model.ModelRelat
 import org.ofbiz.entity.model.ModelViewEntity;
 import org.ofbiz.entity.transaction.TransactionFactoryLoader;
 import org.ofbiz.entity.transaction.TransactionUtil;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
 
 /**
  * Utilities for Entity Database Maintenance
@@ -85,52 +83,12 @@ public class DatabaseUtil {
     protected String password = null;
 
     boolean isLegacy = false;
-    protected ExecutorService executor;
 
     // OFBiz DatabaseUtil
     public DatabaseUtil(GenericHelperInfo helperInfo) {
-        this(helperInfo, null);
-    }
-
-    public DatabaseUtil(GenericHelperInfo helperInfo, ExecutorService executor) {
         this.helperInfo = helperInfo;
         this.modelFieldTypeReader = ModelFieldTypeReader.getModelFieldTypeReader(helperInfo.getHelperBaseName());
         this.datasourceInfo = EntityConfig.getDatasource(helperInfo.getHelperBaseName());
-        this.executor = executor;
-    }
-
-    // Legacy DatabaseUtil
-    public DatabaseUtil(String driverName, String connectionUrl, String userName, String password) {
-        this.driverName = driverName;
-        this.connectionUrl = connectionUrl;
-        this.userName = userName;
-        this.password = password;
-        this.isLegacy = true;
-    }
-
-    protected <T> Future<T> submitWork(Callable<T> callable) {
-        if (this.executor == null) {
-            FutureTask<T> task = new FutureTask<T>(callable);
-            task.run();
-            return task;
-        }
-        return this.executor.submit(callable);
-    }
-
-    protected <T> List<Future<T>> submitAll(Collection<? extends Callable<T>> tasks) {
-        List<Future<T>> futures = new ArrayList<Future<T>>(tasks.size());
-        if (this.executor == null) {
-            for (Callable<T> callable: tasks) {
-                FutureTask<T> task = new FutureTask<T>(callable);
-                task.run();
-                futures.add(task);
-            }
-            return futures;
-        }
-        for (Callable<T> callable: tasks) {
-            futures.add(this.executor.submit(callable));
-        }
-        return futures;
     }
 
     protected Connection getConnection() throws SQLException, GenericEntityException {
@@ -216,6 +174,9 @@ public class DatabaseUtil {
         if (isLegacy) {
             throw new RuntimeException("Cannot run checkDb on a legacy database connection; configure a database helper (entityengine.xml)");
         }
+
+        ExecutorService executor = Executors.newFixedThreadPool(datasourceInfo.getMaxWorkerPoolSize());
+
         UtilTimer timer = new UtilTimer();
         timer.timerString("Start - Before Get Database Meta Data");
 
@@ -233,7 +194,7 @@ public class DatabaseUtil {
         timer.timerString("After Get All Table Names");
 
         // get ALL column info, put into hashmap by table name
-        Map<String, Map<String, ColumnCheckInfo>> colInfo = this.getColumnInfo(tableNames, checkPks, messages);
+        Map<String, Map<String, ColumnCheckInfo>> colInfo = getColumnInfo(tableNames, checkPks, messages, executor);
         if (colInfo == null) {
             String message = "Could not get column information from the database, aborting.";
             if (messages != null) messages.add(message);
@@ -455,7 +416,7 @@ public class DatabaseUtil {
 
                 if (addMissing) {
                     // create the table
-                    tableFutures.add(submitWork(new CreateTableCallable(entity, modelEntities, tableName)));
+                    tableFutures.add(executor.submit(new CreateTableCallable(entity, modelEntities, tableName)));
                 }
             }
         }
@@ -478,7 +439,7 @@ public class DatabaseUtil {
             List<Future<AbstractCountingCallable>> fkIndicesFutures = new LinkedList<Future<AbstractCountingCallable>>();
             for (ModelEntity curEntity: entitiesAdded) {
                 if (curEntity.getRelationsOneSize() > 0) {
-                    fkIndicesFutures.add(submitWork(new AbstractCountingCallable(curEntity, modelEntities) {
+                    fkIndicesFutures.add(executor.submit(new AbstractCountingCallable(curEntity, modelEntities) {
                         public AbstractCountingCallable call() throws Exception {
                             count = createForeignKeyIndices(entity, datasourceInfo.getConstraintNameClipLength(), messages);
                             return this;
@@ -507,7 +468,7 @@ public class DatabaseUtil {
             List<Future<AbstractCountingCallable>> disFutures = new LinkedList<Future<AbstractCountingCallable>>();
             for (ModelEntity curEntity: entitiesAdded) {
                 if (curEntity.getIndexesSize() > 0) {
-                    disFutures.add(submitWork(new AbstractCountingCallable(curEntity,  modelEntities) {
+                    disFutures.add(executor.submit(new AbstractCountingCallable(curEntity,  modelEntities) {
                     public AbstractCountingCallable call() throws Exception {
                         count = createDeclaredIndices(entity, messages);
                         return this;
@@ -755,17 +716,19 @@ public class DatabaseUtil {
 
         }
 
-
+        executor.shutdown();
         timer.timerString("Finished Checking Entity Database");
     }
 
     /** Creates a list of ModelEntity objects based on meta data from the database */
     public List<ModelEntity> induceModelFromDb(Collection<String> messages) {
+        ExecutorService executor = Executors.newFixedThreadPool(datasourceInfo.getMaxWorkerPoolSize());
+
         // get ALL tables from this database
         TreeSet<String> tableNames = this.getTableNames(messages);
 
         // get ALL column info, put into hashmap by table name
-        Map<String, Map<String, ColumnCheckInfo>> colInfo = this.getColumnInfo(tableNames, true, messages);
+        Map<String, Map<String, ColumnCheckInfo>> colInfo = getColumnInfo(tableNames, true, messages, executor);
 
         // go through each table and make a ModelEntity object, add to list
         // for each entity make corresponding ModelField objects
@@ -789,66 +752,10 @@ public class DatabaseUtil {
             newEntList.add(newEntity);
         }
 
+        executor.shutdown();
         return newEntList;
     }
 
-    public Document induceModelFromDb(String packageName) {
-        Document document = UtilXml.makeEmptyXmlDocument("entitymodel");
-        Element root = document.getDocumentElement();
-        root.appendChild(document.createElement("title"));
-        root.appendChild(document.createElement("description"));
-        root.appendChild(document.createElement("copyright"));
-        root.appendChild(document.createElement("author"));
-        root.appendChild(document.createElement("version"));
-
-        // messages list
-        List<String> messages = new ArrayList<String>();
-
-        // get ALL tables from this database
-        TreeSet<String> tableNames = this.getTableNames(messages);
-
-        // get ALL column info, put into hashmap by table name
-        Map<String, Map<String, ColumnCheckInfo>> colInfo = this.getColumnInfo(tableNames, true, messages);
-
-        boolean isCaseSensitive = false;
-        DatabaseMetaData dbData = this.getDatabaseMetaData(null, messages);
-        if (dbData != null) {
-            try {
-                isCaseSensitive = dbData.supportsMixedCaseIdentifiers();
-            } catch (SQLException e) {
-                Debug.logError(e, "Error getting db meta data about case sensitive", module);
-            }
-        }
-
-        if (UtilValidate.isNotEmpty(packageName)) {
-            String catalogName = null;
-            try {
-                catalogName = this.getConnection().getCatalog();
-            } catch (Exception e) {
-                // ignore
-            }
-            packageName = "org.ofbiz.ext." + (catalogName != null ? catalogName : "unknown");
-        }
-
-
-        // iterate over the table names is alphabetical order
-        for (String tableName: new TreeSet<String>(colInfo.keySet())) {
-            Map<String, ColumnCheckInfo> colMap = colInfo.get(tableName);
-            ModelEntity newEntity = new ModelEntity(tableName, colMap, modelFieldTypeReader, isCaseSensitive);
-            root.appendChild(newEntity.toXmlElement(document, "org.ofbiz.ext." + packageName));
-        }
-
-        // print the messages to the console
-        for (String message: messages) {
-            Debug.logInfo(message, module);
-        }
-        return document;
-    }
-
-    public Document induceModelFromDb() {
-        return this.induceModelFromDb("");
-    }
-
     public DatabaseMetaData getDatabaseMetaData(Connection connection, Collection<String> messages) {
         if (connection == null) {
             connection = getConnectionLogged(messages);
@@ -1129,7 +1036,7 @@ public class DatabaseUtil {
         };
     }
 
-    public Map<String, Map<String, ColumnCheckInfo>> getColumnInfo(Set<String> tableNames, boolean getPks, Collection<String> messages) {
+    private Map<String, Map<String, ColumnCheckInfo>> getColumnInfo(Set<String> tableNames, boolean getPks, Collection<String> messages, ExecutorService executor) {
         // if there are no tableNames, don't even try to get the columns
         if (tableNames.size() == 0) {
             return new HashMap<String, Map<String, ColumnCheckInfo>>();
@@ -1261,7 +1168,7 @@ public class DatabaseUtil {
                         List<Future<AbstractCountingCallable>> pkFetcherFutures = new LinkedList<Future<AbstractCountingCallable>>();
                         for (String curTable: tableNames) {
                             curTable = curTable.substring(curTable.indexOf('.') + 1); //cut off schema name
-                            pkFetcherFutures.add(submitWork(createPrimaryKeyFetcher(dbData, lookupSchemaName, needsUpperCase, colInfo, messages, curTable)));
+                            pkFetcherFutures.add(executor.submit(createPrimaryKeyFetcher(dbData, lookupSchemaName, needsUpperCase, colInfo, messages, curTable)));
                         }
                         for (AbstractCountingCallable pkFetcherCallable: ExecutionPool.getAllFutures(pkFetcherFutures)) {
                             pkCount += pkFetcherCallable.updateData(messages);

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/test/MiniLangTests.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/test/MiniLangTests.java?rev=1628129&r1=1628128&r2=1628129&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/test/MiniLangTests.java (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/test/MiniLangTests.java Mon Sep 29 07:08:04 2014
@@ -91,4 +91,18 @@ public class MiniLangTests extends OFBiz
         assertTrue("<assert> error message text", errorMessage.startsWith("Assertion failed:"));
     }
 
+    public void testFieldToResultOperation() throws Exception {
+        String simpleMethodXml = "<simple-method name=\"testFieldToResult\">" +
+                                 "  <set field=\"resultValue\" value=\"someResultValue\"/>" +
+                                 "  <set field=\"result1\" value=\"dynamicResultName\"/>" +
+                                 "  <field-to-result field=\"resultValue\" result-name=\"constantResultName\"/>" +
+                                 "  <field-to-result field=\"resultValue\" result-name=\"${result1}\"/>" +
+                                 "</simple-method>";
+        SimpleMethod methodToTest = createSimpleMethod(simpleMethodXml);
+        MethodContext context = createServiceMethodContext();
+        String result = methodToTest.exec(context);
+        assertEquals("testFieldToResult success result", methodToTest.getDefaultSuccessCode(), result);
+        assertEquals("Constant result name set", "someResultValue", context.getResult("constantResultName"));
+        //assertEquals("Dynamic result name set", "someResultValue", context.getResult("dynamicResultName")); This one fails!
+    }
 }

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/cmssite/template/cms/HtmlHead.ftl
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/cmssite/template/cms/HtmlHead.ftl?rev=1628129&r1=1628128&r2=1628129&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/cmssite/template/cms/HtmlHead.ftl (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/cmssite/template/cms/HtmlHead.ftl Mon Sep 29 07:08:04 2014
@@ -16,6 +16,7 @@ KIND, either express or implied.  See th
 specific language governing permissions and limitations
 under the License.
 -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 
 <#if locale??>