Author: dblevins
Date: Tue Sep 25 19:20:38 2007
New Revision: 579429
URL: http://svn.apache.org/viewvc?rev=579429&view=rev
Log:
Improved the logging for when someone attempts to use JPA (OpenJPA usually)
with no javaagent installed
Added:
openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/assembler/classic/Messages.properties
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java
openejb/trunk/openejb3/container/openejb-javaagent/src/main/java/org/apache/openejb/javaagent/Agent.java
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=579429&r1=579428&r2=579429&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
Tue Sep 25 19:20:38 2007
@@ -91,7 +91,7 @@
public class Assembler extends AssemblerTool implements
org.apache.openejb.spi.Assembler {
- public static final Logger logger =
Logger.getInstance(LogCategory.OPENEJB_STARTUP,
Assembler.class.getPackage().getName());
+ public static final Logger logger =
Logger.getInstance(LogCategory.OPENEJB_STARTUP, Assembler.class);
private final CoreContainerSystem containerSystem;
private final PersistenceClassLoaderHandler persistenceClassLoaderHandler;
@@ -1007,6 +1007,8 @@
Instrumentation instrumentation = Agent.getInstrumentation();
if (instrumentation != null) {
instrumentation.addTransformer(classFileTransformer);
+ } else {
+ logger.error("assembler.noAgent");
}
}
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java?rev=579429&r1=579428&r2=579429&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java
Tue Sep 25 19:20:38 2007
@@ -28,8 +28,13 @@
import org.apache.openejb.persistence.PersistenceUnitInfoImpl;
import org.apache.openejb.spi.ContainerSystem;
import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.util.Logger;
+import org.apache.openejb.util.LogCategory;
public class PersistenceBuilder {
+
+ public static final Logger logger =
Logger.getInstance(LogCategory.OPENEJB_STARTUP, PersistenceBuilder.class);
+
public static final String PROVIDER_PROP = "javax.persistence.provider";
public static final String TRANSACTIONTYPE_PROP =
"javax.persistence.transactionType";
@@ -154,6 +159,8 @@
}
Class clazz = classLoader.loadClass(persistenceProviderClassName);
PersistenceProvider persistenceProvider = (PersistenceProvider)
clazz.newInstance();
+
+ logger.info("assembler.buildingPersistenceUnit",
unitInfo.getPersistenceUnitName(), unitInfo.getPersistenceProviderClassName(),
unitInfo.getPersistenceUnitRootUrl(), unitInfo.getTransactionType());
// Create entity manager factory
EntityManagerFactory emf =
persistenceProvider.createContainerEntityManagerFactory(unitInfo, new
HashMap());
Added:
openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/assembler/classic/Messages.properties
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/assembler/classic/Messages.properties?rev=579429&view=auto
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/assembler/classic/Messages.properties
(added)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/assembler/classic/Messages.properties
Tue Sep 25 19:20:38 2007
@@ -0,0 +1,6 @@
+assembler.noAgent = JAVA AGENT NOT INSTALLED. The JPA Persistence Provider
requested installation of a ClassFileTransformer which requires a JavaAgent.
See http://openejb.apache.org/javaagent.html
+
+
+# PersistenceBuilder.java
+# logger.info("assembler.buildingPersistenceUnit",
unitInfo.getPersistenceUnitName(), unitInfo.getPersistenceProviderClassName(),
unitInfo.getPersistenceUnitRootUrl(), unitInfo.getTransactionType());
+assembler.buildingPersistenceUnit = PersistenceUnit(name={0}, provider={1})
Modified:
openejb/trunk/openejb3/container/openejb-javaagent/src/main/java/org/apache/openejb/javaagent/Agent.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-javaagent/src/main/java/org/apache/openejb/javaagent/Agent.java?rev=579429&r1=579428&r2=579429&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-javaagent/src/main/java/org/apache/openejb/javaagent/Agent.java
(original)
+++
openejb/trunk/openejb3/container/openejb-javaagent/src/main/java/org/apache/openejb/javaagent/Agent.java
Tue Sep 25 19:20:38 2007
@@ -56,8 +56,13 @@
private static synchronized void checkInitialization() {
if (!initialized) {
try {
- ClassLoader systemCl = ClassLoader.getSystemClassLoader();
- Class<?> systemAgentClass =
systemCl.loadClass(Agent.class.getName());
+ Class<?> systemAgentClass = null;
+ try {
+ ClassLoader systemCl = ClassLoader.getSystemClassLoader();
+ systemAgentClass =
systemCl.loadClass(Agent.class.getName());
+ } catch (ClassNotFoundException e) {
+ return;
+ }
Field instrumentationField =
systemAgentClass.getDeclaredField("instrumentation");
instrumentationField.setAccessible(true);
@@ -68,8 +73,9 @@
agentArgs = (String) agentArgsField.get(null);
} catch (Exception e) {
new IllegalStateException("Unable to initialize agent",
e).printStackTrace();
+ } finally {
+ initialized = true;
}
- initialized = true;
}
}