You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by st...@apache.org on 2016/09/05 20:35:11 UTC

svn commit: r1759355 - in /openjpa/trunk: openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/ openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ openjpa-kernel/src/main/java/org/apache/openjpa/kernel/ openjpa-kernel/src/main/java/org/apache/...

Author: struberg
Date: Mon Sep  5 20:35:11 2016
New Revision: 1759355

URL: http://svn.apache.org/viewvc?rev=1759355&view=rev
Log:
OPENJPA-2662 reimplement serp.util.Strings#getClassName

Modified:
    openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.java
    openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingInfo.java
    openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/NoneMappingDefaults.java
    openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ApplicationIdTool.java
    openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/CodeGenerator.java
    openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryImpl.java
    openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/ClassMetaData.java
    openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/FieldMetaData.java
    openjpa/trunk/openjpa-kernel/src/test/java/org/apache/openjpa/ee/TestWASManagedRuntime.java
    openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/jdbc/DelegatingDataSource.java
    openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/ClassMetaDataIterator.java
    openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/ClassUtil.java
    openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/Files.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/util/StringUtilTest.java
    openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.java
    openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.java
    openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/common/apps/HorizAppMultiA.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/common/apps/HorizAppSingleA.java
    openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationBuilder.java
    openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.java
    openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.java

Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.java?rev=1759355&r1=1759354&r2=1759355&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.java (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.java Mon Sep  5 20:35:11 2016
@@ -39,6 +39,8 @@ import org.apache.openjpa.lib.conf.Confi
 import org.apache.openjpa.lib.conf.Configuration;
 import org.apache.openjpa.lib.conf.Configurations;
 import org.apache.openjpa.lib.identifier.IdentifierUtil;
+import org.apache.openjpa.lib.util.ClassUtil;
+import org.apache.openjpa.lib.util.StringUtil;
 import org.apache.openjpa.meta.JavaTypes;
 import serp.util.Strings;
 
@@ -547,8 +549,7 @@ public class MappingDefaultsImpl
         // WARNING: CHANGING THIS WILL INVALIDATE EXISTING DATA IF DEFAULTING
         // MISSING MAPPING INFO
         
-        String alias = Strings.getClassName(disc.getClassMapping()
-                .getTypeAlias());
+        String alias = ClassUtil.getClassName(disc.getClassMapping().getTypeAlias());
         
         switch (disc.getJavaType()) {
             case JavaTypes.INT:
@@ -562,7 +563,7 @@ public class MappingDefaultsImpl
     }
 
     public String getTableName(ClassMapping cls, Schema schema) {
-        String name = Strings.getClassName(cls.getDescribedType()).
+        String name = ClassUtil.getClassName(cls.getDescribedType()).
             replace(IdentifierUtil.DOLLAR_CHAR, IdentifierUtil.UNDERSCORE_CHAR);
         if (!_defMissing)
             name = dict.getValidTableName(name, schema);

Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingInfo.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingInfo.java?rev=1759355&r1=1759354&r2=1759355&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingInfo.java (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingInfo.java Mon Sep  5 20:35:11 2016
@@ -41,6 +41,7 @@ import org.apache.openjpa.jdbc.schema.Ta
 import org.apache.openjpa.jdbc.schema.Unique;
 import org.apache.openjpa.jdbc.sql.DBDictionary;
 import org.apache.openjpa.lib.log.Log;
+import org.apache.openjpa.lib.util.ClassUtil;
 import org.apache.openjpa.lib.util.Localizer;
 import org.apache.openjpa.lib.util.Localizer.Message;
 import org.apache.openjpa.meta.JavaTypes;
@@ -1600,7 +1601,7 @@ public abstract class MappingInfo
         if (cls == null)
             return false;
         if (name.equals(cls.getDescribedType().getName())
-            || name.equals(Strings.getClassName(cls.getDescribedType())))
+            || name.equals(ClassUtil.getClassName(cls.getDescribedType())))
             return true;
         return isClassMappingName(name, cls.getPCSuperclassMapping());
     }

Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/NoneMappingDefaults.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/NoneMappingDefaults.java?rev=1759355&r1=1759354&r2=1759355&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/NoneMappingDefaults.java (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/NoneMappingDefaults.java Mon Sep  5 20:35:11 2016
@@ -26,6 +26,7 @@ import org.apache.openjpa.jdbc.schema.Sc
 import org.apache.openjpa.jdbc.schema.Table;
 import org.apache.openjpa.jdbc.schema.Unique;
 
+import org.apache.openjpa.lib.util.ClassUtil;
 import serp.util.Strings;
 
 /**
@@ -72,7 +73,7 @@ public class NoneMappingDefaults
     }
 
     public String getTableName(ClassMapping cls, Schema schema) {
-        return Strings.getClassName(cls.getDescribedType()).replace('$', '_');
+        return ClassUtil.getClassName(cls.getDescribedType()).replace('$', '_');
     }
 
     public String getTableName(FieldMapping fm, Schema schema) {

Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ApplicationIdTool.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ApplicationIdTool.java?rev=1759355&r1=1759354&r2=1759355&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ApplicationIdTool.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ApplicationIdTool.java Mon Sep  5 20:35:11 2016
@@ -43,6 +43,7 @@ import org.apache.openjpa.lib.conf.Confi
 import org.apache.openjpa.lib.conf.Configurations;
 import org.apache.openjpa.lib.log.Log;
 import org.apache.openjpa.lib.meta.ClassArgParser;
+import org.apache.openjpa.lib.util.ClassUtil;
 import org.apache.openjpa.lib.util.CodeFormat;
 import org.apache.openjpa.lib.util.Files;
 import org.apache.openjpa.lib.util.J2DoPrivHelper;
@@ -264,7 +265,7 @@ public class ApplicationIdTool {
             return null;
 
         // convert from SomeClass$ID to ID
-        String className = Strings.getClassName(_meta.getObjectIdType());
+        String className = ClassUtil.getClassName(_meta.getObjectIdType());
         if (isInnerClass())
             className = className.substring(className.lastIndexOf('$') + 1);
         return className;
@@ -358,7 +359,7 @@ public class ApplicationIdTool {
             code.endl().tab();
 
         if (superOidClass != null) {
-            code.append("extends " + Strings.getClassName(superOidClass));
+            code.append("extends " + ClassUtil.getClassName(superOidClass));
             if (code.getBraceOnSameLine())
                 code.append(" ");
             else
@@ -541,7 +542,7 @@ public class ApplicationIdTool {
             return "char[]";
         if (type.getName().startsWith("java.sql."))
             return type.getName();
-        return Strings.getClassName(type);
+        return ClassUtil.getClassName(type);
     }
 
     /**
@@ -712,7 +713,7 @@ public class ApplicationIdTool {
         else if (type == char[].class)
             parse.append(var).append(".toCharArray").parens();
         else if (!type.isPrimitive()) {
-            parse.append("new ").append(Strings.getClassName(type)).
+            parse.append("new ").append(ClassUtil.getClassName(type)).
                 openParen(true).append(var).closeParen();
         } else // primitive
         {
@@ -1214,7 +1215,7 @@ public class ApplicationIdTool {
             return null;
 
         String packageName = Strings.getPackageName(_meta.getObjectIdType());
-        String fileName = Strings.getClassName(_meta.getObjectIdType())
+        String fileName = ClassUtil.getClassName(_meta.getObjectIdType())
             + ".java";
 
         // if pc class in same package as oid class, try to find pc .java file

Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/CodeGenerator.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/CodeGenerator.java?rev=1759355&r1=1759354&r2=1759355&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/CodeGenerator.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/CodeGenerator.java Mon Sep  5 20:35:11 2016
@@ -28,6 +28,7 @@ import java.util.List;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.openjpa.conf.OpenJPAConfiguration;
+import org.apache.openjpa.lib.util.ClassUtil;
 import org.apache.openjpa.lib.util.CodeFormat;
 import org.apache.openjpa.lib.util.Files;
 import org.apache.openjpa.lib.util.ParameterTemplate;
@@ -126,7 +127,7 @@ public class CodeGenerator {
      */
     public void generateCode() {
         // setup parameters
-        String className = Strings.getClassName(_type);
+        String className = ClassUtil.getClassName(_type);
         String packageName = Strings.getPackageName(_type);
         String packageDec = "";
         if (packageName.length() > 0)
@@ -135,7 +136,7 @@ public class CodeGenerator {
         String extendsDec = "";
         String extendsName = "";
         if (!_type.getSuperclass().getName().equals(Object.class.getName())) {
-            extendsName = Strings.getClassName(_type.getSuperclass());
+            extendsName = ClassUtil.getClassName(_type.getSuperclass());
             extendsDec = "extends " + extendsName;
         }
 
@@ -235,7 +236,7 @@ public class CodeGenerator {
         CodeFormat body = newCodeFormat();
 
         // public <class> (
-        cons.tab().append("public ").append(Strings.getClassName(_type));
+        cons.tab().append("public ").append(ClassUtil.getClassName(_type));
         cons.openParen(true);
 
         // append args to constructor, and build up body at same time
@@ -245,7 +246,7 @@ public class CodeGenerator {
             propertyName = fields[i].getName();
             if (propertyName.startsWith("_"))
                 propertyName = propertyName.substring(1);
-            fieldType = Strings.getClassName(fields[i].getDeclaredType());
+            fieldType = ClassUtil.getClassName(fields[i].getDeclaredType());
 
             if (i > 0)
                 cons.append(", ");
@@ -305,7 +306,7 @@ public class CodeGenerator {
         String propertyName = fieldName;
         if (propertyName.startsWith("_"))
             propertyName = propertyName.substring(1);
-        String fieldType = Strings.getClassName(fmd.getDeclaredType());
+        String fieldType = ClassUtil.getClassName(fmd.getDeclaredType());
 
         String keyType = null;
         String elementType = null;
@@ -313,14 +314,14 @@ public class CodeGenerator {
         if (useGenericCollections()) {
             if (fmd.getDeclaredTypeCode() == JavaTypes.COLLECTION) {
                 Class elmCls = fmd.getElement().getDeclaredType();
-                elementType = Strings.getClassName(elmCls);
+                elementType = ClassUtil.getClassName(elmCls);
                 paramType = decs.getParametrizedType(
                     new String[] {elementType});
             } else if (fmd.getDeclaredTypeCode() == JavaTypes.MAP) {
                 Class keyCls = fmd.getKey().getDeclaredType();
                 Class elmCls = fmd.getElement().getDeclaredType();
-                keyType = Strings.getClassName(keyCls);
-                elementType = Strings.getClassName(elmCls);
+                keyType = ClassUtil.getClassName(keyCls);
+                elementType = ClassUtil.getClassName(elmCls);
                 paramType = decs.getParametrizedType(
                     new String[] {keyType, elementType});
             }
@@ -504,7 +505,7 @@ public class CodeGenerator {
      */
     public File getFile() {
         String packageName = Strings.getPackageName(_type);
-        String fileName = Strings.getClassName(_type) + ".java";
+        String fileName = ClassUtil.getClassName(_type) + ".java";
 
         File dir = Files.getPackageFile(_dir, packageName, true);
         return new File(dir, fileName);

Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryImpl.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryImpl.java?rev=1759355&r1=1759354&r2=1759355&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryImpl.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryImpl.java Mon Sep  5 20:35:11 2016
@@ -1509,7 +1509,7 @@ public class QueryImpl
         try {
             String alias = compileForExecutor().getAlias(_storeQuery);
             if (alias == null)
-                alias = Strings.getClassName(_class);
+                alias = ClassUtil.getClassName(_class);
             return alias;
         } finally {
             unlock();

Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/ClassMetaData.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/ClassMetaData.java?rev=1759355&r1=1759354&r2=1759355&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/ClassMetaData.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/ClassMetaData.java Mon Sep  5 20:35:11 2016
@@ -47,6 +47,7 @@ import org.apache.openjpa.lib.conf.Value
 import org.apache.openjpa.lib.conf.ValueListener;
 import org.apache.openjpa.lib.log.Log;
 import org.apache.openjpa.lib.meta.SourceTracker;
+import org.apache.openjpa.lib.util.ClassUtil;
 import org.apache.openjpa.lib.util.J2DoPrivHelper;
 import org.apache.openjpa.lib.util.Localizer;
 import org.apache.openjpa.lib.xml.Commentable;
@@ -70,7 +71,6 @@ import org.apache.openjpa.util.ShortId;
 import org.apache.openjpa.util.StringId;
 import org.apache.openjpa.util.UnsupportedException;
 
-import serp.util.Strings;
 
 /**
  * Contains metadata about a persistent type.
@@ -686,7 +686,7 @@ public class ClassMetaData
      */
     public String getTypeAlias() {
         if (_alias == null)
-            _alias = Strings.getClassName(_type);
+            _alias = ClassUtil.getClassName(_type);
         return _alias;
     }
 
@@ -1523,7 +1523,7 @@ public class ClassMetaData
     /**
      * Set the cache name for this class. 
      * 
-     * @param can be null to disable cache.
+     * @param name can be {@code null} to disable cache.
      */
     public void setDataCacheName(String name) {
         _cacheName = name;

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=1759355&r1=1759354&r2=1759355&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 Mon Sep  5 20:35:11 2016
@@ -52,6 +52,7 @@ import org.apache.openjpa.kernel.OpenJPA
 import org.apache.openjpa.kernel.StoreContext;
 import org.apache.openjpa.lib.conf.Configurations;
 import org.apache.openjpa.lib.log.Log;
+import org.apache.openjpa.lib.util.ClassUtil;
 import org.apache.openjpa.lib.util.J2DoPrivHelper;
 import org.apache.openjpa.lib.util.JavaVersions;
 import org.apache.openjpa.lib.util.Localizer;
@@ -1626,7 +1627,7 @@ public class FieldMetaData
 
         // get class name and get package name divide on the last '.', so the
         // names don't apply in this case, but the methods do what we want
-        String methodName = Strings.getClassName(method);
+        String methodName = ClassUtil.getClassName(method);
         String clsName = Strings.getPackageName(method);
 
         Class<?> cls = null;
@@ -1635,7 +1636,7 @@ public class FieldMetaData
         if (clsName.length() == 0)
             cls = getDeclaredType();
         else if (clsName.equals(owner.getName())
-            || clsName.equals(Strings.getClassName(owner)))
+            || clsName.equals(ClassUtil.getClassName(owner)))
             cls = owner;
         else
             cls = JavaTypes.classForName(clsName, this);

Modified: openjpa/trunk/openjpa-kernel/src/test/java/org/apache/openjpa/ee/TestWASManagedRuntime.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/test/java/org/apache/openjpa/ee/TestWASManagedRuntime.java?rev=1759355&r1=1759354&r2=1759355&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/test/java/org/apache/openjpa/ee/TestWASManagedRuntime.java (original)
+++ openjpa/trunk/openjpa-kernel/src/test/java/org/apache/openjpa/ee/TestWASManagedRuntime.java Mon Sep  5 20:35:11 2016
@@ -20,6 +20,7 @@ package org.apache.openjpa.ee;
 
 import junit.framework.TestCase;
 
+import org.apache.openjpa.lib.util.ClassUtil;
 import serp.util.Strings;
 
 /**
@@ -47,8 +48,7 @@ public class TestWASManagedRuntime exten
         } catch (NoClassDefFoundError e) {
             msg = e.getMessage();
         }
-        String interfaceName = Strings.
-            getClassName(WASManagedRuntime.INTERFACE);
+        String interfaceName = ClassUtil.getClassName(WASManagedRuntime.INTERFACE);
         assertTrue("message should have contained "
             + interfaceName + ", but was '" + msg + "'",
             msg.indexOf(interfaceName) != -1);

Modified: openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/jdbc/DelegatingDataSource.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/jdbc/DelegatingDataSource.java?rev=1759355&r1=1759354&r2=1759355&view=diff
==============================================================================
--- openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/jdbc/DelegatingDataSource.java (original)
+++ openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/jdbc/DelegatingDataSource.java Mon Sep  5 20:35:11 2016
@@ -159,6 +159,6 @@ public class DelegatingDataSource implem
     // Java 7 methods follow
     
     public Logger getParentLogger() throws SQLFeatureNotSupportedException{
-    	throw new SQLFeatureNotSupportedException();
+        return _ds.getParentLogger();
     }
 }

Modified: openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/ClassMetaDataIterator.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/ClassMetaDataIterator.java?rev=1759355&r1=1759354&r2=1759355&view=diff
==============================================================================
--- openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/ClassMetaDataIterator.java (original)
+++ openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/ClassMetaDataIterator.java Mon Sep  5 20:35:11 2016
@@ -31,6 +31,7 @@ import java.util.Enumeration;
 import java.util.List;
 import java.util.NoSuchElementException;
 
+import org.apache.openjpa.lib.util.ClassUtil;
 import org.apache.openjpa.lib.util.J2DoPrivHelper;
 import org.apache.openjpa.lib.util.MultiClassLoader;
 import serp.util.Strings;
@@ -129,7 +130,7 @@ public class ClassMetaDataIterator imple
                     _locs.add(path + pkgName + suffix); // legacy
                     _locs.add(upPath + pkgName + suffix); // legacy
                     if (idx == -1)
-                        _locs.add(path + Strings.getClassName(cls) + suffix);
+                        _locs.add(path + ClassUtil.getClassName(cls) + suffix);
 
                     start = idx + 1;
                     upPath = path;

Modified: openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/ClassUtil.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/ClassUtil.java?rev=1759355&r1=1759354&r2=1759355&view=diff
==============================================================================
--- openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/ClassUtil.java (original)
+++ openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/ClassUtil.java Mon Sep  5 20:35:11 2016
@@ -22,6 +22,7 @@ package org.apache.openjpa.lib.util;
  */
 public final class ClassUtil {
 
+
     private static final Object[][] _codes = new Object[][]{
             {byte.class, "byte", "B"},
             {char.class, "char", "C"},
@@ -105,9 +106,68 @@ public final class ClassUtil {
 
         try {
             return Class.forName(str, resolve, loader);
-        } catch (ClassNotFoundException | NoClassDefFoundError e) {
+        }
+        catch (ClassNotFoundException | NoClassDefFoundError e) {
             throw new IllegalArgumentException(e.getMessage());
         }
     }
-}
 
+    /**
+     * Return only the class name, without package.
+     */
+    public static String getClassName(Class cls) {
+        if (cls == null) {
+            return null;
+        }
+        return getClassName(cls.getName());
+    }
+
+    /**
+     * Return only the class name.
+     */
+    public static String getClassName(String fullName) {
+        if (fullName == null) {
+            return null;
+        }
+        if (fullName.isEmpty()) {
+            return fullName;
+        }
+
+        int dims = 0;
+        while (fullName.charAt(dims) == '[') {
+            dims++;
+        }
+        if (dims > 0) {
+            if (fullName.length() == dims + 1) {
+                String classCode = fullName.substring(dims);
+                for (int i = 0; i < _codes.length; i++) {
+                    if (_codes[i][2].equals(classCode)) {
+                        fullName = (String)_codes[i][1];
+                        break;
+                    }
+                }
+            }
+            else {
+                if (fullName.charAt(fullName.length()-1) == ';') {
+                    fullName = fullName.substring(dims + 1, fullName.length() - 1);
+                }
+                else {
+                    fullName = fullName.substring(dims + 1);
+                }
+            }
+        }
+
+        int lastDot = fullName.lastIndexOf('.');
+        String simpleName = lastDot > -1 ? fullName.substring(lastDot + 1) : fullName;
+
+        if (dims > 0) {
+            StringBuilder sb = new StringBuilder(simpleName.length() + dims * 2);
+            sb.append(simpleName);
+            for (int i = 0; i < dims; i++) {
+                sb.append("[]");
+            }
+            simpleName = sb.toString();
+        }
+        return simpleName;
+    }
+}

Modified: openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/Files.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/Files.java?rev=1759355&r1=1759354&r2=1759355&view=diff
==============================================================================
--- openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/Files.java (original)
+++ openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/Files.java Mon Sep  5 20:35:11 2016
@@ -125,7 +125,7 @@ public class Files {
      * Return the file for the class resource with the given extension.
      */
     private static File getClassFile(Class cls, String ext) {
-        String name = Strings.getClassName(cls);
+        String name = ClassUtil.getClassName(cls);
 
         // if it's an inner class, use the parent class name
         int innerIdx = name.indexOf('$');

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=1759355&r1=1759354&r2=1759355&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 Mon Sep  5 20:35:11 2016
@@ -16,8 +16,12 @@
  */
 package org.apache.openjpa.lib.util;
 
+import java.util.concurrent.TimeUnit;
+
 import org.junit.Assert;
+import org.junit.Ignore;
 import org.junit.Test;
+import serp.util.Strings;
 
 public class ClassUtilTest {
 
@@ -53,4 +57,54 @@ public class ClassUtilTest {
         return ClassUtil.toClass(clazz, false, this.getClass().getClassLoader());
     }
 
+    @Test
+    public void testGetClassName() {
+        Assert.assertEquals("ClassUtilTest", ClassUtil.getClassName(ClassUtilTest.class));
+        Assert.assertEquals("ClassUtilTest$MyInnerClass", ClassUtil.getClassName(MyInnerClass.class));
+
+        // anonymous class
+        Assert.assertEquals("ClassUtilTest$1", ClassUtil.getClassName(INSTANCE.getClass()));
+
+        // primitives
+        Assert.assertEquals("byte", ClassUtil.getClassName(byte.class));
+        Assert.assertEquals("char", ClassUtil.getClassName(char.class));
+        Assert.assertEquals("double", ClassUtil.getClassName(double.class));
+        Assert.assertEquals("float", ClassUtil.getClassName(float.class));
+        Assert.assertEquals("int", ClassUtil.getClassName(int.class));
+        Assert.assertEquals("long", ClassUtil.getClassName(long.class));
+        Assert.assertEquals("short", ClassUtil.getClassName(short.class));
+        Assert.assertEquals("boolean", ClassUtil.getClassName(boolean.class));
+        Assert.assertEquals("void", ClassUtil.getClassName(void.class));
+
+        // arrays
+        Assert.assertEquals("long[]", ClassUtil.getClassName(long[].class));
+        Assert.assertEquals("long[][]", ClassUtil.getClassName(long[][].class));
+        Assert.assertEquals("float[][][]", ClassUtil.getClassName(float[][][].class));
+
+        Assert.assertEquals("ClassUtilTest[]", ClassUtil.getClassName(ClassUtilTest[].class));
+        Assert.assertEquals("ClassUtilTest$MyInnerClass[]", ClassUtil.getClassName(MyInnerClass[].class));
+        Assert.assertEquals("ClassUtilTest$MyInnerClass[][]", ClassUtil.getClassName(MyInnerClass[][].class));
+    }
+
+    @Test
+    @Ignore("only needed for manual performance tests")
+    public void testGetClassNamePerformance() {
+
+        long start = System.nanoTime();
+        for (int i = 1; i < 10000000; i++) {
+            //X String className = Strings.getClassName(MyInnerClass.class);
+            ClassUtil.getClassName(MyInnerClass.class);
+        }
+
+        long stop = System.nanoTime();
+        System.out.println("took: " + TimeUnit.NANOSECONDS.toMillis(stop - start));
+    }
+
+    private static abstract class MyInnerClass {
+        // not needed
+    }
+
+    private static final MyInnerClass INSTANCE = new MyInnerClass() {
+    };
+
 }

Modified: 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=1759355&r1=1759354&r2=1759355&view=diff
==============================================================================
--- openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/StringUtilTest.java (original)
+++ openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/StringUtilTest.java Mon Sep  5 20:35:11 2016
@@ -21,7 +21,6 @@ import java.util.concurrent.TimeUnit;
 import org.junit.Assert;
 import org.junit.Ignore;
 import org.junit.Test;
-import serp.util.Strings;
 
 public class StringUtilTest {
 

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.java?rev=1759355&r1=1759354&r2=1759355&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.java Mon Sep  5 20:35:11 2016
@@ -18,6 +18,7 @@
  */
 package org.apache.openjpa.persistence.jdbc;
 
+import org.apache.openjpa.lib.util.ClassUtil;
 import org.apache.openjpa.persistence.AnnotationPersistenceMetaDataSerializer;
 import org.apache.openjpa.persistence.PersistenceStrategy;
 import org.apache.openjpa.persistence.AnnotationBuilder;
@@ -80,7 +81,6 @@ import javax.persistence.EntityResult;
 import javax.persistence.FieldResult;
 import javax.persistence.ColumnResult;
 
-//@todo: javadocs
 
 /**
  * Serializes persistence mappings as annotations.
@@ -220,8 +220,7 @@ public class AnnotationPersistenceMappin
         ClassMapping cls = (ClassMapping) mapping;
         ClassMappingInfo info = cls.getMappingInfo();
         AnnotationBuilder abTable = addAnnotation(Table.class, mapping);
-        serializeTable(info.getTableName(), Strings
-            .getClassName(mapping.getDescribedType()), null,
+        serializeTable(info.getTableName(), ClassUtil.getClassName(mapping.getDescribedType()), null,
             info.getUniques(info.getTableName()), abTable);
         serializeColumns(info, ColType.PK_JOIN, null, abTable, cls);
         for (String second : info.getSecondaryTableNames()) {
@@ -241,7 +240,7 @@ public class AnnotationPersistenceMappin
         String strat = info.getHierarchyStrategy();
         if (null == strat)
             return;
-        String itypecls = Strings.getClassName(InheritanceType.class);
+        String itypecls = ClassUtil.getClassName(InheritanceType.class);
         AnnotationBuilder abInheritance =
             addAnnotation(Inheritance.class, mapping);
         if (FlatClassStrategy.ALIAS.equals(strat))

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.java?rev=1759355&r1=1759354&r2=1759355&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.java Mon Sep  5 20:35:11 2016
@@ -39,6 +39,7 @@ import org.apache.openjpa.jdbc.schema.Co
 import org.apache.openjpa.jdbc.schema.Schema;
 import org.apache.openjpa.jdbc.schema.Table;
 import org.apache.openjpa.jdbc.sql.JoinSyntaxes;
+import org.apache.openjpa.lib.util.ClassUtil;
 import org.apache.openjpa.meta.FieldMetaData;
 import org.apache.openjpa.meta.JavaTypes;
 import serp.util.Strings;
@@ -127,7 +128,7 @@ public class PersistenceMappingDefaults
     public String getTableName(ClassMapping cls, Schema schema) {
         if (cls.getTypeAlias() != null)
             return cls.getTypeAlias();
-        return Strings.getClassName(cls.getDescribedType()).replace('$', '_');
+        return ClassUtil.getClassName(cls.getDescribedType()).replace('$', '_');
     }
 
     @Override

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.java?rev=1759355&r1=1759354&r2=1759355&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.java Mon Sep  5 20:35:11 2016
@@ -29,6 +29,7 @@ import javax.persistence.EnumType;
 import javax.persistence.TemporalType;
 
 import org.apache.commons.lang3.StringUtils;
+import org.apache.openjpa.lib.util.ClassUtil;
 import org.xml.sax.SAXException;
 import org.apache.openjpa.jdbc.conf.JDBCConfiguration;
 import org.apache.openjpa.jdbc.meta.ClassMapping;
@@ -56,7 +57,6 @@ import org.apache.openjpa.meta.MetaDataR
 import org.apache.openjpa.meta.SequenceMetaData;
 import org.apache.openjpa.persistence.PersistenceStrategy;
 import org.apache.openjpa.persistence.XMLPersistenceMetaDataSerializer;
-import serp.util.Strings;
 
 /**
  * Serializes persistence mapping to XML.
@@ -184,8 +184,7 @@ public class XMLPersistenceMappingSerial
         throws SAXException {
         ClassMapping cls = (ClassMapping) mapping;
         ClassMappingInfo info = cls.getMappingInfo();
-        serializeTable(info.getTableName(), "table", Strings
-            .getClassName(mapping.getDescribedType()), null, 
+        serializeTable(info.getTableName(), "table", ClassUtil.getClassName(mapping.getDescribedType()), null,
             info.getUniques(info.getTableName()));
         for (String second : info.getSecondaryTableNames())
             serializeTable(second, "secondary-table", null, info,

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/common/apps/HorizAppMultiA.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/common/apps/HorizAppMultiA.java?rev=1759355&r1=1759354&r2=1759355&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/common/apps/HorizAppMultiA.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/common/apps/HorizAppMultiA.java Mon Sep  5 20:35:11 2016
@@ -30,7 +30,7 @@ public class HorizAppMultiA
     // initialize PK values to random values
 	//FIXME 
 	/*
-    private String pk1 = "PK-" + Strings.getClassName(getClass().getName());
+    private String pk1 = "PK-" + ClassUtil.getClassName(getClass().getName());
     private int pk2 = com.solarmetric.test.AbstractTestCase.
         randomInt().intValue();
     */

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/common/apps/HorizAppSingleA.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/common/apps/HorizAppSingleA.java?rev=1759355&r1=1759354&r2=1759355&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/common/apps/HorizAppSingleA.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/common/apps/HorizAppSingleA.java Mon Sep  5 20:35:11 2016
@@ -30,7 +30,7 @@ public class HorizAppSingleA
     // initialize PK values to random values
 	//FIXME 
 	/*
-    private String pk1 = "PK-" + Strings.getClassName(getClass().getName());
+    private String pk1 = "PK-" + ClassUtil.getClassName(getClass().getName());
     private int pk2 = com.solarmetric.test.AbstractTestCase.
         randomInt().intValue();
 	*/

Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationBuilder.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationBuilder.java?rev=1759355&r1=1759354&r2=1759355&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationBuilder.java (original)
+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationBuilder.java Mon Sep  5 20:35:11 2016
@@ -18,7 +18,7 @@
  */
 package org.apache.openjpa.persistence;
 
-import serp.util.Strings;
+import org.apache.openjpa.lib.util.ClassUtil;
 
 import java.util.List;
 import java.util.ArrayList;
@@ -117,7 +117,7 @@ public class AnnotationBuilder {
 
     static String enumToString(Enum e) {
         StringBuilder sb = new StringBuilder();
-        sb.append(Strings.getClassName(e.getClass())).
+        sb.append(ClassUtil.getClassName(e.getClass())).
             append(".").append(e);
         return sb.toString();
     }
@@ -126,7 +126,7 @@ public class AnnotationBuilder {
         StringBuilder sb = new StringBuilder();
         for (Iterator i = set.iterator(); i.hasNext();) {
             Object e =  i.next();
-            sb.append(Strings.getClassName(e.getClass())).
+            sb.append(ClassUtil.getClassName(e.getClass())).
                 append(".").append(e);
             if (i.hasNext())
                 sb.append(", ");
@@ -135,7 +135,7 @@ public class AnnotationBuilder {
     }
 
     protected void toString(StringBuilder sb) {
-        sb.append("@").append(Strings.getClassName(type));
+        sb.append("@").append(ClassUtil.getClassName(type));
         if (components.size() == 0)
             return;
         sb.append("(");

Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.java?rev=1759355&r1=1759354&r2=1759355&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.java (original)
+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.java Mon Sep  5 20:35:11 2016
@@ -72,6 +72,7 @@ import org.apache.openjpa.kernel.QueryLa
 import org.apache.openjpa.lib.conf.Configurations;
 import org.apache.openjpa.lib.log.Log;
 import org.apache.openjpa.lib.meta.SourceTracker;
+import org.apache.openjpa.lib.util.ClassUtil;
 import org.apache.openjpa.lib.util.J2DoPrivHelper;
 import org.apache.openjpa.lib.util.JavaVersions;
 import org.apache.openjpa.lib.util.Localizer;
@@ -87,7 +88,6 @@ import org.apache.openjpa.meta.SequenceM
 import org.apache.openjpa.meta.ValueMetaData;
 import org.apache.openjpa.util.InternalException;
 
-import serp.util.Strings;
 
 //@todo: javadocs
 
@@ -733,7 +733,7 @@ public class AnnotationPersistenceMetaDa
         AnnotationBuilder abEntity = addAnnotation(
             getEntityAnnotationType(meta), meta);
         if (isMetaDataMode()
-            && !meta.getTypeAlias().equals(Strings.getClassName(meta.
+            && !meta.getTypeAlias().equals(ClassUtil.getClassName(meta.
             getDescribedType())))
             abEntity.add("name", meta.getTypeAlias());
         
@@ -1172,8 +1172,7 @@ public class AnnotationPersistenceMetaDa
      * Serialize field mapping content; this will be called before
      * {@link #serializeValueMappingContent}. Does nothing by default.
      */
-    protected void serializeFieldMappingContent(FieldMetaData fmd,
-        PersistenceStrategy strategy, AnnotationBuilder ab) {
+    protected void serializeFieldMappingContent(FieldMetaData fmd, PersistenceStrategy strategy, AnnotationBuilder ab) {
     }
 
     /**

Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.java?rev=1759355&r1=1759354&r2=1759355&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.java (original)
+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.java Mon Sep  5 20:35:11 2016
@@ -40,6 +40,7 @@ import org.apache.openjpa.lib.conf.Confi
 import org.apache.openjpa.lib.log.Log;
 import org.apache.openjpa.lib.meta.CFMetaDataSerializer;
 import org.apache.openjpa.lib.meta.SourceTracker;
+import org.apache.openjpa.lib.util.ClassUtil;
 import org.apache.openjpa.lib.util.JavaVersions;
 import org.apache.openjpa.lib.util.Localizer;
 import org.apache.openjpa.meta.ClassMetaData;
@@ -694,7 +695,7 @@ public class XMLPersistenceMetaDataSeria
             getName()));
 
         if (isMetaDataMode()
-            && !meta.getTypeAlias().equals(Strings.getClassName(meta.
+            && !meta.getTypeAlias().equals(ClassUtil.getClassName(meta.
             getDescribedType())))
             addAttribute("name", meta.getTypeAlias());