Author: mriou
Date: Mon Jan  8 10:07:43 2007
New Revision: 494135

URL: http://svn.apache.org/viewvc?view=rev&rev=494135
Log:
Added events persistence for JPA.

Added:
    
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/EventDAOImpl.java
Modified:
    
incubator/ode/trunk/dao-jpa-ojpa-derby/src/main/descriptors/persistence.derby.xml
    
incubator/ode/trunk/dao-jpa-ojpa-derby/src/test/resources/META-INF/persistence.xml
    incubator/ode/trunk/dao-jpa-ojpa/src/main/resources/META-INF/persistence.xml
    
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionImpl.java

Modified: 
incubator/ode/trunk/dao-jpa-ojpa-derby/src/main/descriptors/persistence.derby.xml
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-jpa-ojpa-derby/src/main/descriptors/persistence.derby.xml?view=diff&rev=494135&r1=494134&r2=494135
==============================================================================
--- 
incubator/ode/trunk/dao-jpa-ojpa-derby/src/main/descriptors/persistence.derby.xml
 (original)
+++ 
incubator/ode/trunk/dao-jpa-ojpa-derby/src/main/descriptors/persistence.derby.xml
 Mon Jan  8 10:07:43 2007
@@ -1,11 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <persistence xmlns="http://java.sun.com/xml/ns/persistence"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; version="1.0">
-     <persistence-unit name="ode-unit-test-embedded">
+    <persistence-unit name="ode-unit-test-embedded">
         
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
         <class>org.apache.ode.dao.jpa.ActivityRecoveryDAOImpl</class>
         <class>org.apache.ode.dao.jpa.BPELDAOConnectionImpl</class>
         <class>org.apache.ode.dao.jpa.CorrelationSetDAOImpl</class>
         <class>org.apache.ode.dao.jpa.CorrelatorDAOImpl</class>
+        <class>org.apache.ode.dao.jpa.EventDAOImpl</class>
         <class>org.apache.ode.dao.jpa.FaultDAOImpl</class>
         <class>org.apache.ode.dao.jpa.MessageDAOImpl</class>
         <class>org.apache.ode.dao.jpa.MessageExchangeDAOImpl</class>
@@ -18,7 +19,7 @@
         <class>org.apache.ode.store.jpa.ProcessConfDaoImpl</class>
         <class>org.apache.ode.store.jpa.ProcessConfPropertyDaoImpl</class>
         <class>org.apache.ode.store.jpa.DeploymentUnitDaoImpl</class>
-         
+
         <properties>
             <!-- Properties for an embedded Derby connection -->
             <property name="openjpa.ConnectionDriverName" 
value="org.apache.commons.dbcp.BasicDataSource"/>
@@ -27,7 +28,7 @@
             <property name="openjpa.jdbc.SynchronizeMappings" 
value="buildSchema(ForeignKeys=true)"/>
 
             <property name="openjpa.ConnectionProperties"
-                
value="DriverClassName=org.apache.derby.jdbc.EmbeddedDriver,Url=jdbc:derby:target/database/openjpa-test-database;create=true,MaxActive=100,MaxWait=10000,TestOnBorrow=true"/>
+                      
value="DriverClassName=org.apache.derby.jdbc.EmbeddedDriver,Url=jdbc:derby:target/database/openjpa-test-database;create=true,MaxActive=100,MaxWait=10000,TestOnBorrow=true"/>
 
         </properties>
     </persistence-unit>

Modified: 
incubator/ode/trunk/dao-jpa-ojpa-derby/src/test/resources/META-INF/persistence.xml
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-jpa-ojpa-derby/src/test/resources/META-INF/persistence.xml?view=diff&rev=494135&r1=494134&r2=494135
==============================================================================
--- 
incubator/ode/trunk/dao-jpa-ojpa-derby/src/test/resources/META-INF/persistence.xml
 (original)
+++ 
incubator/ode/trunk/dao-jpa-ojpa-derby/src/test/resources/META-INF/persistence.xml
 Mon Jan  8 10:07:43 2007
