You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by me...@apache.org on 2006/11/06 23:55:32 UTC

svn commit: r471917 - in /incubator/tuscany/java/sca/services/persistence/common/src: main/java/org/apache/tuscany/service/persistence/common/ test/java/org/apache/tuscany/service/persistence/common/ test/resources/META-INF/

Author: meerajk
Date: Mon Nov  6 14:55:31 2006
New Revision: 471917

URL: http://svn.apache.org/viewvc?view=rev&rev=471917
Log:
First working version :)

Added:
    incubator/tuscany/java/sca/services/persistence/common/src/test/java/org/apache/tuscany/service/persistence/common/DefaultPersistenceUnitBuilderTestCase.java   (with props)
Modified:
    incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/PersistenceUnitScanner.java
    incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/TuscanyPersistenceUnitInfo.java
    incubator/tuscany/java/sca/services/persistence/common/src/test/java/org/apache/tuscany/service/persistence/common/Department.java
    incubator/tuscany/java/sca/services/persistence/common/src/test/java/org/apache/tuscany/service/persistence/common/Employee.java
    incubator/tuscany/java/sca/services/persistence/common/src/test/resources/META-INF/persistence.xml

Modified: incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/PersistenceUnitScanner.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/PersistenceUnitScanner.java?view=diff&rev=471917&r1=471916&r2=471917
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/PersistenceUnitScanner.java (original)
+++ incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/PersistenceUnitScanner.java Mon Nov  6 14:55:31 2006
@@ -37,6 +37,7 @@
 import javax.xml.xpath.XPathFactory;
 
 import org.w3c.dom.Document;
+import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import org.xml.sax.SAXException;
@@ -83,6 +84,9 @@
                         continue;
                     }
                     
+                    String rootJarUrl = persistenceUnitUrl.toString();
+                    rootJarUrl = rootJarUrl.substring(0, rootJarUrl.lastIndexOf("META-INF"));
+                    
                     String transactionType = getSingleValue(xpath, root, "//persistence-unit/@transaction-type");
                     String provider = getSingleValue(xpath, root, "//persistence-unit/provider");
                     String jtaDsName = getSingleValue(xpath, root, "//persistence-unit/jta-data-source");
@@ -93,9 +97,9 @@
                     List<String> managedClasses = getMultipleValues(xpath, root, "//persistence-unit/class");
                     
                     // TODO load properties
-                    Properties prop = new Properties();
+                    Properties prop = getProperties(xpath, root);
                     
-                    PersistenceUnitInfo info = new TuscanyPersistenceUnitInfo(transactionType, prop, persistenceUnitUrl, unitName, provider, nonJtaDsName, null, mappingFiles, managedClasses, jtaDsName, jarFiles, classLoader, exludeUnlistedClasses);
+                    PersistenceUnitInfo info = new TuscanyPersistenceUnitInfo(transactionType, prop, rootJarUrl, unitName, provider, nonJtaDsName, null, mappingFiles, managedClasses, jtaDsName, jarFiles, classLoader, exludeUnlistedClasses);
                     persistenceUnitInfos.put(unitName, info);
                     return info;
                     
@@ -115,6 +119,22 @@
         
     }
     
+    /*
+     * Extracts additional properties.
+     */
+    private Properties getProperties(XPath xpath, Document root) throws XPathExpressionException {
+        
+        NodeList nodeList = (NodeList) xpath.evaluate("//persistence-unit/properties/property", root, XPathConstants.NODESET);
+        Properties data = new Properties();
+        
+        for(int i = 0;i < nodeList.getLength();i++) {
+            Element property = (Element) nodeList.item(i);
+            data.put(property.getAttribute("name"), property.getAttribute("value"));
+        }
+        
+        return data;
+    }
+
     /*
      * Gets multiple values for the specified expression.
      */

Modified: incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/TuscanyPersistenceUnitInfo.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/TuscanyPersistenceUnitInfo.java?view=diff&rev=471917&r1=471916&r2=471917
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/TuscanyPersistenceUnitInfo.java (original)
+++ incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/TuscanyPersistenceUnitInfo.java Mon Nov  6 14:55:31 2006
@@ -51,7 +51,7 @@
     /**
      * Root JAT URL.
      */
-    private URL rootUrl;
+    private String rootUrl;
     
     /**
      * Persistence unit name.
@@ -131,7 +131,7 @@
      * @param classLoader Classloader.
      * @param unlistedClassesExcluded Whether unlisted classes in the DD are exluded.
      */
