mirror of https://github.com/apache/openjpa.git
OPENJPA-369, apply same changes in trunk to the 1.0.x branch.
git-svn-id: https://svn.apache.org/repos/asf/openjpa/branches/1.0.x@581356 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
cbf296df72
commit
4cc061e5dc
|
@ -39,6 +39,12 @@
|
||||||
<version>${pom.version}</version>
|
<version>${pom.version}</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.openjpa</groupId>
|
||||||
|
<artifactId>openjpa-lib-5</artifactId>
|
||||||
|
<version>${pom.version}</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<build>
|
<build>
|
||||||
<plugins>
|
<plugins>
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
or more contributor license agreements. See the NOTICE file
|
||||||
|
distributed with this work for additional information
|
||||||
|
regarding copyright ownership. The ASF licenses this file
|
||||||
|
to you under the Apache License, Version 2.0 (the
|
||||||
|
"License"); you may not use this file except in compliance
|
||||||
|
with the License. You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
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.
|
||||||
|
-->
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>org.apache.openjpa</groupId>
|
||||||
|
<artifactId>openjpa-lib-5</artifactId>
|
||||||
|
<packaging>jar</packaging>
|
||||||
|
<name>OpenJPA Utilities 1.5</name>
|
||||||
|
<description>OpenJPA Utilities 1.5</description>
|
||||||
|
<url>http://openjpa.apache.org</url>
|
||||||
|
<parent>
|
||||||
|
<groupId>org.apache.openjpa</groupId>
|
||||||
|
<artifactId>openjpa-parent</artifactId>
|
||||||
|
<version>1.0.1-SNAPSHOT</version>
|
||||||
|
</parent>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.openjpa</groupId>
|
||||||
|
<artifactId>openjpa-lib</artifactId>
|
||||||
|
<version>${pom.version}</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<source>1.5</source>
|
||||||
|
<target>1.5</target>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</project>
|
|
@ -0,0 +1,92 @@
|
||||||
|
/*
|
||||||
|
* 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.lang.reflect.AnnotatedElement;
|
||||||
|
import java.security.PrivilegedAction;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper class to obtain the Privilege(Exception)Action object to perform
|
||||||
|
* Java 2 doPrivilege security sensitive function call in the following
|
||||||
|
* methods:
|
||||||
|
* <ul>
|
||||||
|
* <li>AnnotatedElement.getAnnotations
|
||||||
|
* <li>AnnotatedElement.getDeclaredAnnotations
|
||||||
|
* <li>AnnotatedElement.isAnnotationPresent
|
||||||
|
* </ul>
|
||||||
|
*
|
||||||
|
* @author Albert Lee
|
||||||
|
*/
|
||||||
|
|
||||||
|
public abstract class J2DoPriv5Helper extends J2DoPrivHelper {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return a PrivilegeAction object for AnnotatedElement.getAnnotations().
|
||||||
|
*
|
||||||
|
* Requires security policy:
|
||||||
|
* 'permission java.lang.RuntimePermission "accessDeclaredMembers";'
|
||||||
|
*
|
||||||
|
* @return Annotation[]
|
||||||
|
*/
|
||||||
|
public static final PrivilegedAction getAnnotationsAction(
|
||||||
|
final AnnotatedElement element) {
|
||||||
|
return new PrivilegedAction() {
|
||||||
|
public Object run() {
|
||||||
|
return element.getAnnotations();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return a PrivilegeAction object for
|
||||||
|
* AnnotatedElement.getDeclaredAnnotations().
|
||||||
|
*
|
||||||
|
* Requires security policy:
|
||||||
|
* 'permission java.lang.RuntimePermission "accessDeclaredMembers";'
|
||||||
|
*
|
||||||
|
* @return Annotation[]
|
||||||
|
*/
|
||||||
|
public static final PrivilegedAction getDeclaredAnnotationsAction(
|
||||||
|
final AnnotatedElement element) {
|
||||||
|
return new PrivilegedAction() {
|
||||||
|
public Object run() {
|
||||||
|
return element.getDeclaredAnnotations();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return a PrivilegeAction object for
|
||||||
|
* AnnotatedElement.isAnnotationPresent().
|
||||||
|
*
|
||||||
|
* Requires security policy:
|
||||||
|
* 'permission java.lang.RuntimePermission "accessDeclaredMembers";'
|
||||||
|
*
|
||||||
|
* @return Boolean
|
||||||
|
*/
|
||||||
|
public static final PrivilegedAction isAnnotationPresentAction(
|
||||||
|
final AnnotatedElement element, final Class annotationClazz) {
|
||||||
|
return new PrivilegedAction() {
|
||||||
|
public Object run() {
|
||||||
|
return element.isAnnotationPresent(annotationClazz)
|
||||||
|
? Boolean.TRUE : Boolean.FALSE;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
|
@ -24,7 +24,6 @@ import java.io.FileNotFoundException;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.lang.reflect.AccessibleObject;
|
import java.lang.reflect.AccessibleObject;
|
||||||
import java.lang.reflect.AnnotatedElement;
|
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
import java.net.MalformedURLException;
|
import java.net.MalformedURLException;
|
||||||
import java.net.ServerSocket;
|
import java.net.ServerSocket;
|
||||||
|
@ -49,9 +48,6 @@ import serp.bytecode.Project;
|
||||||
* methods:
|
* methods:
|
||||||
* <ul>
|
* <ul>
|
||||||
* <li>AccessibleObject.setAccessible
|
* <li>AccessibleObject.setAccessible
|
||||||
* <li>AnnotatedElement.getAnnotations
|
|
||||||
* <li>AnnotatedElement.getDeclaredAnnotations
|
|
||||||
* <li>AnnotatedElement.isAnnotationPresent
|
|
||||||
* <li>Class.forName
|
* <li>Class.forName
|
||||||
* <li>Class.getClassLoader
|
* <li>Class.getClassLoader
|
||||||
* <li>Class.getDeclaredField
|
* <li>Class.getDeclaredField
|
||||||
|
@ -328,60 +324,6 @@ public abstract class J2DoPrivHelper {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Return a PrivilegeAction object for AnnotatedElement.getAnnotations().
|
|
||||||
*
|
|
||||||
* Requires security policy:
|
|
||||||
* 'permission java.lang.RuntimePermission "accessDeclaredMembers";'
|
|
||||||
*
|
|
||||||
* @return Annotation[]
|
|
||||||
*/
|
|
||||||
public static final PrivilegedAction getAnnotationsAction(
|
|
||||||
final AnnotatedElement element) {
|
|
||||||
return new PrivilegedAction() {
|
|
||||||
public Object run() {
|
|
||||||
return element.getAnnotations();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return a PrivilegeAction object for
|
|
||||||
* AnnotatedElement.getDeclaredAnnotations().
|
|
||||||
*
|
|
||||||
* Requires security policy:
|
|
||||||
* 'permission java.lang.RuntimePermission "accessDeclaredMembers";'
|
|
||||||
*
|
|
||||||
* @return Annotation[]
|
|
||||||
*/
|
|
||||||
public static final PrivilegedAction getDeclaredAnnotationsAction(
|
|
||||||
final AnnotatedElement element) {
|
|
||||||
return new PrivilegedAction() {
|
|
||||||
public Object run() {
|
|
||||||
return element.getDeclaredAnnotations();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return a PrivilegeAction object for
|
|
||||||
* AnnotatedElement.isAnnotationPresent().
|
|
||||||
*
|
|
||||||
* Requires security policy:
|
|
||||||
* 'permission java.lang.RuntimePermission "accessDeclaredMembers";'
|
|
||||||
*
|
|
||||||
* @return Boolean
|
|
||||||
*/
|
|
||||||
public static final PrivilegedAction isAnnotationPresentAction(
|
|
||||||
final AnnotatedElement element, final Class annotationClazz) {
|
|
||||||
return new PrivilegedAction() {
|
|
||||||
public Object run() {
|
|
||||||
return element.isAnnotationPresent(annotationClazz)
|
|
||||||
? Boolean.TRUE : Boolean.FALSE;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a PrivilegedExceptionAction object for clazz.newInstance().
|
* Return a PrivilegedExceptionAction object for clazz.newInstance().
|
||||||
*
|
*
|
||||||
|
|
|
@ -75,7 +75,7 @@ import org.apache.openjpa.jdbc.schema.Column;
|
||||||
import org.apache.openjpa.jdbc.schema.Unique;
|
import org.apache.openjpa.jdbc.schema.Unique;
|
||||||
import org.apache.openjpa.jdbc.sql.DBDictionary;
|
import org.apache.openjpa.jdbc.sql.DBDictionary;
|
||||||
import org.apache.openjpa.lib.log.Log;
|
import org.apache.openjpa.lib.log.Log;
|
||||||
import org.apache.openjpa.lib.util.J2DoPrivHelper;
|
import org.apache.openjpa.lib.util.J2DoPriv5Helper;
|
||||||
import org.apache.openjpa.lib.util.Localizer;
|
import org.apache.openjpa.lib.util.Localizer;
|
||||||
import org.apache.openjpa.meta.ClassMetaData;
|
import org.apache.openjpa.meta.ClassMetaData;
|
||||||
import org.apache.openjpa.meta.FieldMetaData;
|
import org.apache.openjpa.meta.FieldMetaData;
|
||||||
|
@ -1060,7 +1060,7 @@ public class AnnotationPersistenceMappingParser
|
||||||
|
|
||||||
if (xmlTypeClass != null
|
if (xmlTypeClass != null
|
||||||
&& StringUtils.isEmpty(pcols[i].columnDefinition())
|
&& StringUtils.isEmpty(pcols[i].columnDefinition())
|
||||||
&& ((Boolean) AccessController.doPrivileged(J2DoPrivHelper
|
&& ((Boolean) AccessController.doPrivileged(J2DoPriv5Helper
|
||||||
.isAnnotationPresentAction(fm.getDeclaredType(),
|
.isAnnotationPresentAction(fm.getDeclaredType(),
|
||||||
xmlTypeClass))).booleanValue()) {
|
xmlTypeClass))).booleanValue()) {
|
||||||
DBDictionary dict = ((MappingRepository) getRepository())
|
DBDictionary dict = ((MappingRepository) getRepository())
|
||||||
|
|
|
@ -87,7 +87,7 @@ import org.apache.openjpa.kernel.QueryLanguages;
|
||||||
import org.apache.openjpa.kernel.jpql.JPQLParser;
|
import org.apache.openjpa.kernel.jpql.JPQLParser;
|
||||||
import org.apache.openjpa.lib.conf.Configurations;
|
import org.apache.openjpa.lib.conf.Configurations;
|
||||||
import org.apache.openjpa.lib.log.Log;
|
import org.apache.openjpa.lib.log.Log;
|
||||||
import org.apache.openjpa.lib.util.J2DoPrivHelper;
|
import org.apache.openjpa.lib.util.J2DoPriv5Helper;
|
||||||
import org.apache.openjpa.lib.util.Localizer;
|
import org.apache.openjpa.lib.util.Localizer;
|
||||||
import org.apache.openjpa.meta.ClassMetaData;
|
import org.apache.openjpa.meta.ClassMetaData;
|
||||||
import org.apache.openjpa.meta.DelegatingMetaDataFactory;
|
import org.apache.openjpa.meta.DelegatingMetaDataFactory;
|
||||||
|
@ -465,12 +465,12 @@ public class AnnotationPersistenceMetaDataParser
|
||||||
// check immediately whether the user is using any annotations,
|
// check immediately whether the user is using any annotations,
|
||||||
// regardless of mode. this prevents adding non-entity classes to
|
// regardless of mode. this prevents adding non-entity classes to
|
||||||
// repository if we're ignoring these annotations in mapping mode
|
// repository if we're ignoring these annotations in mapping mode
|
||||||
if (!((Boolean) AccessController.doPrivileged(J2DoPrivHelper
|
if (!((Boolean) AccessController.doPrivileged(J2DoPriv5Helper
|
||||||
.isAnnotationPresentAction(_cls, Entity.class))).booleanValue()
|
.isAnnotationPresentAction(_cls, Entity.class))).booleanValue()
|
||||||
&& !((Boolean) AccessController.doPrivileged(J2DoPrivHelper
|
&& !((Boolean) AccessController.doPrivileged(J2DoPriv5Helper
|
||||||
.isAnnotationPresentAction(_cls, Embeddable.class)))
|
.isAnnotationPresentAction(_cls, Embeddable.class)))
|
||||||
.booleanValue()
|
.booleanValue()
|
||||||
&& !((Boolean) AccessController.doPrivileged(J2DoPrivHelper
|
&& !((Boolean) AccessController.doPrivileged(J2DoPriv5Helper
|
||||||
.isAnnotationPresentAction(_cls, MappedSuperclass.class)))
|
.isAnnotationPresentAction(_cls, MappedSuperclass.class)))
|
||||||
.booleanValue())
|
.booleanValue())
|
||||||
return null;
|
return null;
|
||||||
|
@ -669,17 +669,17 @@ public class AnnotationPersistenceMetaDataParser
|
||||||
|
|
||||||
String rsrc = StringUtils.replace(cls.getName(), ".", "/");
|
String rsrc = StringUtils.replace(cls.getName(), ".", "/");
|
||||||
ClassLoader loader = (ClassLoader) AccessController.doPrivileged(
|
ClassLoader loader = (ClassLoader) AccessController.doPrivileged(
|
||||||
J2DoPrivHelper.getClassLoaderAction(cls));
|
J2DoPriv5Helper.getClassLoaderAction(cls));
|
||||||
if (loader == null)
|
if (loader == null)
|
||||||
loader = (ClassLoader) AccessController.doPrivileged(
|
loader = (ClassLoader) AccessController.doPrivileged(
|
||||||
J2DoPrivHelper.getSystemClassLoaderAction());
|
J2DoPriv5Helper.getSystemClassLoaderAction());
|
||||||
if (loader == null)
|
if (loader == null)
|
||||||
return null;
|
return null;
|
||||||
URL url = (URL) AccessController.doPrivileged(
|
URL url = (URL) AccessController.doPrivileged(
|
||||||
J2DoPrivHelper.getResourceAction(loader, rsrc + ".java"));
|
J2DoPriv5Helper.getResourceAction(loader, rsrc + ".java"));
|
||||||
if (url == null) {
|
if (url == null) {
|
||||||
url = (URL) AccessController.doPrivileged(
|
url = (URL) AccessController.doPrivileged(
|
||||||
J2DoPrivHelper.getResourceAction(loader, rsrc + ".class"));
|
J2DoPriv5Helper.getResourceAction(loader, rsrc + ".class"));
|
||||||
if (url == null)
|
if (url == null)
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -764,10 +764,10 @@ public class AnnotationPersistenceMetaDataParser
|
||||||
meta.setDetachedState(detached.fieldName());
|
meta.setDetachedState(detached.fieldName());
|
||||||
} else {
|
} else {
|
||||||
Field[] fields = (Field[]) AccessController.doPrivileged(
|
Field[] fields = (Field[]) AccessController.doPrivileged(
|
||||||
J2DoPrivHelper.getDeclaredFieldsAction(
|
J2DoPriv5Helper.getDeclaredFieldsAction(
|
||||||
meta.getDescribedType()));
|
meta.getDescribedType()));
|
||||||
for (int i = 0; i < fields.length; i++)
|
for (int i = 0; i < fields.length; i++)
|
||||||
if (((Boolean) AccessController.doPrivileged(J2DoPrivHelper
|
if (((Boolean) AccessController.doPrivileged(J2DoPriv5Helper
|
||||||
.isAnnotationPresentAction(fields[i], DetachedState.class)))
|
.isAnnotationPresentAction(fields[i], DetachedState.class)))
|
||||||
.booleanValue())
|
.booleanValue())
|
||||||
meta.setDetachedState(fields[i].getName());
|
meta.setDetachedState(fields[i].getName());
|
||||||
|
@ -808,7 +808,7 @@ public class AnnotationPersistenceMetaDataParser
|
||||||
Set<MethodKey> seen = new HashSet<MethodKey>();
|
Set<MethodKey> seen = new HashSet<MethodKey>();
|
||||||
do {
|
do {
|
||||||
for (Method m : (Method[]) AccessController.doPrivileged(
|
for (Method m : (Method[]) AccessController.doPrivileged(
|
||||||
J2DoPrivHelper.getDeclaredMethodsAction(sup))) {
|
J2DoPriv5Helper.getDeclaredMethodsAction(sup))) {
|
||||||
mods = m.getModifiers();
|
mods = m.getModifiers();
|
||||||
if (Modifier.isStatic(mods) || Modifier.isFinal(mods) ||
|
if (Modifier.isStatic(mods) || Modifier.isFinal(mods) ||
|
||||||
Object.class.equals(m.getDeclaringClass()))
|
Object.class.equals(m.getDeclaringClass()))
|
||||||
|
@ -826,7 +826,8 @@ public class AnnotationPersistenceMetaDataParser
|
||||||
MetaDataDefaults def = repos.getMetaDataFactory().getDefaults();
|
MetaDataDefaults def = repos.getMetaDataFactory().getDefaults();
|
||||||
for (Method m : methods) {
|
for (Method m : methods) {
|
||||||
for (Annotation anno : (Annotation[]) AccessController
|
for (Annotation anno : (Annotation[]) AccessController
|
||||||
.doPrivileged(J2DoPrivHelper.getDeclaredAnnotationsAction(m))) {
|
.doPrivileged(J2DoPriv5Helper
|
||||||
|
.getDeclaredAnnotationsAction(m))) {
|
||||||
MetaDataTag tag = _tags.get(anno.annotationType());
|
MetaDataTag tag = _tags.get(anno.annotationType());
|
||||||
if (tag == null)
|
if (tag == null)
|
||||||
continue;
|
continue;
|
||||||
|
@ -964,7 +965,7 @@ public class AnnotationPersistenceMetaDataParser
|
||||||
fmd.setExplicit(true);
|
fmd.setExplicit(true);
|
||||||
|
|
||||||
AnnotatedElement el = (AnnotatedElement) member;
|
AnnotatedElement el = (AnnotatedElement) member;
|
||||||
boolean lob = ((Boolean) AccessController.doPrivileged(J2DoPrivHelper
|
boolean lob = ((Boolean) AccessController.doPrivileged(J2DoPriv5Helper
|
||||||
.isAnnotationPresentAction(el, Lob.class))).booleanValue();
|
.isAnnotationPresentAction(el, Lob.class))).booleanValue();
|
||||||
if (isMetaDataMode()) {
|
if (isMetaDataMode()) {
|
||||||
switch (pstrat) {
|
switch (pstrat) {
|
||||||
|
|
|
@ -27,7 +27,7 @@ import java.security.AccessController;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.apache.openjpa.conf.OpenJPAConfiguration;
|
import org.apache.openjpa.conf.OpenJPAConfiguration;
|
||||||
import org.apache.openjpa.lib.log.Log;
|
import org.apache.openjpa.lib.log.Log;
|
||||||
import org.apache.openjpa.lib.util.J2DoPrivHelper;
|
import org.apache.openjpa.lib.util.J2DoPriv5Helper;
|
||||||
import org.apache.openjpa.lib.util.Localizer;
|
import org.apache.openjpa.lib.util.Localizer;
|
||||||
import org.apache.openjpa.meta.DelegatingMetaDataFactory;
|
import org.apache.openjpa.meta.DelegatingMetaDataFactory;
|
||||||
import org.apache.openjpa.meta.FieldMetaData;
|
import org.apache.openjpa.meta.FieldMetaData;
|
||||||
|
@ -173,10 +173,10 @@ public class AnnotationPersistenceXMLMetaDataParser {
|
||||||
private XMLMetaData parseXMLClassAnnotations() {
|
private XMLMetaData parseXMLClassAnnotations() {
|
||||||
// check immediately whether the class has JAXB XML annotations
|
// check immediately whether the class has JAXB XML annotations
|
||||||
if (_cls == null || xmlTypeClass == null
|
if (_cls == null || xmlTypeClass == null
|
||||||
|| !(((Boolean) AccessController.doPrivileged(J2DoPrivHelper
|
|| !(((Boolean) AccessController.doPrivileged(J2DoPriv5Helper
|
||||||
.isAnnotationPresentAction(_cls, xmlTypeClass))).booleanValue()
|
.isAnnotationPresentAction(_cls, xmlTypeClass))).booleanValue()
|
||||||
&& ((Boolean) AccessController
|
&& ((Boolean) AccessController
|
||||||
.doPrivileged(J2DoPrivHelper.isAnnotationPresentAction(_cls,
|
.doPrivileged(J2DoPriv5Helper.isAnnotationPresentAction(_cls,
|
||||||
xmlRootElementClass))).booleanValue()))
|
xmlRootElementClass))).booleanValue()))
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
|
@ -225,7 +225,7 @@ public class AnnotationPersistenceXMLMetaDataParser {
|
||||||
Class superclass = cls.getSuperclass();
|
Class superclass = cls.getSuperclass();
|
||||||
|
|
||||||
// handle inheritance at sub-element level
|
// handle inheritance at sub-element level
|
||||||
if (((Boolean) AccessController.doPrivileged(J2DoPrivHelper
|
if (((Boolean) AccessController.doPrivileged(J2DoPriv5Helper
|
||||||
.isAnnotationPresentAction(superclass, xmlTypeClass)))
|
.isAnnotationPresentAction(superclass, xmlTypeClass)))
|
||||||
.booleanValue())
|
.booleanValue())
|
||||||
populateFromReflection(superclass, meta);
|
populateFromReflection(superclass, meta);
|
||||||
|
@ -247,7 +247,7 @@ public class AnnotationPersistenceXMLMetaDataParser {
|
||||||
// avoid JAXB XML bind default name
|
// avoid JAXB XML bind default name
|
||||||
if (StringUtils.equals(XMLMetaData.defaultName, xmlname))
|
if (StringUtils.equals(XMLMetaData.defaultName, xmlname))
|
||||||
xmlname = member.getName();
|
xmlname = member.getName();
|
||||||
if (((Boolean) AccessController.doPrivileged(J2DoPrivHelper
|
if (((Boolean) AccessController.doPrivileged(J2DoPriv5Helper
|
||||||
.isAnnotationPresentAction(((Field) member).getType(),
|
.isAnnotationPresentAction(((Field) member).getType(),
|
||||||
xmlTypeClass))).booleanValue()) {
|
xmlTypeClass))).booleanValue()) {
|
||||||
field = _repos.addXMLMetaData(((Field) member).getType()
|
field = _repos.addXMLMetaData(((Field) member).getType()
|
||||||
|
|
|
@ -48,7 +48,7 @@ import javax.persistence.PreUpdate;
|
||||||
import javax.persistence.Transient;
|
import javax.persistence.Transient;
|
||||||
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.apache.openjpa.lib.util.J2DoPrivHelper;
|
import org.apache.openjpa.lib.util.J2DoPriv5Helper;
|
||||||
import org.apache.openjpa.lib.util.Localizer;
|
import org.apache.openjpa.lib.util.Localizer;
|
||||||
import org.apache.openjpa.lib.log.Log;
|
import org.apache.openjpa.lib.log.Log;
|
||||||
import org.apache.openjpa.meta.AbstractMetaDataDefaults;
|
import org.apache.openjpa.meta.AbstractMetaDataDefaults;
|
||||||
|
@ -116,7 +116,7 @@ public class PersistenceMetaDataDefaults
|
||||||
if (member == null)
|
if (member == null)
|
||||||
return null;
|
return null;
|
||||||
AnnotatedElement el = (AnnotatedElement) member;
|
AnnotatedElement el = (AnnotatedElement) member;
|
||||||
if (((Boolean) AccessController.doPrivileged(J2DoPrivHelper
|
if (((Boolean) AccessController.doPrivileged(J2DoPriv5Helper
|
||||||
.isAnnotationPresentAction(el, Transient.class))).booleanValue())
|
.isAnnotationPresentAction(el, Transient.class))).booleanValue())
|
||||||
return TRANSIENT;
|
return TRANSIENT;
|
||||||
if (fmd != null
|
if (fmd != null
|
||||||
|
@ -183,7 +183,7 @@ public class PersistenceMetaDataDefaults
|
||||||
}
|
}
|
||||||
|
|
||||||
//### EJB3: what if defined in XML?
|
//### EJB3: what if defined in XML?
|
||||||
if (((Boolean) AccessController.doPrivileged(J2DoPrivHelper
|
if (((Boolean) AccessController.doPrivileged(J2DoPriv5Helper
|
||||||
.isAnnotationPresentAction(type, Embeddable.class))).booleanValue())
|
.isAnnotationPresentAction(type, Embeddable.class))).booleanValue())
|
||||||
return EMBEDDED;
|
return EMBEDDED;
|
||||||
if (Serializable.class.isAssignableFrom(type))
|
if (Serializable.class.isAssignableFrom(type))
|
||||||
|
@ -258,10 +258,10 @@ public class PersistenceMetaDataDefaults
|
||||||
|
|
||||||
int access = 0;
|
int access = 0;
|
||||||
if (usesAccess((Field[]) AccessController.doPrivileged(
|
if (usesAccess((Field[]) AccessController.doPrivileged(
|
||||||
J2DoPrivHelper.getDeclaredFieldsAction(cls))))
|
J2DoPriv5Helper.getDeclaredFieldsAction(cls))))
|
||||||
access |= ClassMetaData.ACCESS_FIELD;
|
access |= ClassMetaData.ACCESS_FIELD;
|
||||||
if (usesAccess((Method[]) AccessController.doPrivileged(
|
if (usesAccess((Method[]) AccessController.doPrivileged(
|
||||||
J2DoPrivHelper.getDeclaredMethodsAction(cls))))
|
J2DoPriv5Helper.getDeclaredMethodsAction(cls))))
|
||||||
access |= ClassMetaData.ACCESS_PROPERTY;
|
access |= ClassMetaData.ACCESS_PROPERTY;
|
||||||
return (access == 0) ? getAccessType(cls.getSuperclass()) : access;
|
return (access == 0) ? getAccessType(cls.getSuperclass()) : access;
|
||||||
}
|
}
|
||||||
|
@ -273,7 +273,7 @@ public class PersistenceMetaDataDefaults
|
||||||
Annotation[] annos;
|
Annotation[] annos;
|
||||||
String name;
|
String name;
|
||||||
for (int i = 0; i < members.length; i++) {
|
for (int i = 0; i < members.length; i++) {
|
||||||
annos = (Annotation[]) AccessController.doPrivileged(J2DoPrivHelper
|
annos = (Annotation[]) AccessController.doPrivileged(J2DoPriv5Helper
|
||||||
.getAnnotationsAction(members[i]));
|
.getAnnotationsAction(members[i]));
|
||||||
for (int j = 0; j < annos.length; j++) {
|
for (int j = 0; j < annos.length; j++) {
|
||||||
name = annos[j].annotationType().getName();
|
name = annos[j].annotationType().getName();
|
||||||
|
@ -296,7 +296,7 @@ public class PersistenceMetaDataDefaults
|
||||||
try {
|
try {
|
||||||
// check for setters for methods
|
// check for setters for methods
|
||||||
Method setter = (Method) AccessController.doPrivileged(
|
Method setter = (Method) AccessController.doPrivileged(
|
||||||
J2DoPrivHelper.getDeclaredMethodAction(
|
J2DoPriv5Helper.getDeclaredMethodAction(
|
||||||
meta.getDescribedType(), "set" +
|
meta.getDescribedType(), "set" +
|
||||||
StringUtils.capitalize(name), new Class[] {
|
StringUtils.capitalize(name), new Class[] {
|
||||||
((Method) member).getReturnType() }));
|
((Method) member).getReturnType() }));
|
||||||
|
@ -320,7 +320,7 @@ public class PersistenceMetaDataDefaults
|
||||||
|
|
||||||
private boolean isAnnotatedTransient(Member member) {
|
private boolean isAnnotatedTransient(Member member) {
|
||||||
return member instanceof AnnotatedElement
|
return member instanceof AnnotatedElement
|
||||||
&& ((Boolean) AccessController.doPrivileged(J2DoPrivHelper
|
&& ((Boolean) AccessController.doPrivileged(J2DoPriv5Helper
|
||||||
.isAnnotationPresentAction(((AnnotatedElement) member),
|
.isAnnotationPresentAction(((AnnotatedElement) member),
|
||||||
Transient.class))).booleanValue();
|
Transient.class))).booleanValue();
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,7 +46,7 @@ import org.apache.openjpa.lib.meta.ClassAnnotationMetaDataFilter;
|
||||||
import org.apache.openjpa.lib.meta.ClassArgParser;
|
import org.apache.openjpa.lib.meta.ClassArgParser;
|
||||||
import org.apache.openjpa.lib.meta.MetaDataFilter;
|
import org.apache.openjpa.lib.meta.MetaDataFilter;
|
||||||
import org.apache.openjpa.lib.meta.MetaDataParser;
|
import org.apache.openjpa.lib.meta.MetaDataParser;
|
||||||
import org.apache.openjpa.lib.util.J2DoPrivHelper;
|
import org.apache.openjpa.lib.util.J2DoPriv5Helper;
|
||||||
import org.apache.openjpa.lib.util.Localizer;
|
import org.apache.openjpa.lib.util.Localizer;
|
||||||
import org.apache.openjpa.lib.util.Options;
|
import org.apache.openjpa.lib.util.Options;
|
||||||
import org.apache.openjpa.meta.AbstractCFMetaDataFactory;
|
import org.apache.openjpa.meta.AbstractCFMetaDataFactory;
|
||||||
|
@ -293,24 +293,24 @@ public class PersistenceMetaDataFactory
|
||||||
return null;
|
return null;
|
||||||
Collection classes = repos.loadPersistentTypes(false, loader);
|
Collection classes = repos.loadPersistentTypes(false, loader);
|
||||||
for (Class cls : (Collection<Class>) classes) {
|
for (Class cls : (Collection<Class>) classes) {
|
||||||
if (((Boolean) AccessController.doPrivileged(J2DoPrivHelper
|
if (((Boolean) AccessController.doPrivileged(J2DoPriv5Helper
|
||||||
.isAnnotationPresentAction(cls, NamedQuery.class)))
|
.isAnnotationPresentAction(cls, NamedQuery.class)))
|
||||||
.booleanValue() && hasNamedQuery
|
.booleanValue() && hasNamedQuery
|
||||||
(queryName, (NamedQuery) cls.getAnnotation(NamedQuery.class)))
|
(queryName, (NamedQuery) cls.getAnnotation(NamedQuery.class)))
|
||||||
return cls;
|
return cls;
|
||||||
if (((Boolean) AccessController.doPrivileged(J2DoPrivHelper
|
if (((Boolean) AccessController.doPrivileged(J2DoPriv5Helper
|
||||||
.isAnnotationPresentAction(cls, NamedQueries.class)))
|
.isAnnotationPresentAction(cls, NamedQueries.class)))
|
||||||
.booleanValue() &&
|
.booleanValue() &&
|
||||||
hasNamedQuery(queryName, ((NamedQueries) cls.
|
hasNamedQuery(queryName, ((NamedQueries) cls.
|
||||||
getAnnotation(NamedQueries.class)).value()))
|
getAnnotation(NamedQueries.class)).value()))
|
||||||
return cls;
|
return cls;
|
||||||
if (((Boolean) AccessController.doPrivileged(J2DoPrivHelper
|
if (((Boolean) AccessController.doPrivileged(J2DoPriv5Helper
|
||||||
.isAnnotationPresentAction(cls, NamedNativeQuery.class)))
|
.isAnnotationPresentAction(cls, NamedNativeQuery.class)))
|
||||||
.booleanValue() &&
|
.booleanValue() &&
|
||||||
hasNamedNativeQuery(queryName, (NamedNativeQuery) cls.
|
hasNamedNativeQuery(queryName, (NamedNativeQuery) cls.
|
||||||
getAnnotation(NamedNativeQuery.class)))
|
getAnnotation(NamedNativeQuery.class)))
|
||||||
return cls;
|
return cls;
|
||||||
if (((Boolean) AccessController.doPrivileged(J2DoPrivHelper
|
if (((Boolean) AccessController.doPrivileged(J2DoPriv5Helper
|
||||||
.isAnnotationPresentAction(cls, NamedNativeQueries.class)))
|
.isAnnotationPresentAction(cls, NamedNativeQueries.class)))
|
||||||
.booleanValue() &&
|
.booleanValue() &&
|
||||||
hasNamedNativeQuery(queryName, ((NamedNativeQueries) cls.
|
hasNamedNativeQuery(queryName, ((NamedNativeQueries) cls.
|
||||||
|
@ -329,14 +329,14 @@ public class PersistenceMetaDataFactory
|
||||||
Collection classes = repos.loadPersistentTypes(false, loader);
|
Collection classes = repos.loadPersistentTypes(false, loader);
|
||||||
for (Class cls : (Collection<Class>) classes) {
|
for (Class cls : (Collection<Class>) classes) {
|
||||||
|
|
||||||
if (((Boolean) AccessController.doPrivileged(J2DoPrivHelper
|
if (((Boolean) AccessController.doPrivileged(J2DoPriv5Helper
|
||||||
.isAnnotationPresentAction(cls, SqlResultSetMapping.class)))
|
.isAnnotationPresentAction(cls, SqlResultSetMapping.class)))
|
||||||
.booleanValue() &&
|
.booleanValue() &&
|
||||||
hasRSMapping(rsMappingName, (SqlResultSetMapping) cls.
|
hasRSMapping(rsMappingName, (SqlResultSetMapping) cls.
|
||||||
getAnnotation(SqlResultSetMapping.class)))
|
getAnnotation(SqlResultSetMapping.class)))
|
||||||
return cls;
|
return cls;
|
||||||
|
|
||||||
if (((Boolean) AccessController.doPrivileged(J2DoPrivHelper
|
if (((Boolean) AccessController.doPrivileged(J2DoPriv5Helper
|
||||||
.isAnnotationPresentAction(cls, SqlResultSetMappings.class)))
|
.isAnnotationPresentAction(cls, SqlResultSetMappings.class)))
|
||||||
.booleanValue() &&
|
.booleanValue() &&
|
||||||
hasRSMapping(rsMappingName, ((SqlResultSetMappings) cls.
|
hasRSMapping(rsMappingName, ((SqlResultSetMappings) cls.
|
||||||
|
@ -458,11 +458,11 @@ public class PersistenceMetaDataFactory
|
||||||
ClassLoader loader = repos.getConfiguration().
|
ClassLoader loader = repos.getConfiguration().
|
||||||
getClassResolverInstance().getClassLoader(getClass(), null);
|
getClassResolverInstance().getClassLoader(getClass(), null);
|
||||||
URL rsrc = (URL) AccessController.doPrivileged(
|
URL rsrc = (URL) AccessController.doPrivileged(
|
||||||
J2DoPrivHelper.getResourceAction(loader, "META-INF/orm.xml"));
|
J2DoPriv5Helper.getResourceAction(loader, "META-INF/orm.xml"));
|
||||||
if (rsrc != null) {
|
if (rsrc != null) {
|
||||||
File file = new File(rsrc.getFile());
|
File file = new File(rsrc.getFile());
|
||||||
if (((Boolean) AccessController.doPrivileged(
|
if (((Boolean) AccessController.doPrivileged(
|
||||||
J2DoPrivHelper.existsAction(file))).booleanValue())
|
J2DoPriv5Helper.existsAction(file))).booleanValue())
|
||||||
return file;
|
return file;
|
||||||
}
|
}
|
||||||
return new File("orm.xml");
|
return new File("orm.xml");
|
||||||
|
|
1
pom.xml
1
pom.xml
|
@ -121,6 +121,7 @@
|
||||||
<jdk>1.5</jdk>
|
<jdk>1.5</jdk>
|
||||||
</activation>
|
</activation>
|
||||||
<modules>
|
<modules>
|
||||||
|
<module>openjpa-lib-5</module>
|
||||||
<module>openjpa-persistence</module>
|
<module>openjpa-persistence</module>
|
||||||
<module>openjpa-persistence-jdbc</module>
|
<module>openjpa-persistence-jdbc</module>
|
||||||
<module>openjpa-kernel-5</module>
|
<module>openjpa-kernel-5</module>
|
||||||
|
|
Loading…
Reference in New Issue