@@ -1,11 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <persistence xmlns="http://java.sun.com/xml/ns/persistence"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; version="1.0">
-     <persistence-unit name="ode-unit-test-embedded">
+    <persistence-unit name="ode-unit-test-embedded">
         
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
         <class>org.apache.ode.dao.jpa.ActivityRecoveryDAOImpl</class>
         <class>org.apache.ode.dao.jpa.BPELDAOConnectionImpl</class>
         <class>org.apache.ode.dao.jpa.CorrelationSetDAOImpl</class>
         <class>org.apache.ode.dao.jpa.CorrelatorDAOImpl</class>
+        <class>org.apache.ode.dao.jpa.EventDAOImpl</class>
         <class>org.apache.ode.dao.jpa.FaultDAOImpl</class>
         <class>org.apache.ode.dao.jpa.MessageDAOImpl</class>
         <class>org.apache.ode.dao.jpa.MessageExchangeDAOImpl</class>
@@ -30,7 +31,7 @@
             <property name="openjpa.ConnectionURL" 
value="jdbc:derby:target/database/derby/ode-test-db;create=false"/>
             <property name="openjpa.ConnectionUserName" value="SA"/>
             <property name="openjpa.jdbc.DBDictionary" 
value="org.apache.openjpa.jdbc.sql.DerbyDictionary"/>
- 
+
             <!-- Use this property to generate DDL at runtime
             <property name="openjpa.jdbc.SynchronizeMappings" 
value="buildSchema(ForeignKeys=true)"/>
             -->

Modified: 
incubator/ode/trunk/dao-jpa-ojpa/src/main/resources/META-INF/persistence.xml
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-jpa-ojpa/src/main/resources/META-INF/persistence.xml?view=diff&rev=494135&r1=494134&r2=494135
==============================================================================
--- 
incubator/ode/trunk/dao-jpa-ojpa/src/main/resources/META-INF/persistence.xml 
(original)
+++ 
incubator/ode/trunk/dao-jpa-ojpa/src/main/resources/META-INF/persistence.xml 
Mon Jan  8 10:07:43 2007
@@ -12,6 +12,7 @@
         <class>org.apache.ode.dao.jpa.BPELDAOConnectionImpl</class>
         <class>org.apache.ode.dao.jpa.CorrelationSetDAOImpl</class>
         <class>org.apache.ode.dao.jpa.CorrelatorDAOImpl</class>
+        <class>org.apache.ode.dao.jpa.EventDAOImpl</class>
         <class>org.apache.ode.dao.jpa.FaultDAOImpl</class>
         <class>org.apache.ode.dao.jpa.MessageDAOImpl</class>
         <class>org.apache.ode.dao.jpa.MessageExchangeDAOImpl</class>

Modified: 
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionImpl.java?view=diff&rev=494135&r1=494134&r2=494135
==============================================================================
--- 
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionImpl.java
 (original)
+++ 
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionImpl.java
 Mon Jan  8 10:07:43 2007
@@ -24,9 +24,11 @@
 import org.apache.ode.bpel.common.ProcessFilter;
 import org.apache.ode.bpel.dao.*;
 import org.apache.ode.bpel.evt.BpelEvent;
+import org.apache.ode.bpel.evt.ScopeEvent;
 
 import javax.persistence.*;
 import javax.xml.namespace.QName;