-    public TuscanyPersistenceUnitInfo(String transactionType, Properties properties, URL rootUrl, String unitName, String providerClass, String nonJtaDsName, ClassLoader tempClassLoader, List<String> mappingFileNames, List<String> managedClassNames, String jtaDsName, List<String> jarFileUrls, ClassLoader classLoader, boolean unlistedClassesExcluded) {
+    public TuscanyPersistenceUnitInfo(String transactionType, Properties properties, String rootUrl, String unitName, String providerClass, String nonJtaDsName, ClassLoader tempClassLoader, List<String> mappingFileNames, List<String> managedClassNames, String jtaDsName, List<String> jarFileUrls, ClassLoader classLoader, boolean unlistedClassesExcluded) {
         this.transactionType = transactionType;
         this.properties = properties;
         this.rootUrl = rootUrl;
@@ -251,7 +251,11 @@
      * @see javax.persistence.spi.PersistenceUnitInfo#getPersistenceUnitRootUrl()
      */
     public URL getPersistenceUnitRootUrl() {
-        return rootUrl;
+        try {
+            return new URL(rootUrl);
+        } catch(MalformedURLException ex) {
+            throw new TuscanyJpaException(ex);
+        }
     }
 
     /* (non-Javadoc)

Added: incubator/tuscany/java/sca/services/persistence/common/src/test/java/org/apache/tuscany/service/persistence/common/DefaultPersistenceUnitBuilderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/common/src/test/java/org/apache/tuscany/service/persistence/common/DefaultPersistenceUnitBuilderTestCase.java?view=auto&rev=471917
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/common/src/test/java/org/apache/tuscany/service/persistence/common/DefaultPersistenceUnitBuilderTestCase.java (added)
+++ incubator/tuscany/java/sca/services/persistence/common/src/test/java/org/apache/tuscany/service/persistence/common/DefaultPersistenceUnitBuilderTestCase.java Mon Nov  6 14:55:31 2006
@@ -0,0 +1,11 @@
+package org.apache.tuscany.service.persistence.common;
+
+import junit.framework.TestCase;
+
+public class DefaultPersistenceUnitBuilderTestCase extends TestCase {
+
+    public void testNewEntityManagerFactory() {
+        new DefaultPersistenceUnitBuilder().newEntityManagerFactory("test", getClass().getClassLoader());
+    }
+
+}

Propchange: incubator/tuscany/java/sca/services/persistence/common/src/test/java/org/apache/tuscany/service/persistence/common/DefaultPersistenceUnitBuilderTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/services/persistence/common/src/test/java/org/apache/tuscany/service/persistence/common/DefaultPersistenceUnitBuilderTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/services/persistence/common/src/test/java/org/apache/tuscany/service/persistence/common/Department.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/common/src/test/java/org/apache/tuscany/service/persistence/common/Department.java?view=diff&rev=471917&r1=471916&r2=471917
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/common/src/test/java/org/apache/tuscany/service/persistence/common/Department.java (original)
+++ incubator/tuscany/java/sca/services/persistence/common/src/test/java/org/apache/tuscany/service/persistence/common/Department.java Mon Nov  6 14:55:31 2006
@@ -19,8 +19,12 @@
 package org.apache.tuscany.service.persistence.common;
 
 import javax.persistence.Entity;
+import javax.persistence.Id;
 
 @Entity
 public class Department {
+    
+    @Id
+    private Long id;
 
 }

Modified: incubator/tuscany/java/sca/services/persistence/common/src/test/java/org/apache/tuscany/service/persistence/common/Employee.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/common/src/test/java/org/apache/tuscany/service/persistence/common/Employee.java?view=diff&rev=471917&r1=471916&r2=471917
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/common/src/test/java/org/apache/tuscany/service/persistence/common/Employee.java (original)
+++ incubator/tuscany/java/sca/services/persistence/common/src/test/java/org/apache/tuscany/service/persistence/common/Employee.java Mon Nov  6 14:55:31 2006
@@ -19,8 +19,12 @@
 package org.apache.tuscany.service.persistence.common;
 
 import javax.persistence.Entity;
+import javax.persistence.Id;
 
 @Entity
 public class Employee {
+    
+    @Id
+    private Long id;
 
 }

Modified: incubator/tuscany/java/sca/services/persistence/common/src/test/resources/META-INF/persistence.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/common/src/test/resources/META-INF/persistence.xml?view=diff&rev=471917&r1=471916&r2=471917
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/common/src/test/resources/META-INF/persistence.xml (original)
+++ incubator/tuscany/java/sca/services/persistence/common/src/test/resources/META-INF/persistence.xml Mon Nov  6 14:55:31 2006
@@ -21,7 +21,7 @@
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
    version="1.0">
-   <persistence-unit name="test" transaction-type="JTA">
+   <persistence-unit name="test" transaction-type="RESOURCE_LOCAL">
       <provider>org.hibernate.ejb.HibernatePersistence</provider>
       <class>org.apache.tuscany.service.persistence.common.Employee</class>
       <class>org.apache.tuscany.service.persistence.common.Department</class>



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org