openjpa-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From strub...@apache.org
Subject svn commit: r1759033 - in /openjpa/trunk: openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/ openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/ openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/ openjpa-kernel/src/main/java/org/...
Date Fri, 02 Sep 2016 20:23:33 GMT
Author: struberg
Date: Fri Sep  2 20:23:32 2016
New Revision: 1759033

URL: http://svn.apache.org/viewvc?rev=1759033&view=rev
Log:
OPENJPA-2662 remove serp.util.Strings#split


Added:
    openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/StringUtil.java   (with props)
    openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/StringUtilTest.java   (with props)
Modified:
    openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/MatchesExpression.java
    openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/QueryResultMapping.java
    openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/ReverseMappingTool.java
    openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/AbstractResult.java
    openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java
    openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/AbstractDataCache.java
    openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/ClearableScheduler.java
    openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/TypeBasedCacheDistributionPolicy.java
    openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/event/TCPRemoteCommitProvider.java
    openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/Filters.java
    openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/AbstractCFMetaDataFactory.java
    openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/AbstractMetaDataFactory.java
    openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/Extensions.java
    openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/FieldMetaData.java
    openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyManagerImpl.java
    openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationImpl.java
    openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/Configurations.java
    openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/StringListValue.java
    openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/ClasspathMetaDataIterator.java
    openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/Options.java
    openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/ClassUtilTest.java
    openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/xml/TestXMLWriter.java

Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/MatchesExpression.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/MatchesExpression.java?rev=1759033&r1=1759032&r2=1759033&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/MatchesExpression.java (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/MatchesExpression.java Fri Sep  2 20:23:32 2016
@@ -26,8 +26,8 @@ import org.apache.openjpa.jdbc.sql.SQLBu
 import org.apache.openjpa.jdbc.sql.Select;
 import org.apache.openjpa.kernel.exps.ExpressionVisitor;
 import org.apache.openjpa.kernel.exps.Parameter;
+import org.apache.openjpa.lib.util.StringUtil;
 
-import serp.util.Strings;
 
 /**
  * Test if a string matches a regexp.
@@ -128,17 +128,19 @@ class MatchesExpression
      * @param  escape   the string to use to escape replacement
      * @return          the replaced string
      */
-    private static String replaceEscape(String str, String from, String to,
-        String escape) {
-        String[] parts = Strings.split(str, from, Integer.MAX_VALUE);
+    private static String replaceEscape(String str, String from, String to, String escape) {
+        String[] parts = StringUtil.split(str, from, Integer.MAX_VALUE);
         StringBuilder repbuf = new StringBuilder();
+
+        boolean same = from.equals(to);
+
         for (int i = 0; i < parts.length; i++) {
             if (i > 0) {
                 // if the previous part ended with an escape character, then
                 // escape the character and remove the previous escape;
                 // this doesn't support any double-escaping or other more
                 // sophisticated features
-                if (!from.equals(to) && parts[i - 1].endsWith(escape)) {
+                if (!same && parts[i - 1].endsWith(escape)) {
                     repbuf.setLength(repbuf.length() - 1);
                     repbuf.append(from);
                 } else

Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/QueryResultMapping.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/QueryResultMapping.java?rev=1759033&r1=1759032&r2=1759033&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/QueryResultMapping.java (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/QueryResultMapping.java Fri Sep  2 20:23:32 2016
@@ -32,12 +32,12 @@ import org.apache.openjpa.jdbc.schema.Co
 import org.apache.openjpa.jdbc.sql.Joins;
 import org.apache.openjpa.lib.meta.SourceTracker;
 import org.apache.openjpa.lib.util.Localizer;
+import org.apache.openjpa.lib.util.StringUtil;
 import org.apache.openjpa.lib.xml.Commentable;
 import org.apache.openjpa.meta.JavaTypes;
 import org.apache.openjpa.meta.MetaDataContext;
 import org.apache.openjpa.meta.MetaDataModes;
 import org.apache.openjpa.util.MetaDataException;
-import serp.util.Strings;
 
 /**
  * Mapping of a query result set to scalar and/or persistence-capable
@@ -409,7 +409,7 @@ public class QueryResultMapping
          */
         private void resolveMapping(String path, Object id) {
             // build up path to second-to-last token
-            String[] tokens = Strings.split(path, ".", 0);
+            String[] tokens = StringUtil.split(path, ".", 0);
             List<MetaDataContext> rpath = new ArrayList<MetaDataContext>(tokens.length);
             ClassMapping candidate = getCandidateTypeMapping();
             FieldMapping fm = null;

Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/ReverseMappingTool.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/ReverseMappingTool.java?rev=1759033&r1=1759032&r2=1759033&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/ReverseMappingTool.java (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/ReverseMappingTool.java Fri Sep  2 20:23:32 2016
@@ -85,6 +85,7 @@ import org.apache.openjpa.lib.util.Files
 import org.apache.openjpa.lib.util.J2DoPrivHelper;
 import org.apache.openjpa.lib.util.Localizer;
 import org.apache.openjpa.lib.util.Options;
+import org.apache.openjpa.lib.util.StringUtil;
 import org.apache.openjpa.meta.ClassMetaData;
 import org.apache.openjpa.meta.FieldMetaData;
 import org.apache.openjpa.meta.JavaTypes;
@@ -98,7 +99,6 @@ import org.apache.openjpa.util.MetaDataE
 import serp.bytecode.BCClass;
 import serp.bytecode.BCClassLoader;
 import serp.bytecode.Project;
-import serp.util.Strings;
 
 /**
  * Reverse-maps a schema into class mappings and the associated java
@@ -162,7 +162,7 @@ public class ReverseMappingTool
         InputStream in = ReverseMappingTool.class.getResourceAsStream
             ("java-keywords.rsrc");
         try {
-            String[] keywords = Strings.split(new BufferedReader
+            String[] keywords = StringUtil.split(new BufferedReader
                 (new InputStreamReader(in)).readLine(), ",", 0);
 
             for (int i = 0; i < keywords.length; i += 2)
@@ -1507,7 +1507,7 @@ public class ReverseMappingTool
         if (_useSchema && name != null) {
             if (allUpperCase(name))
                 name = name.toLowerCase();
-            subs = Strings.split(name, "_", 0);
+            subs = StringUtil.split(name, "_", 0);
             for (int i = 0; i < subs.length; i++)
                 buf.append(StringUtils.capitalize(subs[i]));
         }
@@ -1515,7 +1515,7 @@ public class ReverseMappingTool
         name = replaceInvalidCharacters(table.getName());
         if (allUpperCase(name))
             name = name.toLowerCase();
-        subs = Strings.split(name, "_", 0);
+        subs = StringUtil.split(name, "_", 0);
         for (int i = 0; i < subs.length; i++) {
             // make sure the name can't conflict with generated id class names;
             // if the name would end in 'Id', make it end in 'Ident'
@@ -1539,7 +1539,7 @@ public class ReverseMappingTool
             name = Character.toLowerCase(name.charAt(0)) + name.substring(1);
 
         StringBuilder buf = new StringBuilder();
-        String[] subs = Strings.split(name, "_", 0);
+        String[] subs = StringUtil.split(name, "_", 0);
         for (int i = 0; i < subs.length; i++) {
             if (i > 0)
                 subs[i] = StringUtils.capitalize(subs[i]);

Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/AbstractResult.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/AbstractResult.java?rev=1759033&r1=1759032&r2=1759033&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/AbstractResult.java (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/AbstractResult.java Fri Sep  2 20:23:32 2016
@@ -49,11 +49,10 @@ import org.apache.openjpa.jdbc.schema.Fo
 import org.apache.openjpa.jdbc.schema.Table;
 import org.apache.openjpa.kernel.exps.Context;
 import org.apache.openjpa.lib.util.Closeable;
+import org.apache.openjpa.lib.util.StringUtil;
 import org.apache.openjpa.meta.JavaTypes;
 import org.apache.openjpa.util.UnsupportedException;
 
-import serp.util.Strings;
-
 /**
  * A {@link Result} implementation designed to be subclassed easily by
  * implementations. All <code>get&lt;type&gt;</code> calls are delegated to
@@ -640,7 +639,7 @@ public abstract class AbstractResult
             return null;
         if (val instanceof Locale)
             return (Locale) val;
-        String[] vals = Strings.split(val.toString(), "_", 0);
+        String[] vals = StringUtil.split(val.toString(), "_", 0);
         if (vals.length < 2)
             throw new SQLException(val.toString());
         if (vals.length == 2)

Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java?rev=1759033&r1=1759032&r2=1759033&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java Fri Sep  2 20:23:32 2016
@@ -109,6 +109,7 @@ import org.apache.openjpa.lib.jdbc.Loggi
 import org.apache.openjpa.lib.log.Log;
 import org.apache.openjpa.lib.util.Localizer;
 import org.apache.openjpa.lib.util.Localizer.Message;
+import org.apache.openjpa.lib.util.StringUtil;
 import org.apache.openjpa.meta.FieldMetaData;
 import org.apache.openjpa.meta.JavaTypes;
 import org.apache.openjpa.meta.ValueStrategies;
@@ -129,7 +130,6 @@ import org.apache.openjpa.util.StoreExce
 import org.apache.openjpa.util.UnsupportedException;
 import org.apache.openjpa.util.UserException;
 
-import serp.util.Strings;
 
 /**
  * Class which allows the creation of SQL dynamically, in a
@@ -894,7 +894,7 @@ public class DBDictionary
         if (StringUtils.isEmpty(str))
             return null;
 
-        String[] params = Strings.split(str, "_", 3);
+        String[] params = StringUtil.split(str, "_", 3);
         if (params.length < 3)
             return null;
         return new Locale(params[0], params[1], params[2]);
@@ -4053,7 +4053,7 @@ public class DBDictionary
             schemaName = getSchemaNameForMetadata(sqlSchemaName);
         }
 
-        String[] types = Strings.split(tableTypes, ",", 0);
+        String[] types = StringUtil.split(tableTypes, ",", 0);
         for (int i = 0; i < types.length; i++)
             types[i] = types[i].trim();
 
@@ -4788,7 +4788,7 @@ public class DBDictionary
         try {
             String keywords = new BufferedReader(new InputStreamReader(in)).
                 readLine();
-            reservedWordSet.addAll(Arrays.asList(Strings.split
+            reservedWordSet.addAll(Arrays.asList(StringUtil.split
                 (keywords, ",", 0)));
         } catch (IOException ioe) {
             throw new GeneralException(ioe);
@@ -4798,31 +4798,26 @@ public class DBDictionary
 
         // add additional reserved words set by user
         if (reservedWords != null)
-            reservedWordSet.addAll(Arrays.asList(Strings.split
-                (reservedWords.toUpperCase(), ",", 0)));
+            reservedWordSet.addAll(Arrays.asList(StringUtil.split(reservedWords.toUpperCase(), ",", 0)));
 
         // add system schemas set by user
         if (systemSchemas != null)
-            systemSchemaSet.addAll(Arrays.asList(Strings.split
-                (systemSchemas.toUpperCase(), ",", 0)));
+            systemSchemaSet.addAll(Arrays.asList(StringUtil.split(systemSchemas.toUpperCase(), ",", 0)));
 
         // add system tables set by user
         if (systemTables != null)
-            systemTableSet.addAll(Arrays.asList(Strings.split
-                (systemTables.toUpperCase(), ",", 0)));
+            systemTableSet.addAll(Arrays.asList(StringUtil.split(systemTables.toUpperCase(), ",", 0)));
 
         // add fixed size type names set by the user
         if (fixedSizeTypeNames != null)
-            fixedSizeTypeNameSet.addAll(Arrays.asList(Strings.split
-                (fixedSizeTypeNames.toUpperCase(), ",", 0)));
+            fixedSizeTypeNameSet.addAll(Arrays.asList(StringUtil.split(fixedSizeTypeNames.toUpperCase(), ",", 0)));
         
         // if user has unset sequence sql, null it out so we know sequences
         // aren't supported
         nextSequenceQuery = StringUtils.trimToNull(nextSequenceQuery);
         
         if (selectWords != null)
-            selectWordSet.addAll(Arrays.asList(Strings.split(selectWords
-                    .toUpperCase(), ",", 0)));
+            selectWordSet.addAll(Arrays.asList(StringUtil.split(selectWords.toUpperCase(), ",", 0)));
         
         // initialize the error codes
         SQLErrorCodeReader codeReader = new SQLErrorCodeReader();

Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/AbstractDataCache.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/AbstractDataCache.java?rev=1759033&r1=1759032&r2=1759033&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/AbstractDataCache.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/AbstractDataCache.java Fri Sep  2 20:23:32 2016
@@ -39,10 +39,10 @@ import org.apache.openjpa.lib.conf.Confi
 import org.apache.openjpa.lib.conf.Configuration;
 import org.apache.openjpa.lib.log.Log;
 import org.apache.openjpa.lib.util.Localizer;
+import org.apache.openjpa.lib.util.StringUtil;
 import org.apache.openjpa.lib.util.concurrent.AbstractConcurrentEventManager;
 import org.apache.openjpa.util.GeneralException;
 
-import serp.util.Strings;
 
 /**
  * Abstract {@link DataCache} implementation that provides various
@@ -55,7 +55,7 @@ import serp.util.Strings;
 @SuppressWarnings("serial")
 public abstract class AbstractDataCache extends AbstractConcurrentEventManager
     implements DataCache, Configurable {
-	
+
     protected CacheStatisticsSPI _stats = new CacheStatisticsImpl();
 
     private static final BitSet EMPTY_BITSET = new BitSet(0);
@@ -522,31 +522,27 @@ public abstract class AbstractDataCache
     public void setTypes(Set<String> types) {
         _includedTypes = types;
         if (log.isWarnEnabled())
-            log.warn(s_loc.get("recommend_jpa2_caching", new Object[]{"Types", 
-            		DataCacheMode.ENABLE_SELECTIVE.toString()}));
+            log.warn(s_loc.get("recommend_jpa2_caching", new Object[]{"Types", DataCacheMode.ENABLE_SELECTIVE.toString()}));
     }
 
     public void setTypes(String types) {
         _includedTypes =
-            StringUtils.isEmpty(types) ? null : new HashSet<String>(Arrays.asList(Strings.split(types, ";", 0)));
+            StringUtils.isEmpty(types) ? null : new HashSet<>(Arrays.asList(StringUtil.split(types, ";", 0)));
         if (log.isWarnEnabled())
-            log.warn(s_loc.get("recommend_jpa2_caching", new Object[]{"Types", 
-            		DataCacheMode.ENABLE_SELECTIVE.toString()}));
+            log.warn(s_loc.get("recommend_jpa2_caching", new Object[]{"Types", DataCacheMode.ENABLE_SELECTIVE.toString()}));
     }
 
     public void setExcludedTypes(Set<String> types) {
         _excludedTypes = types;
         if (log.isWarnEnabled())
-            log.warn(s_loc.get("recommend_jpa2_caching", new Object[]{"ExcludeTypes", 
-            		DataCacheMode.DISABLE_SELECTIVE.toString()}));
+            log.warn(s_loc.get("recommend_jpa2_caching", new Object[]{"ExcludeTypes", DataCacheMode.DISABLE_SELECTIVE.toString()}));
     }
 
     public void setExcludedTypes(String types) {
         _excludedTypes =
-            StringUtils.isEmpty(types) ? null : new HashSet<String>(Arrays.asList(Strings.split(types, ";", 0)));
+            StringUtils.isEmpty(types) ? null : new HashSet<>(Arrays.asList(StringUtil.split(types, ";", 0)));
         if (log.isWarnEnabled())
-            log.warn(s_loc.get("recommend_jpa2_caching", new Object[]{"ExcludeTypes", 
-            		DataCacheMode.DISABLE_SELECTIVE.toString()}));
+            log.warn(s_loc.get("recommend_jpa2_caching", new Object[]{"ExcludeTypes", DataCacheMode.DISABLE_SELECTIVE.toString()}));
     }
 
     public DataCache selectCache(OpenJPAStateManager sm) {

Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/ClearableScheduler.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/ClearableScheduler.java?rev=1759033&r1=1759032&r2=1759033&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/ClearableScheduler.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/ClearableScheduler.java Fri Sep  2 20:23:32 2016
@@ -34,10 +34,10 @@ import org.apache.openjpa.lib.log.Log;
 import org.apache.openjpa.lib.util.Clearable;
 import org.apache.openjpa.lib.util.J2DoPrivHelper;
 import org.apache.openjpa.lib.util.Localizer;
+import org.apache.openjpa.lib.util.StringUtil;
 import org.apache.openjpa.util.InvalidStateException;
 import org.apache.openjpa.util.UserException;
 
-import serp.util.Strings;
 
 /**
  * Cron-style clearable eviction. Understands schedules based on cron format:
@@ -223,7 +223,7 @@ public class ClearableScheduler implemen
         private int[] parse(String token, int min, int max) {
             if ("*".equals(token.trim()))
                 return WILDCARD;
-            String[] tokens = Strings.split(token, ",", 0);
+            String[] tokens = StringUtil.split(token, ",", 0);
             int [] times = new int[tokens.length];
             for (int i = 0; i < tokens.length; i++) {
                 try {

Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/TypeBasedCacheDistributionPolicy.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/TypeBasedCacheDistributionPolicy.java?rev=1759033&r1=1759032&r2=1759033&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/TypeBasedCacheDistributionPolicy.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/TypeBasedCacheDistributionPolicy.java Fri Sep  2 20:23:32 2016
@@ -23,9 +23,9 @@ import java.util.Set;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.openjpa.kernel.OpenJPAStateManager;
+import org.apache.openjpa.lib.util.StringUtil;
 import org.apache.openjpa.meta.ClassMetaData;
 
-import serp.util.Strings;
 
 /**
  * A cache distribution policy based on the type of the managed objects.
@@ -78,7 +78,7 @@ public class TypeBasedCacheDistributionP
     private Set<String> parseNames(String types) {
         if (StringUtils.isEmpty(types))
             return Collections.emptySet();
-        String[] names = Strings.split(types, ";", 0);
+        String[] names = StringUtil.split(types, ";", 0);
         Set<String> set = new HashSet<String>();
         set.addAll(Arrays.asList(names));
         

Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/event/TCPRemoteCommitProvider.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/event/TCPRemoteCommitProvider.java?rev=1759033&r1=1759032&r2=1759033&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/event/TCPRemoteCommitProvider.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/event/TCPRemoteCommitProvider.java Fri Sep  2 20:23:32 2016
@@ -50,12 +50,12 @@ import org.apache.openjpa.lib.conf.Confi
 import org.apache.openjpa.lib.log.Log;
 import org.apache.openjpa.lib.util.J2DoPrivHelper;
 import org.apache.openjpa.lib.util.Localizer;
+import org.apache.openjpa.lib.util.StringUtil;
 import org.apache.openjpa.util.GeneralException;
 import org.apache.openjpa.util.InternalException;
 import org.apache.openjpa.util.Serialization;
 import java.util.concurrent.locks.ReentrantLock;
 
-import serp.util.Strings;
 
 /**
  * TCP-based implementation of {@link RemoteCommitProvider} that
@@ -220,7 +220,7 @@ public class TCPRemoteCommitProvider
             for (Iterator iter = _addresses.iterator(); iter.hasNext();) {
                 ((HostAddress) iter.next()).close();
             }
-            String[] toks = Strings.split(names, ";", 0);
+            String[] toks = StringUtil.split(names, ";", 0);
             _addresses = new ArrayList(toks.length);
 
             InetAddress localhost = InetAddress.getLocalHost();

Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/Filters.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/Filters.java?rev=1759033&r1=1759032&r2=1759033&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/Filters.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/Filters.java Fri Sep  2 20:23:32 2016
@@ -37,6 +37,7 @@ import org.apache.openjpa.kernel.exps.Ag
 import org.apache.openjpa.kernel.exps.FilterListener;
 import org.apache.openjpa.lib.util.J2DoPrivHelper;
 import org.apache.openjpa.lib.util.Localizer;
+import org.apache.openjpa.lib.util.StringUtil;
 import org.apache.openjpa.meta.ClassMetaData;
 import org.apache.openjpa.meta.JavaTypes;
 import org.apache.openjpa.util.InternalException;
@@ -839,7 +840,7 @@ public class Filters {
 
         Exception cause = null;
         if (hint instanceof String) {
-            String[] clss = Strings.split((String) hint, ",", 0);
+            String[] clss = StringUtil.split((String) hint, ",", 0);
             AggregateListener[] aggs = new AggregateListener[clss.length];
             try {
                 for (int i = 0; i < clss.length; i++)
@@ -902,7 +903,7 @@ public class Filters {
 
         Exception cause = null;
         if (hint instanceof String) {
-            String[] clss = Strings.split((String) hint, ",", 0);
+            String[] clss = StringUtil.split((String) hint, ",", 0);
             FilterListener[] filts = new FilterListener[clss.length];
             try {
                 for (int i = 0; i < clss.length; i++)
@@ -955,7 +956,7 @@ public class Filters {
             }
         }
         Reflection.set(target, setter, value);
-	}
+    }
     
     /**
      * Parses the given string assuming it is a JDBC key expression. Extracts the 

Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/AbstractCFMetaDataFactory.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/AbstractCFMetaDataFactory.java?rev=1759033&r1=1759032&r2=1759033&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/AbstractCFMetaDataFactory.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/AbstractCFMetaDataFactory.java Fri Sep  2 20:23:32 2016
@@ -60,6 +60,7 @@ import org.apache.openjpa.lib.meta.ZipSt
 import org.apache.openjpa.lib.util.Files;
 import org.apache.openjpa.lib.util.J2DoPrivHelper;
 import org.apache.openjpa.lib.util.Localizer;
+import org.apache.openjpa.lib.util.StringUtil;
 import org.apache.openjpa.util.GeneralException;
 import org.apache.openjpa.util.UserException;
 import serp.util.Strings;
@@ -102,8 +103,8 @@ public abstract class AbstractCFMetaData
         if (StringUtils.isEmpty(files))
             this.files = null;
         else {
-            String[] strs = Strings.split(files, ";", 0);
-            this.files = new HashSet<File>((int) (strs.length * 1.33 + 1));
+            String[] strs = StringUtil.split(files, ";", 0);
+            this.files = new HashSet<>((int) (strs.length * 1.33 + 1));
 
             File file;
             for (int i = 0; i < strs.length; i++) {
@@ -130,7 +131,7 @@ public abstract class AbstractCFMetaData
         if (StringUtils.isEmpty(urls))
             this.urls = null;
         else {
-            String[] strs = Strings.split(urls, ";", 0);
+            String[] strs = StringUtil.split(urls, ";", 0);
             this.urls = new HashSet<URL>((int) (strs.length * 1.33 + 1));
             try {
                 for (int i = 0; i < strs.length; i++)
@@ -155,7 +156,7 @@ public abstract class AbstractCFMetaData
     public void setResources(String rsrcs) {
         // keep list mutable so subclasses can add implicit locations
         this.rsrcs = (StringUtils.isEmpty(rsrcs)) ? null
-          : new ArrayList<String>(Arrays.asList(Strings.split(rsrcs, ";", 0)));
+          : new ArrayList<String>(Arrays.asList(StringUtil.split(rsrcs, ";", 0)));
     }
 
     /**
@@ -173,7 +174,7 @@ public abstract class AbstractCFMetaData
     public void setClasspathScan(String cpath) {
         // keep list mutable so subclasses can add implicit locations
         this.cpath = (StringUtils.isEmpty(cpath)) ? null
-          : new ArrayList<String>(Arrays.asList(Strings.split(cpath, ";", 0)));
+          : new ArrayList<String>(Arrays.asList(StringUtil.split(cpath, ";", 0)));
     }
 
     public boolean store(ClassMetaData[] metas, QueryMetaData[] queries,
@@ -942,7 +943,7 @@ public abstract class AbstractCFMetaData
      * Decodes a URL-encoded path string.  For example, an encoded
      * space (%20) is decoded into a normal space (' ') character.
      * Added via OPENJPA-2102.
-     * @param String encoded - the encoded URL string
+     * @param s - the encoded URL string
      * @return String decoded - the decoded string.
      */
     public static String decode(String s) {

Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/AbstractMetaDataFactory.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/AbstractMetaDataFactory.java?rev=1759033&r1=1759032&r2=1759033&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/AbstractMetaDataFactory.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/AbstractMetaDataFactory.java Fri Sep  2 20:23:32 2016
@@ -29,7 +29,7 @@ import org.apache.commons.lang3.StringUt
 import org.apache.openjpa.conf.OpenJPAConfiguration;
 import org.apache.openjpa.lib.log.Log;
 import org.apache.openjpa.lib.meta.ClassArgParser;
-import serp.util.Strings;
+import org.apache.openjpa.lib.util.StringUtil;
 
 /**
  * Abstract {@link MetaDataFactory} that provides default implementations
@@ -61,7 +61,7 @@ public abstract class AbstractMetaDataFa
      */
     public void setTypes(String types) {
         this.types = (StringUtils.isEmpty(types)) ? null
-            : new HashSet(Arrays.asList(Strings.split(types, ";", 0)));
+            : new HashSet(Arrays.asList(StringUtil.split(types, ";", 0)));
     }
 
     public void setRepository(MetaDataRepository repos) {

Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/Extensions.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/Extensions.java?rev=1759033&r1=1759032&r2=1759033&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/Extensions.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/Extensions.java Fri Sep  2 20:23:32 2016
@@ -31,7 +31,8 @@ import org.apache.openjpa.conf.OpenJPACo
 import org.apache.openjpa.lib.log.Log;
 import org.apache.openjpa.lib.util.Localizer;
 import org.apache.openjpa.lib.util.StringDistance;
-import serp.util.Strings;
+import org.apache.openjpa.lib.util.StringUtil;
+
 
 /**
  * Vendor extensions. This class is thread safe for reads, but not for
@@ -328,7 +329,7 @@ public abstract class Extensions
         String prefixes = _loc.get("extension-datastore-prefix").getMessage();
         String[] allowedPrefixes = null;
         if (prefixes != null)
-            allowedPrefixes = Strings.split(prefixes, ",", 0);
+            allowedPrefixes = StringUtil.split(prefixes, ",", 0);
 
         Object next;
         String key;

Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/FieldMetaData.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/FieldMetaData.java?rev=1759033&r1=1759032&r2=1759033&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/FieldMetaData.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/FieldMetaData.java Fri Sep  2 20:23:32 2016
@@ -56,6 +56,7 @@ import org.apache.openjpa.lib.util.J2DoP
 import org.apache.openjpa.lib.util.JavaVersions;
 import org.apache.openjpa.lib.util.Localizer;
 import org.apache.openjpa.lib.util.Options;
+import org.apache.openjpa.lib.util.StringUtil;
 import org.apache.openjpa.lib.xml.Commentable;
 import org.apache.openjpa.util.Exceptions;
 import org.apache.openjpa.util.InternalException;
@@ -1167,7 +1168,7 @@ public class FieldMetaData
             if (_orderDec == null)
                 _orders = getRepository().EMPTY_ORDERS;
             else {
-                String[] decs = Strings.split(_orderDec, ",", 0);
+                String[] decs = StringUtil.split(_orderDec, ",", 0);
                 Order[] orders = getRepository().newOrderArray(decs.length);
                 int spc;
                 boolean asc;

Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyManagerImpl.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyManagerImpl.java?rev=1759033&r1=1759032&r2=1759033&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyManagerImpl.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyManagerImpl.java Fri Sep  2 20:23:32 2016
@@ -59,6 +59,7 @@ import org.apache.openjpa.lib.util.Optio
 
 import java.util.concurrent.ConcurrentHashMap;
 
+import org.apache.openjpa.lib.util.StringUtil;
 import serp.bytecode.BCClass;
 import serp.bytecode.BCField;
 import serp.bytecode.BCMethod;
@@ -172,7 +173,7 @@ public class ProxyManagerImpl
      */
     public void setUnproxyable(String clsNames) {
         if (clsNames != null)
-            _unproxyable.addAll(Arrays.asList(Strings.split(clsNames, ";", 0)));
+            _unproxyable.addAll(Arrays.asList(StringUtil.split(clsNames, ";", 0)));
     }
 
     public Object copyArray(Object orig) {

Modified: openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationImpl.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationImpl.java?rev=1759033&r1=1759032&r2=1759033&view=diff
==============================================================================
--- openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationImpl.java (original)
+++ openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationImpl.java Fri Sep  2 20:23:32 2016
@@ -67,6 +67,7 @@ import org.apache.openjpa.lib.util.Multi
 import org.apache.openjpa.lib.util.ParseException;
 import org.apache.openjpa.lib.util.Services;
 import org.apache.openjpa.lib.util.StringDistance;
+import org.apache.openjpa.lib.util.StringUtil;
 import serp.util.Strings;
 
 /**
@@ -535,7 +536,7 @@ public class ConfigurationImpl
             for (int i = 0; i < aliases.size(); i += 2)
                 allowed.add(aliases.get(i));
         }
-        String[] vals = Strings.split(findLocalized(prop
+        String[] vals = StringUtil.split(findLocalized(prop
             + "-values", false, val.getScope()), ",", 0);
         for (int i = 0; i < vals.length; i++)
             if (!aliases.contains(vals[i]))

Modified: openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/Configurations.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/Configurations.java?rev=1759033&r1=1759032&r2=1759033&view=diff
==============================================================================
--- openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/Configurations.java (original)
+++ openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/Configurations.java Fri Sep  2 20:23:32 2016
@@ -43,9 +43,9 @@ import org.apache.openjpa.lib.util.Local
 import org.apache.openjpa.lib.util.Options;
 import org.apache.openjpa.lib.util.ParseException;
 import org.apache.openjpa.lib.util.StringDistance;
+import org.apache.openjpa.lib.util.StringUtil;
 import org.apache.openjpa.lib.util.concurrent.ConcurrentReferenceHashMap;
 
-import serp.util.Strings;
 
 /**
  * Utility methods dealing with configuration.
@@ -581,7 +581,7 @@ public class Configurations {
             return opts;
 
         try {
-            String[] props = Strings.split(properties, ",", 0);
+            String[] props = StringUtil.split(properties, ",", 0);
             int idx;
             char quote;
             String prop;

Modified: openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/StringListValue.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/StringListValue.java?rev=1759033&r1=1759032&r2=1759033&view=diff
==============================================================================
--- openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/StringListValue.java (original)
+++ openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/StringListValue.java Fri Sep  2 20:23:32 2016
@@ -25,7 +25,7 @@ import org.apache.commons.lang3.StringUt
 import org.apache.openjpa.lib.util.Localizer;
 import org.apache.openjpa.lib.util.ParseException;
 
-import serp.util.Strings;
+import org.apache.openjpa.lib.util.StringUtil;
 
 /**
  * A comma-separated list of string values.
@@ -120,11 +120,11 @@ public class StringListValue extends Val
     }
 
     protected String getInternalString() {
-        return Strings.join(_values, ", ");
+        return StringUtils.join(_values, ", ");
     }
 
     protected void setInternalString(String val) {
-        String[] vals = Strings.split(val, ",", 0);
+        String[] vals = StringUtil.split(val, ",", 0);
         if (vals != null) {
             for (int i = 0; i < vals.length; i++)
                 vals[i] = vals[i].trim();

Modified: openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/ClasspathMetaDataIterator.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/ClasspathMetaDataIterator.java?rev=1759033&r1=1759032&r2=1759033&view=diff
==============================================================================
--- openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/ClasspathMetaDataIterator.java (original)
+++ openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/ClasspathMetaDataIterator.java Fri Sep  2 20:23:32 2016
@@ -27,7 +27,7 @@ import java.util.zip.ZipFile;
 
 import org.apache.openjpa.lib.util.J2DoPrivHelper;
 
-import serp.util.Strings;
+import org.apache.openjpa.lib.util.StringUtil;
 
 /**
  * Iterator over directories in the classpath.
@@ -53,7 +53,7 @@ public class ClasspathMetaDataIterator e
         Properties props = AccessController.doPrivileged(
             J2DoPrivHelper.getPropertiesAction()); 
         String path = props.getProperty("java.class.path");
-        String[] tokens = Strings.split(path,
+        String[] tokens = StringUtil.split(path,
             props.getProperty("path.separator"), 0);
 
         for (int i = 0; i < tokens.length; i++) {

Modified: openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/Options.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/Options.java?rev=1759033&r1=1759032&r2=1759033&view=diff
==============================================================================
--- openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/Options.java (original)
+++ openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/Options.java Fri Sep  2 20:23:32 2016
@@ -222,7 +222,7 @@ public class Options extends TypedProper
             else if (values.length == 1)
                 strValues = new String[]{ entry.getValue().toString() };
             else
-                strValues = Strings.split(entry.getValue().toString(), ",", 0);
+                strValues = StringUtil.split(entry.getValue().toString(), ",", 0);
 
             // convert the string values into parameter values, if not
             // enough string values repeat last one for rest
@@ -303,7 +303,7 @@ public class Options extends TypedProper
         // unfortunately we can't use bean properties for setters; any
         // setter with more than 1 argument is ignored; calculate setter and getter
         // name to look for
-        String[] find = Strings.split(key, ".", 2);
+        String[] find = StringUtil.split(key, ".", 2);
         String base = StringUtils.capitalize(find[0]);
         String set = "set" + base;
         String get = "get" + base;

Added: openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/StringUtil.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/StringUtil.java?rev=1759033&view=auto
==============================================================================
--- openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/StringUtil.java (added)
+++ openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/StringUtil.java Fri Sep  2 20:23:32 2016
@@ -0,0 +1,86 @@
+/*
+ * 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
+ *
+ * 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.apache.openjpa.lib.util;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public final class StringUtil {
+
+    private static final String[] EMPTY_STRING_ARRAY = new String[0];
+
+    private StringUtil() {
+    }
+
+    /**
+     * Splits the given string on the given token. Follows the semantics
+     * of the Java 1.4 {@link String#split(String,int)} method, but does
+     * not treat the given token as a regular expression.
+     */
+    public static String[] split(String str, String token, int max) {
+        if (str == null || str.length() == 0) {
+            return EMPTY_STRING_ARRAY;
+        }
+        if (token == null || token.length() == 0) {
+            throw new IllegalArgumentException("token: [" + token + "]");
+        }
+
+        // split on token
+        List<String> ret = new ArrayList<>();
+        int start = 0;
+        int len = str.length();
+        int tlen = token.length();
+
+        int pos = 0;
+        while (pos != -1) {
+            pos = str.indexOf(token, start);
+            if (pos != -1) {
+                ret.add(str.substring(start, pos));
+                start = pos + tlen;
+            }
+        }
+        if (start < len) {
+            ret.add(str.substring(start));
+        } else if (start == len) {
+            ret.add("");
+        }
+
+
+        // now take max into account; this isn't the most efficient way
+        // of doing things since we split the maximum number of times
+        // regardless of the given parameters, but it makes things easy
+        if (max == 0) {
+            int size = ret.size();
+            // discard any trailing empty splits
+            while (ret.get(--size).isEmpty()) {
+                ret.remove(size);
+            }
+        } else if (max > 0 && ret.size() > max) {
+            // move all splits over max into the last split
+            StringBuilder sb = new StringBuilder(256);
+            sb.append(ret.get(max-1));
+            ret.remove(max-1);
+            while (ret.size() >= max) {
+                sb.append(token).append(ret.get(max-1));
+                ret.remove(max-1);
+            }
+            ret.add(sb.toString());
+        }
+        return ret.toArray(new String[ret.size()]);
+    }
+
+}

Propchange: openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/StringUtil.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/ClassUtilTest.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/ClassUtilTest.java?rev=1759033&r1=1759032&r2=1759033&view=diff
==============================================================================
--- openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/ClassUtilTest.java (original)
+++ openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/ClassUtilTest.java Fri Sep  2 20:23:32 2016
@@ -19,9 +19,6 @@ package org.apache.openjpa.lib.util;
 import org.junit.Assert;
 import org.junit.Test;
 
-/**
- * TODO remove again. Just to test serp.ClassUtil.toClass
- */
 public class ClassUtilTest {
 
     @Test

Added: openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/StringUtilTest.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/StringUtilTest.java?rev=1759033&view=auto
==============================================================================
--- openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/StringUtilTest.java (added)
+++ openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/StringUtilTest.java Fri Sep  2 20:23:32 2016
@@ -0,0 +1,75 @@
+/*
+ * 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
+ *
+ * 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.apache.openjpa.lib.util;
+
+import java.util.concurrent.TimeUnit;
+
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+public class StringUtilTest {
+
+    @Test
+    public void testStringSplit() {
+        String val = " a b c \n d \n  \n";
+        String[] jsplit = val.split(" ");
+        String[] split1 = StringUtil.split(val, " ", 0);
+        String[] split2 = StringUtil.split(val, " ", 30);
+
+        String[] split3 = StringUtil.split(val, " ", 3);
+        Assert.assertEquals(3, split3.length);
+        Assert.assertEquals("", split3[0]);
+        Assert.assertEquals("a", split3[1]);
+        Assert.assertEquals("b c \n d \n  \n", split3[2]);
+    }
+
+    @Test
+    public void testStringSplitEnding() {
+        String val = "a%B%C%";
+        String[] jsplit = val.split("%");
+        String[] ssplit = StringUtil.split(val, "%", Integer.MAX_VALUE);
+        Assert.assertEquals(4, ssplit.length);
+        Assert.assertArrayEquals(ssplit, new String[]{"a", "B", "C", ""});
+    }
+
+    @Test
+    public void testStringSplitFatTokenEnding() {
+        String val = "a-.-B-.-C-.-";
+        String[] jsplit = val.split("-.-");
+        String[] ssplit = StringUtil.split(val, "-.-", Integer.MAX_VALUE);
+        Assert.assertEquals(4, ssplit.length);
+        Assert.assertArrayEquals(ssplit, new String[]{"a", "B", "C", ""});
+    }
+
+    @Test
+    @Ignore("only needed for manual performance tests")
+    public void stringSplitPerformanceTest() {
+        String val = "  asdfsfsfsfafasdf  basdfasf cs d efdfdfdfdfdfdfdf ghai asdf " +
+                "asdflkj  lökajdf lkölkasdflk jklö adfk \n adslsfl \t adsfsfd";
+
+        long start = System.nanoTime();
+        for (int i = 1; i < 10000000; i++) {
+            StringUtil.split(val, "sd", 0);
+            //X val.split("sd");
+            //X serp.util.Strings.split(val, "sd", 0);
+        }
+
+        long stop = System.nanoTime();
+        System.out.println("took: " + TimeUnit.NANOSECONDS.toMillis(stop - start));
+    }
+}

Propchange: openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/StringUtilTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/xml/TestXMLWriter.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/xml/TestXMLWriter.java?rev=1759033&r1=1759032&r2=1759033&view=diff
==============================================================================
--- openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/xml/TestXMLWriter.java (original)
+++ openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/xml/TestXMLWriter.java Fri Sep  2 20:23:32 2016
@@ -29,6 +29,8 @@ import junit.framework.Test;
 import junit.framework.TestCase;
 import junit.framework.TestSuite;
 import junit.textui.TestRunner;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.openjpa.lib.util.StringUtil;
 
 /**
  * Tests the {@link XMLWriter} by comparing the results of passing the
@@ -70,7 +72,7 @@ public class TestXMLWriter extends TestC
     }
 
     private String fixNewline(String str) {
-        return serp.util.Strings.join(serp.util.Strings.split
+        return StringUtils.join(StringUtil.split
             (str, "\r\n", -1), "\n");
     }
 



Mime
View raw message