Author: jeff.yuchang
Date: 2009-11-26 10:48:32 -0500 (Thu, 26 Nov 2009)
New Revision: 339
Added:
branches/ODE/ODE-1.x-jpa/dao-jpa-hibernate/src/main/java/org/apache/ode/dao/jpa/hibernate/
branches/ODE/ODE-1.x-jpa/dao-jpa-hibernate/src/main/java/org/apache/ode/dao/jpa/hibernate/HibernateDaoOperator.java
Removed:
branches/ODE/ODE-1.x-jpa/dao-jpa-hibernate/src/main/java/org/apache/ode/dao/jpa/openjpa/
Modified:
branches/ODE/ODE-1.x-jpa/dao-jpa/src/main/java/org/apache/ode/dao/jpa/JPADaoOperator.java
branches/ODE/ODE-1.x-jpa/dao-jpa/src/main/java/org/apache/ode/dao/jpa/JPADaoOperatorFactory.java
Log:
* rename the packagename and add the impl for daoOperatorFactory.
next step would be to use hibernate generate the ddl.
Modified:
branches/ODE/ODE-1.x-jpa/dao-jpa/src/main/java/org/apache/ode/dao/jpa/JPADaoOperator.java
===================================================================
---
branches/ODE/ODE-1.x-jpa/dao-jpa/src/main/java/org/apache/ode/dao/jpa/JPADaoOperator.java 2009-11-26
15:09:40 UTC (rev 338)
+++
branches/ODE/ODE-1.x-jpa/dao-jpa/src/main/java/org/apache/ode/dao/jpa/JPADaoOperator.java 2009-11-26
15:48:32 UTC (rev 339)
@@ -8,10 +8,8 @@
import javax.sql.DataSource;
import javax.transaction.TransactionManager;
-import org.apache.ode.bpel.dao.BpelDAOConnection;
-
/**
- * These is interfaces that will include the methods that will be used in JPA DAO,
+ * this is interface that will include the methods that will be used in JPA DAO,
* But the implementation should be different from various JPA vendor, like OpenJPA,
Hibernate etc.
*
* @author Jeff Yu
Modified:
branches/ODE/ODE-1.x-jpa/dao-jpa/src/main/java/org/apache/ode/dao/jpa/JPADaoOperatorFactory.java
===================================================================
---
branches/ODE/ODE-1.x-jpa/dao-jpa/src/main/java/org/apache/ode/dao/jpa/JPADaoOperatorFactory.java 2009-11-26
15:09:40 UTC (rev 338)
+++
branches/ODE/ODE-1.x-jpa/dao-jpa/src/main/java/org/apache/ode/dao/jpa/JPADaoOperatorFactory.java 2009-11-26
15:48:32 UTC (rev 339)
@@ -3,18 +3,60 @@
*/
package org.apache.ode.dao.jpa;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
/**
*
+ * This will look up the properties from bpel.properties file,
+ * the property would be like :
jpa.dao.operator=org.apache.ode.dao.jpa.hibernate.HibernateDaoOperator
+ *
* @author Jeff Yu
*
*/
public class JPADaoOperatorFactory {
- private JPADaoOperatorFactory(){
+ public static final String DAO_OPERATOR = "jpa.dao.operator";
+
+ private static final Log log = LogFactory.getLog(JPADaoOperatorFactory.class);
+
+ private static JPADaoOperator operator;
+
+ private JPADaoOperatorFactory(){
+
}
+ private static void createJPADaoOperator(){
+ Properties props = new Properties();
+ InputStream
is=JPADaoOperatorFactory.class.getClassLoader().getResourceAsStream("bpel.properties");
+ String daoOperatorClass =
"org.apache.ode.dao.jpa.openjpa.OpenJPADaoOperator";
+ try {
+ props.load(is);
+ daoOperatorClass = props.getProperty(DAO_OPERATOR);
+ } catch (IOException e) {
+ log.error("error in finding the bpel.properties file", e);
+ }
+
+ log.debug("The jpa.dao.operator class is [" + daoOperatorClass +
"]");
+
+ try {
+ operator = (JPADaoOperator) Class.forName(daoOperatorClass).newInstance();
+ } catch (Exception e) {
+ log.error("exception in create instance for " + daoOperatorClass, e);
+ throw new RuntimeException(e);
+ }
+
+ }
+
public static JPADaoOperator getJPADaoOperator() {
- return null;
+ if (operator == null) {
+ createJPADaoOperator();
+ }
+ return operator;
}
}
Added:
branches/ODE/ODE-1.x-jpa/dao-jpa-hibernate/src/main/java/org/apache/ode/dao/jpa/hibernate/HibernateDaoOperator.java
===================================================================
---
branches/ODE/ODE-1.x-jpa/dao-jpa-hibernate/src/main/java/org/apache/ode/dao/jpa/hibernate/HibernateDaoOperator.java
(rev 0)
+++
branches/ODE/ODE-1.x-jpa/dao-jpa-hibernate/src/main/java/org/apache/ode/dao/jpa/hibernate/HibernateDaoOperator.java 2009-11-26
15:48:32 UTC (rev 339)
@@ -0,0 +1,65 @@
+/*
+ * 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.ode.dao.jpa.hibernate;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import javax.persistence.EntityManager;
+import javax.persistence.Persistence;
+import javax.persistence.Query;
+import javax.sql.DataSource;
+import javax.transaction.TransactionManager;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.ode.dao.jpa.JPADaoOperator;
+
+/**
+ *
+ * @author Jeff Yu
+ */
+public class HibernateDaoOperator implements JPADaoOperator {
+
+ private static final Log log = LogFactory.getLog(HibernateDaoOperator.class);
+
+ private static EntityManager em;
+
+ public EntityManager getEM() {
+ if (em == null) {
+ em =
Persistence.createEntityManagerFactory("ode-dao").createEntityManager();
+ }
+ return em;
+ }
+
+ public <T> void batchUpdateByIds(Iterator<T> ids, Query query, String
parameterName) {
+ //TODO
+ }
+
+ public Map<String, Object> getInitializeProperties(DataSource ds, boolean
createDatamodel, TransactionManager tx) {
+ HashMap<String, Object> propMap = new HashMap<String,Object>();
+ //TODO
+ return propMap;
+ }
+
+ public void setBatchSize(Query query, int limit) {
+ //TODO
+ }
+}
\ No newline at end of file