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;
         }
     }
 


Reply via email to