+import java.sql.Timestamp;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Date;
@@ -35,149 +37,155 @@
 @Entity
 @Table(name="ODE_ROOT")
 public class BPELDAOConnectionImpl implements BpelDAOConnection {
-       
-       @Transient private EntityManager _em;
 
-       @Id @Column(name="ROOT_ID")
-       private Long _id;
-       
-       
@OneToMany(fetch=FetchType.LAZY,mappedBy="_connection",cascade={CascadeType.ALL})
-       private Collection<ProcessDAOImpl> _processes = new 
ArrayList<ProcessDAOImpl>();
-
-       
@OneToMany(fetch=FetchType.LAZY,mappedBy="_connection",cascade={CascadeType.ALL})
-       private Collection<ProcessInstanceDAOImpl> _instances = new 
ArrayList<ProcessInstanceDAOImpl>();
-
-       
@OneToMany(fetch=FetchType.LAZY,mappedBy="_connection",cascade={CascadeType.ALL})
-       private Collection<MessageExchangeDAOImpl> _messageEx = new 
ArrayList<MessageExchangeDAOImpl>();
-
-       
@OneToMany(fetch=FetchType.LAZY,mappedBy="_connection",cascade={CascadeType.ALL})
-       private Collection<ScopeDAOImpl> _scopes = new 
ArrayList<ScopeDAOImpl>();
-       
-       public BPELDAOConnectionImpl() {}
-       public BPELDAOConnectionImpl(Long id, EntityManager em) {
-               _id = id;
-               _em = em;
-       }
-       
-       public List<BpelEvent> bpelEventQuery(InstanceFilter ifilter,
-                       BpelEventFilter efilter) {
-               // TODO Auto-generated method stub
-               //return null;
-               throw new UnsupportedOperationException();
-               //System.out.println(ifilter.toString());
-               //System.out.println(efilter.toString());
-               //return null;
-       }
-
-       public List<Date> bpelEventTimelineQuery(InstanceFilter ifilter,
-                       BpelEventFilter efilter) {
-               // TODO Auto-generated method stub
-               //return null;
-               throw new UnsupportedOperationException();
-       }
-
-       public void close() {
-               _em = null;
-
-       }
-
-       public MessageExchangeDAO createMessageExchange(char dir) {
-               MessageExchangeDAOImpl ret = new 
MessageExchangeDAOImpl(dir,this);
-               _messageEx.add(ret);
-               return ret;
-       }
-
-       public ProcessDAO createProcess(QName pid, QName type, String guid) {
-               ProcessDAOImpl ret = new ProcessDAOImpl(pid,type,guid,this);
-               
-               _processes.add(ret);
-               return ret;
-       }
-
-       void addInstance(ProcessInstanceDAOImpl inst) {
-               _instances.add(inst);
-       }
-       void addScope(ScopeDAOImpl scope) {
-               _scopes.add(scope);
-       }
-       public Long getID() {
-               return _id;
-       }
-       public void setID(Long id) {
-               _id = id;
-       }
-       
-       public ProcessInstanceDAO getInstance(Long iid) {
-               // TODO: may need a map or DB lookup here for performance
-               for (ProcessInstanceDAO inst : _instances) {
-                       if (inst.getInstanceId().equals(iid) ) return inst;
-               }
-               return null;
-       }
-
-       public MessageExchangeDAO getMessageExchange(String mexid) {
-               // TODO: may need a map or DB lookup here for performance
-               for ( MessageExchangeDAOImpl mex : _messageEx ) {
-                       if ( mex.getMessageExchangeId().equals(mexid)) return 
mex;
-               }
-               return null;
-       }
-
-       public ProcessDAO getProcess(QName processId) {
-               for ( ProcessDAOImpl p : _processes){
-                       if ( p.getProcessId().equals(processId)) return p;
-               }
-               return null;
-       }
-
-       public ScopeDAO getScope(Long siidl) {
-               // TODO: May need a map or DB lookup here for performance
-               for ( ScopeDAOImpl s : _scopes ) {
-                       if ( s.getScopeInstanceId().equals(siidl) ) return s;
-               }
-               return null;
-       }
-
-       public void insertBpelEvent(BpelEvent event, ProcessDAO process,
-                       ProcessInstanceDAO instance) {
-               // TODO Auto-generated method stub
-               //throw new UnsupportedOperationException();
-               //System.out.println(event.toString());
-               //System.out.println(process.toString());
-               //System.out.println(instance.toString());
-       }
+    @Transient private EntityManager _em;
 
-       public Collection<ProcessInstanceDAO> instanceQuery(InstanceFilter 
criteria) {
+    @Id @Column(name="ROOT_ID")
+    private Long _id;
+
+    
@OneToMany(fetch=FetchType.LAZY,mappedBy="_connection",cascade={CascadeType.ALL})
+    private Collection<ProcessDAOImpl> _processes = new 
ArrayList<ProcessDAOImpl>();
+
+    
@OneToMany(fetch=FetchType.LAZY,mappedBy="_connection",cascade={CascadeType.ALL})
+    private Collection<ProcessInstanceDAOImpl> _instances = new 
ArrayList<ProcessInstanceDAOImpl>();
+
+    
@OneToMany(fetch=FetchType.LAZY,mappedBy="_connection",cascade={CascadeType.ALL})
+    private Collection<MessageExchangeDAOImpl> _messageEx = new 
ArrayList<MessageExchangeDAOImpl>();
+
+    
@OneToMany(fetch=FetchType.LAZY,mappedBy="_connection",cascade={CascadeType.ALL})
+    private Collection<ScopeDAOImpl> _scopes = new ArrayList<ScopeDAOImpl>();
+
+    public BPELDAOConnectionImpl() {}
+    public BPELDAOConnectionImpl(Long id, EntityManager em) {
+        _id = id;
+        _em = em;
+    }
+
+    public List<BpelEvent> bpelEventQuery(InstanceFilter ifilter,
+                                          BpelEventFilter efilter) {
+        // TODO Auto-generated method stub
+        //return null;
+        throw new UnsupportedOperationException();
+        //System.out.println(ifilter.toString());
+        //System.out.println(efilter.toString());
+        //return null;
+    }
+
+    public List<Date> bpelEventTimelineQuery(InstanceFilter ifilter,
+                                             BpelEventFilter efilter) {
+        // TODO Auto-generated method stub
+        //return null;
+        throw new UnsupportedOperationException();
+    }
+
+    public void close() {
+        _em = null;
+
+    }
+
+    public MessageExchangeDAO createMessageExchange(char dir) {
+        MessageExchangeDAOImpl ret = new MessageExchangeDAOImpl(dir,this);
+        _messageEx.add(ret);
+        return ret;
+    }
+
+    public ProcessDAO createProcess(QName pid, QName type, String guid) {
+        ProcessDAOImpl ret = new ProcessDAOImpl(pid,type,guid,this);
+
+        _processes.add(ret);
+        return ret;
+    }
+
+    void addInstance(ProcessInstanceDAOImpl inst) {
+        _instances.add(inst);
+    }
+    void addScope(ScopeDAOImpl scope) {
+        _scopes.add(scope);
+    }
+    public Long getID() {
+        return _id;
+    }
+    public void setID(Long id) {
+        _id = id;
+    }
+
+    public ProcessInstanceDAO getInstance(Long iid) {
+        // TODO: may need a map or DB lookup here for performance
+        for (ProcessInstanceDAO inst : _instances) {
+            if (inst.getInstanceId().equals(iid) ) return inst;
+        }
+        return null;
+    }
+
+    public MessageExchangeDAO getMessageExchange(String mexid) {
+        // TODO: may need a map or DB lookup here for performance
+        for ( MessageExchangeDAOImpl mex : _messageEx ) {
+            if ( mex.getMessageExchangeId().equals(mexid)) return mex;
+        }
+        return null;
+    }
+
+    public ProcessDAO getProcess(QName processId) {
+        for ( ProcessDAOImpl p : _processes){
+            if ( p.getProcessId().equals(processId)) return p;
+        }
+        return null;
+    }
+
+    public ScopeDAO getScope(Long siidl) {
+        // TODO: May need a map or DB lookup here for performance
+        for ( ScopeDAOImpl s : _scopes ) {
+            if ( s.getScopeInstanceId().equals(siidl) ) return s;
+        }
+        return null;
+    }
+
+    public void insertBpelEvent(BpelEvent event, ProcessDAO process, 
ProcessInstanceDAO instance) {
+        EventDAOImpl eventDao = new EventDAOImpl();
+        eventDao.setTstamp(new Timestamp(System.currentTimeMillis()));
+        eventDao.setType(BpelEvent.eventName(event));
+        eventDao.setDetail(event.toString());
+        if (process != null)
+            eventDao.setProcess((ProcessDAOImpl) process);
+        if (instance != null)
+            eventDao.setInstance((ProcessInstanceDAOImpl) instance);
+        if (event instanceof ScopeEvent)
+            eventDao.setScopeId(((ScopeEvent) event).getScopeId());
+        eventDao.setEvent(event);
+        _em.persist(eventDao);
+    }
+
+    public Collection<ProcessInstanceDAO> instanceQuery(InstanceFilter 
criteria) {
         // TODO: Implement me
         return new ArrayList<ProcessInstanceDAO>(_instances);
-       }
+    }
 
-       public Collection<ProcessInstanceDAO> instanceQuery(String expression) {
+    public Collection<ProcessInstanceDAO> instanceQuery(String expression) {
         // TODO: Implement me
         return new ArrayList<ProcessInstanceDAO>(_instances);
-       }
+    }
 
-       public Collection<ProcessDAO> processQuery(ProcessFilter criteria) {
+    public Collection<ProcessDAO> processQuery(ProcessFilter criteria) {
         // TODO: Implement me
         return new ArrayList<ProcessDAO>(_processes);
-       }
-       
-       EntityManager getEntityManager() {
-               return _em;
-       }
-       
-       public void setEntityManger(EntityManager em) {
-               _em = em;
-       }
-       
-       void removeProcess(ProcessDAOImpl p) {
-               _processes.remove(p);
-               
-               if ( _em != null ) {
-                       _em.remove(p);
-                       _em.flush();
-               }
-               
-       }
+    }
+
+    EntityManager getEntityManager() {
+        return _em;
+    }
+
+    public void setEntityManger(EntityManager em) {
+        _em = em;
+    }
+
+    void removeProcess(ProcessDAOImpl p) {
+        _processes.remove(p);
+
+        if ( _em != null ) {
+            _em.remove(p);
+            _em.flush();
+        }
+
+    }
 
 }

