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