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/01 20:20:12 UTC
svn commit: r1758851 - in /openjpa/trunk:
openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/conf/
openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/
openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/
openjpa-jdbc/src/main/java/org...
Author: struberg
Date: Thu Sep 1 20:20:11 2016
New Revision: 1758851
URL: http://svn.apache.org/viewvc?rev=1758851&view=rev
Log:
OPENJPA-2662 intern Strings.toClass
Added:
openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/ClassUtil.java (with props)
openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/ClassUtilTest.java (with props)
Modified:
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/conf/MappingRepositoryValue.java
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/StoredProcedureQuery.java
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/EqualExpression.java
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.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/StoredProcedure.java
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryImpl.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/meta/CFMetaDataParser.java
openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/ClassArgParser.java
Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/conf/MappingRepositoryValue.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/conf/MappingRepositoryValue.java?rev=1758851&r1=1758850&r2=1758851&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/conf/MappingRepositoryValue.java (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/conf/MappingRepositoryValue.java Thu Sep 1 20:20:11 2016
@@ -24,10 +24,9 @@ import java.security.AccessController;
import org.apache.openjpa.jdbc.meta.MappingRepository;
import org.apache.openjpa.lib.conf.Configuration;
import org.apache.openjpa.lib.conf.PluginValue;
+import org.apache.openjpa.lib.util.ClassUtil;
import org.apache.openjpa.lib.util.J2DoPrivHelper;
-import serp.util.Strings;
-
/**
* Handles the complex logic of creating a {@link MappingRepository} for
* a given configuration.
@@ -46,7 +45,7 @@ public class MappingRepositoryValue
// since the MappingRepository takes a JDBConfiguration constructor,
// we need to manually perform the instantiation
try {
- Class cls = Strings.toClass(clsName,
+ Class cls = ClassUtil.toClass(clsName,
AccessController.doPrivileged(
J2DoPrivHelper.getClassLoaderAction(type)));
return cls.getConstructor(new Class[]{ JDBCConfiguration.class }).
Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/StoredProcedureQuery.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/StoredProcedureQuery.java?rev=1758851&r1=1758850&r2=1758851&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/StoredProcedureQuery.java (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/StoredProcedureQuery.java Thu Sep 1 20:20:11 2016
@@ -37,7 +37,6 @@ import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.List;
import java.util.Map;
Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/EqualExpression.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/EqualExpression.java?rev=1758851&r1=1758850&r2=1758851&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/EqualExpression.java (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/exps/EqualExpression.java Thu Sep 1 20:20:11 2016
@@ -18,8 +18,6 @@
*/
package org.apache.openjpa.jdbc.kernel.exps;
-import java.util.List;
-
import org.apache.openjpa.jdbc.meta.ClassMapping;
import org.apache.openjpa.jdbc.meta.FieldMapping;
import org.apache.openjpa.jdbc.sql.SQLBuffer;
Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.java?rev=1758851&r1=1758850&r2=1758851&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.java (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.java Thu Sep 1 20:20:11 2016
@@ -26,8 +26,8 @@ import org.apache.commons.lang3.StringUt
import org.apache.openjpa.jdbc.schema.Column;
import org.apache.openjpa.jdbc.schema.ForeignKey;
import org.apache.openjpa.jdbc.schema.Table;
+import org.apache.openjpa.lib.util.ClassUtil;
import org.apache.openjpa.lib.util.Localizer;
-import serp.util.Strings;
/**
* Simple {@link ReverseCustomizer} that uses a properties file to
@@ -162,7 +162,7 @@ public class PropertiesReverseCustomizer
public void customize(FieldMapping field) {
String type = getProperty(field.getFullName(false) + ".type");
if (type != null)
- field.setDeclaredType(Strings.toClass(type, null));
+ field.setDeclaredType(ClassUtil.toClass(type, null));
}
public String getFieldName(ClassMapping dec, Column[] cols, ForeignKey fk,
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=1758851&r1=1758850&r2=1758851&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 Thu Sep 1 20:20:11 2016
@@ -79,6 +79,7 @@ import org.apache.openjpa.jdbc.schema.XM
import org.apache.openjpa.jdbc.sql.SQLExceptions;
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.CodeFormat;
import org.apache.openjpa.lib.util.Files;
import org.apache.openjpa.lib.util.J2DoPrivHelper;
@@ -1675,7 +1676,7 @@ public class ReverseMappingTool
propNames[propNames.length - 1]));
if (typeSpec != null)
- type = Strings.toClass(typeSpec, _conf.
+ type = ClassUtil.toClass(typeSpec, _conf.
getClassResolverInstance().getClassLoader
(ReverseMappingTool.class, null));
}
Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/StoredProcedure.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/StoredProcedure.java?rev=1758851&r1=1758850&r2=1758851&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/StoredProcedure.java (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/StoredProcedure.java Thu Sep 1 20:20:11 2016
@@ -30,10 +30,8 @@ import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
-import java.util.Map;
/**
* Holds metadata about a Database Stored Procedure.
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=1758851&r1=1758850&r2=1758851&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 Thu Sep 1 20:20:11 2016
@@ -52,6 +52,7 @@ import org.apache.openjpa.lib.rop.Merged
import org.apache.openjpa.lib.rop.RangeResultObjectProvider;
import org.apache.openjpa.lib.rop.ResultList;
import org.apache.openjpa.lib.rop.ResultObjectProvider;
+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.util.OrderedMap;
@@ -994,7 +995,7 @@ public class QueryImpl
/**
* Execute the query using the given compilation, executor, and parameter
* values. All other execute methods delegate to this one or to
- * {@link #execute(StoreQuery.Executor,Map)} after validation and locking.
+ * {@link #execute(int, Map)} after validation and locking.
*/
private Object execute(StoreQuery q, StoreQuery.Executor ex,
Object[] params)
@@ -1022,7 +1023,7 @@ public class QueryImpl
/**
* Delete the query using the given executor, and parameter
* values. All other execute methods delegate to this one or to
- * {@link #delete(StoreQuery.Executor,Map)} after validation and locking.
+ * {@link #delete(StoreQuery, StoreQuery.Executor, Object[])} after validation and locking.
* The return value will be a Number indicating the number of
* instances deleted.
*/
@@ -1053,7 +1054,7 @@ public class QueryImpl
/**
* Update the query using the given compilation, executor, and parameter
* values. All other execute methods delegate to this one or to
- * {@link #update(StoreQuery.Executor,Map)} after validation and locking.
+ * {@link #update(StoreQuery, StoreQuery.Executor, Object[])} after validation and locking.
* The return value will be a Number indicating the number of
* instances updated.
*/
@@ -1698,7 +1699,7 @@ public class QueryImpl
_loader = _broker.getConfiguration().getClassResolverInstance().
getClassLoader(_class, _broker.getClassLoader());
try {
- return Strings.toClass(name, _loader);
+ return ClassUtil.toClass(name, _loader);
} catch (RuntimeException re) {
} catch (NoClassDefFoundError ncdfe) {
}
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=1758851&r1=1758850&r2=1758851&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 Thu Sep 1 20:20:11 2016
@@ -37,6 +37,7 @@ import javax.naming.NamingException;
import org.apache.commons.lang3.StringUtils;
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.Localizer;
import org.apache.openjpa.lib.util.Options;
@@ -203,10 +204,10 @@ public class Configurations {
}
if (cls == null) {
try {
- cls = Strings.toClass(clsName, loader);
+ cls = ClassUtil.toClass(clsName, loader);
loaderCache.put(clsName, cls);
} catch (RuntimeException re) {
-
+ // TODO, empty block is never good
}
}
return cls;
Modified: openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/CFMetaDataParser.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/CFMetaDataParser.java?rev=1758851&r1=1758850&r2=1758851&view=diff
==============================================================================
--- openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/CFMetaDataParser.java (original)
+++ openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/CFMetaDataParser.java Thu Sep 1 20:20:11 2016
@@ -21,11 +21,11 @@ package org.apache.openjpa.lib.meta;
import java.security.AccessController;
import org.apache.commons.lang3.StringUtils;
+import org.apache.openjpa.lib.util.ClassUtil;
import org.apache.openjpa.lib.util.J2DoPrivHelper;
import org.apache.openjpa.lib.util.Localizer;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
-import serp.util.Strings;
/**
* Custom SAX parser used by the system to quickly parse metadata files
@@ -341,15 +341,15 @@ public class CFMetaDataParser extends XM
boolean noPackage = StringUtils.isEmpty(pkg);
try {
if (fullName || noPackage)
- return Strings.toClass(name, resolve, loader);
- return Strings.toClass(pkg + "." + name, resolve, loader);
+ return ClassUtil.toClass(name, resolve, loader);
+ return ClassUtil.toClass(pkg + "." + name, resolve, loader);
} catch (RuntimeException re) {
}
// if not a full name, now try the name without a package
if (!fullName && !noPackage) {
try {
- return Strings.toClass(name, resolve, loader);
+ return ClassUtil.toClass(name, resolve, loader);
} catch (RuntimeException re) {
}
}
@@ -358,7 +358,7 @@ public class CFMetaDataParser extends XM
if (!fullName) {
for (int i = 0; i < PACKAGES.length; i++) {
try {
- return Strings.toClass(PACKAGES[i] + name, resolve, loader);
+ return ClassUtil.toClass(PACKAGES[i] + name, resolve, loader);
} catch (RuntimeException re) {
}
}
Modified: openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/ClassArgParser.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/ClassArgParser.java?rev=1758851&r1=1758850&r2=1758851&view=diff
==============================================================================
--- openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/ClassArgParser.java (original)
+++ openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/ClassArgParser.java Thu Sep 1 20:20:11 2016
@@ -37,11 +37,11 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import org.apache.openjpa.lib.util.ClassUtil;
import org.apache.openjpa.lib.util.Files;
import org.apache.openjpa.lib.util.J2DoPrivHelper;
import org.apache.openjpa.lib.util.Localizer;
import serp.bytecode.lowlevel.ConstantPoolTable;
-import serp.util.Strings;
/**
* Parser used to resolve arguments into java classes.
@@ -159,7 +159,7 @@ public class ClassArgParser {
String[] names = parseTypeNames(arg);
Class<?>[] objs = new Class[names.length];
for (int i = 0; i < names.length; i++)
- objs[i] = Strings.toClass(names[i], _loader);
+ objs[i] = ClassUtil.toClass(names[i], _loader);
return objs;
}
@@ -171,7 +171,7 @@ public class ClassArgParser {
String[] names = parseTypeNames(itr);
Class<?>[] objs = new Class[names.length];
for (int i = 0; i < names.length; i++)
- objs[i] = Strings.toClass(names[i], _loader);
+ objs[i] = ClassUtil.toClass(names[i], _loader);
return objs;
}
@@ -191,7 +191,7 @@ public class ClassArgParser {
names = entry.getValue();
objs = new Class[names.length];
for (int j = 0; j < names.length; j++) {
- objs[j] = Strings.toClass(names[j], _loader);
+ objs[j] = ClassUtil.toClass(names[j], _loader);
}
rval.put(entry.getKey(), objs);
}
Added: 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=1758851&view=auto
==============================================================================
--- openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/ClassUtil.java (added)
+++ openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/ClassUtil.java Thu Sep 1 20:20:11 2016
@@ -0,0 +1,113 @@
+/*
+ * 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;
+
+
+/**
+ * Various helper methods to deal with Classes
+ */
+public final class ClassUtil {
+
+ private static final Object[][] _codes = new Object[][]{
+ {byte.class, "byte", "B"},
+ {char.class, "char", "C"},
+ {double.class, "double", "D"},
+ {float.class, "float", "F"},
+ {int.class, "int", "I"},
+ {long.class, "long", "J"},
+ {short.class, "short", "S"},
+ {boolean.class, "boolean", "Z"},
+ {void.class, "void", "V"}
+ };
+
+ private ClassUtil() {
+ }
+
+ /**
+ * Return the class for the given string, correctly handling
+ * primitive types. If the given class loader is null, the context
+ * loader of the current thread will be used.
+ *
+ * @throws RuntimeException on load error
+ * @author Abe White, taken from the Serp project
+ */
+ public static Class toClass(String str, ClassLoader loader) {
+ return toClass(str, false, loader);
+ }
+
+ /**
+ * Return the class for the given string, correctly handling
+ * primitive types. If the given class loader is null, the context
+ * loader of the current thread will be used.
+ *
+ * @throws RuntimeException on load error
+ * @author Abe White, taken from the Serp project
+ */
+ public static Class toClass(String str, boolean resolve,
+ ClassLoader loader) {
+ if (str == null) {
+ throw new NullPointerException("str == null");
+ }
+
+ // array handling
+ int dims = 0;
+ while (str.endsWith("[]")) {
+ dims++;
+ str = str.substring(0, str.length() - 2);
+ }
+
+ // check against primitive types
+ boolean primitive = false;
+ if (str.indexOf('.') == -1) {
+ for (int i = 0; !primitive && (i < _codes.length); i++) {
+ if (_codes[i][1].equals(str)) {
+ if (dims == 0) {
+ return (Class) _codes[i][0];
+ }
+ str = (String) _codes[i][2];
+ primitive = true;
+ }
+ }
+ }
+
+ if (dims > 0) {
+ StringBuilder buf = new StringBuilder(str.length() + dims + 2);
+ for (int i = 0; i < dims; i++) {
+ buf.append('[');
+ }
+ if (!primitive) {
+ buf.append('L');
+ }
+ buf.append(str);
+ if (!primitive) {
+ buf.append(';');
+ }
+ str = buf.toString();
+ }
+
+ if (loader == null) {
+ loader = Thread.currentThread().getContextClassLoader();
+ }
+
+ try {
+ return Class.forName(str, resolve, loader);
+ } catch (ClassNotFoundException | NoClassDefFoundError e) {
+ throw new IllegalArgumentException(e.getMessage());
+ }
+ }
+}
+
Propchange: openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/ClassUtil.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: 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=1758851&view=auto
==============================================================================
--- openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/ClassUtilTest.java (added)
+++ openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/ClassUtilTest.java Thu Sep 1 20:20:11 2016
@@ -0,0 +1,59 @@
+/*
+ * 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 org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * TODO remove again. Just to test serp.ClassUtil.toClass
+ */
+public class ClassUtilTest {
+
+ @Test
+ public void testToClass() {
+ Assert.assertEquals(this.getClass(), toClass("org.apache.openjpa.lib.util.ClassUtilTest"));
+
+ Assert.assertEquals(new ClassUtilTest[0].getClass(), toClass("org.apache.openjpa.lib.util.ClassUtilTest[]"));
+
+ Assert.assertEquals(Integer.class, toClass("java.lang.Integer"));
+
+ Assert.assertEquals(byte.class, toClass("byte"));
+ Assert.assertEquals(char.class, toClass("char"));
+ Assert.assertEquals(double.class, toClass("double"));
+ Assert.assertEquals(float.class, toClass("float"));
+ Assert.assertEquals(int.class, toClass("int"));
+ Assert.assertEquals(long.class, toClass("long"));
+ Assert.assertEquals(short.class, toClass("short"));
+ Assert.assertEquals(boolean.class, toClass("boolean"));
+ Assert.assertEquals(void.class, toClass("void"));
+
+ Assert.assertEquals(new float[0].getClass(), toClass("float[]"));
+ Assert.assertEquals(new float[0][0].getClass(), toClass("float[][]"));
+ Assert.assertEquals(new long[0][0][0].getClass(), toClass("long[][][]"));
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void nonExistingClass() {
+ toClass("does.not.Exist");
+ }
+
+ private Class toClass(String clazz) {
+ return ClassUtil.toClass(clazz, false, this.getClass().getClassLoader());
+ }
+
+}
Propchange: openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/ClassUtilTest.java
------------------------------------------------------------------------------
svn:eol-style = native