Added: 
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/EventDAOImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/EventDAOImpl.java?view=auto&rev=494135
==============================================================================
--- 
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/EventDAOImpl.java
 (added)
+++ 
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/EventDAOImpl.java
 Mon Jan  8 10:07:43 2007
@@ -0,0 +1,120 @@
+/*
+ * 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;
+
+import org.apache.ode.bpel.evt.BpelEvent;
+
+import javax.persistence.*;
+import java.sql.Timestamp;
+
+/**
+ * @author Matthieu Riou <mriou at apache dot org>
+ */
[EMAIL PROTECTED]
[EMAIL PROTECTED](name="ODE_EVENT")
+public class EventDAOImpl {
+
+    @Id @Column(name="EVENT_ID")
+       @GeneratedValue(strategy= GenerationType.AUTO)
+       private Long _id;
+    @Basic @Column(name="TSTAMP")
+    private Timestamp _tstamp;
+    @Basic @Column(name="TYPE")
+    private String _type;
+    @Basic @Column(name="DETAIL")
+    private String _detail;
+
+    /** Scope identifier, possibly null. */
+    @Basic @Column(name="SCOPE_ID")
+    private Long _scopeId;
+
+    @ManyToOne(fetch=FetchType.LAZY,cascade={CascadeType.PERSIST})
+       @Column(name="PROCESS_ID")
+    private ProcessDAOImpl _process;
+    @ManyToOne(fetch=FetchType.LAZY,cascade={CascadeType.PERSIST})
+       @Column(name="INSTANCE_ID")
+    private ProcessInstanceDAOImpl _instance;
+    @Lob @Column(name="DATA")
+    private BpelEvent _event;
+
+    public BpelEvent getEvent() {
+        return _event;
+    }
+
+    public void setEvent(BpelEvent event) {
+        _event = event;
+    }
+
+    public String getDetail() {
+        return _detail;
+    }
+
+    public void setDetail(String detail) {
+        _detail = detail;
+    }
+
+    public Long getId() {
+        return _id;
+    }
+
+    public void setId(Long id) {
+        _id = id;
+    }
+
+    public ProcessInstanceDAOImpl getInstance() {
+        return _instance;
+    }
+
+    public void setInstance(ProcessInstanceDAOImpl instance) {
+        _instance = instance;
+    }
+
+    public ProcessDAOImpl getProcess() {
+        return _process;
+    }
+
+    public void setProcess(ProcessDAOImpl process) {
+        _process = process;
+    }
+
+    public Timestamp getTstamp() {
+        return _tstamp;
+    }
+
+    public void setTstamp(Timestamp tstamp) {
+        _tstamp = tstamp;
+    }
+
+    public String getType() {
+        return _type;
+    }
+
+    public void setType(String type) {
+        _type = type;
+    }
+
+    public Long getScopeId() {
+        return _scopeId;
+    }
+
+    public void setScopeId(Long scopeId) {
+        _scopeId = scopeId;
+    }
+}


Reply via email to