Added: ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/bpel/ScopeDAOImpl.java URL: http://svn.apache.org/viewvc/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/bpel/ScopeDAOImpl.java?rev=986561&view=auto ============================================================================== --- ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/bpel/ScopeDAOImpl.java (added) +++ ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/bpel/ScopeDAOImpl.java Wed Aug 18 04:12:49 2010 @@ -0,0 +1,201 @@ +/* + * 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.bpel; + +import org.apache.ode.bpel.evt.BpelEvent; +import org.apache.ode.dao.bpel.CorrelationSetDAO; +import org.apache.ode.dao.bpel.PartnerLinkDAO; +import org.apache.ode.dao.bpel.ProcessInstanceDAO; +import org.apache.ode.dao.bpel.ScopeDAO; +import org.apache.ode.dao.bpel.ScopeStateEnum; +import org.apache.ode.dao.bpel.XmlDataDAO; + +import javax.persistence.Basic; +import javax.persistence.CascadeType; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.NamedQueries; +import javax.persistence.NamedQuery; +import javax.persistence.OneToMany; +import javax.persistence.Query; +import javax.persistence.Table; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +...@entity +...@table(name="ODE_SCOPE") +...@namedqueries({ + @NamedQuery(name="ScopeEvents", query="SELECT se FROM EventDAOImpl as se WHERE se._scopeId = :sid"), + @NamedQuery(name=ScopeDAOImpl.SELECT_SCOPE_IDS_BY_PROCESS, query="select s._scopeInstanceId from ScopeDAOImpl as s where s._processInstance._process = :process"), + @NamedQuery(name=ScopeDAOImpl.SELECT_SCOPE_IDS_BY_INSTANCE, query="select s._scopeInstanceId from ScopeDAOImpl as s where s._processInstance = :instance"), + @NamedQuery(name=ScopeDAOImpl.DELETE_SCOPES_BY_SCOPE_IDS, query="delete from ScopeDAOImpl as s where s._scopeInstanceId in(:ids)") +}) +public class ScopeDAOImpl extends BpelDAO implements ScopeDAO { + public final static String SELECT_SCOPE_IDS_BY_PROCESS = "SELECT_SCOPE_IDS_BY_PROCESS"; + public final static String SELECT_SCOPE_IDS_BY_INSTANCE = "SELECT_SCOPE_IDS_BY_INSTANCE"; + public final static String DELETE_SCOPES_BY_SCOPE_IDS = "DELETE_SCOPES_BY_SCOPE_IDS"; + + @Id @Column(name="SCOPE_ID") + @GeneratedValue(strategy= GenerationType.AUTO) + private Long _scopeInstanceId; + + @Basic @Column(name="MODEL_ID") + private int _modelId; + @Basic @Column(name="SCOPE_NAME") + private String _name; + @Basic @Column(name="SCOPE_STATE") + private String _scopeState; + + @ManyToOne(fetch=FetchType.LAZY,cascade={CascadeType.PERSIST}) + @JoinColumn(name="PARENT_SCOPE_ID") + private ScopeDAOImpl _parentScope; + + @OneToMany(targetEntity=ScopeDAOImpl.class,mappedBy="_parentScope",fetch=FetchType.LAZY,cascade={CascadeType.ALL}) + private Collection<ScopeDAO> _childScopes = new ArrayList<ScopeDAO>(); + @OneToMany(targetEntity=CorrelationSetDAOImpl.class,mappedBy="_scope",fetch=FetchType.LAZY,cascade={CascadeType.ALL}) + private Collection<CorrelationSetDAO> _correlationSets = new ArrayList<CorrelationSetDAO>(); + @OneToMany(targetEntity=PartnerLinkDAOImpl.class,mappedBy="_scope",fetch= FetchType.LAZY,cascade={CascadeType.MERGE, CascadeType.REFRESH, CascadeType.PERSIST}) + private Collection<PartnerLinkDAO> _partnerLinks = new ArrayList<PartnerLinkDAO>(); + @OneToMany(targetEntity=XmlDataDAOImpl.class,mappedBy="_scope",fetch=FetchType.LAZY,cascade={CascadeType.MERGE, CascadeType.REFRESH, CascadeType.PERSIST}) + private Collection<XmlDataDAO> _variables = new ArrayList<XmlDataDAO>(); + @ManyToOne(fetch=FetchType.LAZY,cascade={CascadeType.PERSIST}) @JoinColumn(name="PROCESS_INSTANCE_ID") + private ProcessInstanceDAOImpl _processInstance; + + public ScopeDAOImpl() {} + public ScopeDAOImpl(ScopeDAOImpl parentScope, String name, int scopeModelId, ProcessInstanceDAOImpl pi) { + _parentScope = parentScope; + _name = name; + _modelId = scopeModelId; + _processInstance = pi; + } + + public PartnerLinkDAO createPartnerLink(int plinkModelId, String pLinkName, + String myRole, String partnerRole) { + PartnerLinkDAOImpl pl = new PartnerLinkDAOImpl(plinkModelId, pLinkName, myRole, partnerRole); + pl.setScope(this); + _partnerLinks.add(pl); + return pl; + } + + public Collection<ScopeDAO> getChildScopes() { + return _childScopes; + } + + public CorrelationSetDAO getCorrelationSet(String corrSetName) { + CorrelationSetDAO ret = null; + for (CorrelationSetDAO csElement : _correlationSets) { + if ( csElement.getName().equals(corrSetName)) ret = csElement; + } + + if ( ret == null ) { + // Apparently the caller knows there should be a correlation set + // in here. Create a new set if one does not exist. + // Not sure I understand this implied object creation and why + // an explicit create pattern isn't used ( i.e. similar to + // PartnerLink creation ) + ret = new CorrelationSetDAOImpl(this,corrSetName); + // Persist the new correlation set to generate an ID + getEM().persist(ret); + _correlationSets.add(ret); + } + + return ret; + } + + public Collection<CorrelationSetDAO> getCorrelationSets() { + return _correlationSets; + } + + public int getModelId() { + return _modelId; + } + + public String getName() { + return _name; + } + + public ScopeDAO getParentScope() { + return _parentScope; + } + + public PartnerLinkDAO getPartnerLink(int plinkModelId) { + for (PartnerLinkDAO pLink : getPartnerLinks()) { + if (pLink.getPartnerLinkModelId() == plinkModelId) { + return pLink; + } + } + return null; + } + + public Collection<PartnerLinkDAO> getPartnerLinks() { + return _partnerLinks; + } + + public ProcessInstanceDAO getProcessInstance() { + return _processInstance; + } + + public Long getScopeInstanceId() { + return _scopeInstanceId; + } + + public ScopeStateEnum getState() { + return ScopeStateEnum.valueOf(_scopeState); + } + + public XmlDataDAO getVariable(String varName) { + XmlDataDAO ret = null; + + for (XmlDataDAO xmlElement : _variables) { + if ( xmlElement.getName().equals(varName)) return xmlElement; + } + + ret = new XmlDataDAOImpl(this,varName); + _variables.add(ret); + + return ret; + } + + public Collection<XmlDataDAO> getVariables() { + return _variables; + } + + public List<BpelEvent> listEvents() { + List<BpelEvent> result = new ArrayList<BpelEvent>(); + Query qry = getEM().createNamedQuery("ScopeEvents"); + qry.setParameter("sid", _scopeInstanceId); + for (Object eventDao : qry.getResultList()) { + result.add(((EventDAOImpl)eventDao).getEvent()); + } + return result; + } + + public void setState(ScopeStateEnum state) { + _scopeState = state.toString(); + } + +}
Added: ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/bpel/XmlDataDAOImpl.java URL: http://svn.apache.org/viewvc/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/bpel/XmlDataDAOImpl.java?rev=986561&view=auto ============================================================================== --- ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/bpel/XmlDataDAOImpl.java (added) +++ ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/bpel/XmlDataDAOImpl.java Wed Aug 18 04:12:49 2010 @@ -0,0 +1,166 @@ +/* + * 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.bpel; + +import org.apache.ode.dao.bpel.ScopeDAO; +import org.apache.ode.dao.bpel.XmlDataDAO; +import org.apache.ode.utils.DOMUtils; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.Text; + +import javax.persistence.Basic; +import javax.persistence.CascadeType; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.Lob; +import javax.persistence.ManyToOne; +import javax.persistence.NamedQueries; +import javax.persistence.NamedQuery; +import javax.persistence.OneToMany; +import javax.persistence.Table; +import javax.persistence.Transient; +import java.util.ArrayList; +import java.util.Collection; + +/** + * @author Matthieu Riou <mriou at apache dot org> + */ +...@entity +...@table(name="ODE_XML_DATA") +...@namedqueries({ + @NamedQuery(name=XmlDataDAOImpl.SELECT_XMLDATA_IDS_BY_PROCESS, query="select distinct x._id from XmlDataDAOImpl as x where x._scope._processInstance._process = :process"), + @NamedQuery(name=XmlDataDAOImpl.SELECT_XMLDATA_IDS_BY_INSTANCE, query="select distinct x._id from XmlDataDAOImpl as x where x._scope._processInstance = :instance"), + @NamedQuery(name=XmlDataDAOImpl.DELETE_XMLDATA_BY_SCOPE_IDS, query="delete from XmlDataDAOImpl as x where x._scopeId in(:scopeIds)") +}) +public class XmlDataDAOImpl implements XmlDataDAO { + public final static String SELECT_XMLDATA_IDS_BY_PROCESS = "SELECT_XMLDATA_IDS_BY_PROCESS"; + public final static String SELECT_XMLDATA_IDS_BY_INSTANCE = "SELECT_XMLDATA_IDS_BY_INSTANCE"; + public final static String DELETE_XMLDATA_BY_SCOPE_IDS = "DELETE_XMLDATA_BY_SCOPE_IDS"; + + @Id @Column(name="XML_DATA_ID") + @GeneratedValue(strategy=GenerationType.AUTO) + @SuppressWarnings("unused") + private Long _id; + @Lob @Column(name="DATA") + private String _data; + @Transient + private Node _node; + @Basic @Column(name="IS_SIMPLE_TYPE") + private boolean _isSimpleType; + @Basic @Column(name="NAME") + private String _name; + + @OneToMany(targetEntity=XmlDataProperty.class,mappedBy="_xmlData",fetch=FetchType.EAGER,cascade={CascadeType.ALL}) + private Collection<XmlDataProperty> _props = new ArrayList<XmlDataProperty>(); + + @SuppressWarnings("unused") + @Basic @Column(name="SCOPE_ID", nullable=true, insertable=false, updatable=false) + private Long _scopeId; + @ManyToOne(fetch=FetchType.LAZY,cascade={CascadeType.PERSIST}) @JoinColumn(name="SCOPE_ID") + private ScopeDAOImpl _scope; + + public XmlDataDAOImpl() {} + public XmlDataDAOImpl(ScopeDAOImpl scope, String name){ + _scope = scope; + _name = name; + } + + public Node get() { + if ( _node == null && _data != null ) { + if(_isSimpleType){ + Document d = DOMUtils.newDocument(); + // we create a dummy wrapper element + // prevents some apps from complaining + // when text node is not actual child of document + Element e = d.createElement("text-node-wrapper"); + Text tnode = d.createTextNode(_data); + d.appendChild(e); + e.appendChild(tnode); + _node = tnode; + }else{ + try{ + _node = DOMUtils.stringToDOM(_data); + }catch(Exception e){ + throw new RuntimeException(e); + } + } + } + + return _node; + } + + public String getName() { + return _name; + } + + public String getProperty(String propertyName) { + for (XmlDataProperty prop : _props) { + if (prop.getPropertyKey().equals(propertyName)) return prop.getPropertyValue(); + } + return null; + } + + private XmlDataProperty getPropertyObject(String propertyName) { + for (XmlDataProperty prop : _props) { + if (prop.getPropertyKey().equals(propertyName)) return prop; + } + return null; + } + + public ScopeDAO getScopeDAO() { + return _scope; + } + + public boolean isNull() { + return _data == null; + } + + public void remove() { + + } + + public void set(Node val) { + _node = val; + if ( val instanceof Element ) { + _isSimpleType = false; + _data = DOMUtils.domToString(val); + } else if (_node != null) { + _isSimpleType = true; + _data = _node.getNodeValue(); + } + } + + public void setProperty(String pname, String pvalue) { + XmlDataProperty prop = getPropertyObject(pname); + if (prop == null) { + _props.add(new XmlDataProperty(pname, pvalue, this)); + } else { + prop.setPropertyValue(pvalue); + } + } + +} Added: ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/bpel/XmlDataProperty.java URL: http://svn.apache.org/viewvc/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/bpel/XmlDataProperty.java?rev=986561&view=auto ============================================================================== --- ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/bpel/XmlDataProperty.java (added) +++ ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/bpel/XmlDataProperty.java Wed Aug 18 04:12:49 2010 @@ -0,0 +1,88 @@ +/* + * 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.bpel; + +import javax.persistence.Basic; +import javax.persistence.CascadeType; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.NamedQueries; +import javax.persistence.NamedQuery; +import javax.persistence.Table; + +/** + * @author Matthieu Riou <mriou at apache dot org> + */ +...@entity +...@table(name="ODE_XML_DATA_PROP") +...@namedqueries({ + @NamedQuery(name=XmlDataProperty.DELETE_XML_DATA_PROPERTIES_BY_XML_DATA_IDS, query="delete from XmlDataProperty as p where p._xmlDataId in (:xmlDataIds)") +}) +public class XmlDataProperty { + public final static String DELETE_XML_DATA_PROPERTIES_BY_XML_DATA_IDS = "DELETE_XML_DATA_PROPERTIES_BY_XML_DATA_IDS"; + + @Id @Column(name="ID") + @GeneratedValue(strategy= GenerationType.AUTO) + @SuppressWarnings("unused") + private Long _id; + @Basic @Column(name="PROP_KEY") + private String propertyKey; + @Basic @Column(name="PROP_VALUE") + private String propertyValue; + + @SuppressWarnings("unused") + @Basic @Column(name="XML_DATA_ID", insertable=false, updatable=false, nullable=true) + private Long _xmlDataId; + @ManyToOne(fetch= FetchType.LAZY,cascade={CascadeType.PERSIST}) + @JoinColumn(name="XML_DATA_ID") + @SuppressWarnings("unused") + private XmlDataDAOImpl _xmlData; + + public XmlDataProperty() { + } + public XmlDataProperty(String propertyKey, String propertyValue, XmlDataDAOImpl xmlData) { + this.propertyKey = propertyKey; + this.propertyValue = propertyValue; + this._xmlData = xmlData; + } + + public String getPropertyKey() { + return propertyKey; + } + + public void setPropertyKey(String propertyKey) { + this.propertyKey = propertyKey; + } + + public String getPropertyValue() { + return propertyValue; + } + + public void setPropertyValue(String propertyValue) { + this.propertyValue = propertyValue; + } + +} Added: ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/store/ConfStoreDAO.java URL: http://svn.apache.org/viewvc/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/store/ConfStoreDAO.java?rev=986561&view=auto ============================================================================== --- ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/store/ConfStoreDAO.java (added) +++ ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/store/ConfStoreDAO.java Wed Aug 18 04:12:49 2010 @@ -0,0 +1,36 @@ +/* + * 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.store; + +import javax.persistence.EntityManager; + +/** + * @author Matthieu Riou <mriou at apache dot org> + */ +public class ConfStoreDAO { + + EntityManager getEM() { + return ConfStoreDAOConnectionImpl.getThreadLocal().get().getEntityManager(); + } + + protected void delete() { + getEM().remove(this); + } +} Added: ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/store/ConfStoreDAOConnectionImpl.java URL: http://svn.apache.org/viewvc/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/store/ConfStoreDAOConnectionImpl.java?rev=986561&view=auto ============================================================================== --- ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/store/ConfStoreDAOConnectionImpl.java (added) +++ ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/store/ConfStoreDAOConnectionImpl.java Wed Aug 18 04:12:49 2010 @@ -0,0 +1,102 @@ +/* + * 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.store; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.ode.dao.jpa.JpaConnection; +import org.apache.ode.dao.jpa.JpaOperator; +import org.apache.ode.dao.store.ConfStoreDAOConnection; +import org.apache.ode.dao.store.DeploymentUnitDAO; + +import javax.persistence.EntityManager; +import javax.transaction.TransactionManager; + +import java.util.Collection; +import java.util.Date; +import java.util.List; + +/** + * @author Matthieu Riou <mriou at apache dot org> + */ +public class ConfStoreDAOConnectionImpl extends JpaConnection implements ConfStoreDAOConnection { + + private static Log LOG = LogFactory.getLog(ConfStoreDAOConnectionImpl.class); + + static final ThreadLocal<ConfStoreDAOConnectionImpl> _connections = new ThreadLocal<ConfStoreDAOConnectionImpl>(); + + + public ConfStoreDAOConnectionImpl(EntityManager mgr, TransactionManager txMgr, JpaOperator operator) { + super(mgr, txMgr, operator); + } + + public void close() { + } + + public DeploymentUnitDAO createDeploymentUnit(String name) { + _txCtx.begin(); + DeploymentUnitDaoImpl du = new DeploymentUnitDaoImpl(); + du.setName(name); + du.setDeployDate(new Date()); + _em.persist(du); + _txCtx.commit(); + return du; + } + + public DeploymentUnitDAO getDeploymentUnit(String name) { + _txCtx.begin(); + DeploymentUnitDAO dao= _em.find(DeploymentUnitDaoImpl.class, name); + _txCtx.commit(); + return dao; + } + + public Collection<DeploymentUnitDAO> getDeploymentUnits() { + _txCtx.begin(); + Collection<DeploymentUnitDAO> dao = _em.createQuery("SELECT du from DeploymentUnitDaoImpl du").getResultList(); + _txCtx.commit(); + return dao; + } + + public long getNextVersion() { + _txCtx.begin(); + List<VersionTrackerDAOImpl> res = _em.createQuery("select v from VersionTrackerDAOImpl v").getResultList(); + _txCtx.commit(); + if (res.size() == 0) return 1; + else { + VersionTrackerDAOImpl vt = res.get(0); + return vt.getVersion() + 1; + } + } + + public void setVersion(long version) { + _txCtx.begin(); + List<VersionTrackerDAOImpl> res = _em.createQuery("select v from VersionTrackerDAOImpl v").getResultList(); + VersionTrackerDAOImpl vt; + if (res.size() == 0) vt = new VersionTrackerDAOImpl(); + else vt = res.get(0); + vt.setVersion(version); + _em.persist(vt); + _txCtx.commit(); + } + + public static ThreadLocal<ConfStoreDAOConnectionImpl> getThreadLocal() { + return _connections; + } +} Added: ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/store/DeploymentUnitDaoImpl.java URL: http://svn.apache.org/viewvc/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/store/DeploymentUnitDaoImpl.java?rev=986561&view=auto ============================================================================== --- ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/store/DeploymentUnitDaoImpl.java (added) +++ ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/store/DeploymentUnitDaoImpl.java Wed Aug 18 04:12:49 2010 @@ -0,0 +1,140 @@ +/* + * 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.store; + +import org.apache.ode.bpel.iapi.ProcessState; +import org.apache.ode.dao.store.DeploymentUnitDAO; +import org.apache.ode.dao.store.ProcessConfDAO; +import org.apache.ode.utils.stl.CollectionsX; +import org.apache.ode.utils.stl.MemberOfFunction; + +import javax.persistence.*; +import javax.xml.namespace.QName; +import java.util.Collection; +import java.util.Date; +import java.util.HashSet; + +/** + * @author Matthieu Riou <mriou at apache dot org> + */ +...@entity +...@table(name="STORE_DU") +public class DeploymentUnitDaoImpl extends ConfStoreDAO implements DeploymentUnitDAO { + + @OneToMany(targetEntity=ProcessConfDaoImpl.class,mappedBy="_du",fetch=FetchType.EAGER,cascade={CascadeType.ALL}) + private Collection<ProcessConfDaoImpl> _processes = new HashSet<ProcessConfDaoImpl>(); + + @Basic @Column(name="DEPLOYER") + private String _deployer; + + @Basic @Column(name="DEPLOYDT") + private Date _deployDate; + + @Basic @Column(name="DIR") + private String _dir; + + @Id @Column(name="NAME") + private String _name; + + public Collection<? extends ProcessConfDAO> getProcesses() { + return _processes; + } + + public void setProcesses(Collection<ProcessConfDaoImpl> processes) { + _processes = processes; + } + + /** + * The user that deployed the process. + * @hibernate.property + * column="deployer" + */ + public String getDeployer() { + return _deployer; + } + + public void setDeployer(String deployer) { + _deployer = deployer; + } + + /** + * The date the process was deployed. + * @hibernate.property + * column="DEPLOYDT" + */ + public Date getDeployDate() { + return _deployDate; + } + + public void setDeployDate(Date deployDate) { + _deployDate = deployDate; + } + + /** + * @hibernate.id generator-class="assigned" + * @hibernate.column name="NAME" + */ + public String getName() { + return _name; + } + + public void setName(String name) { + _name = name; + } + + /** + * @hibernate.property column="DIR" + */ + public String getDeploymentUnitDir() { + return _dir; + } + + public void setDeploymentUnitDir(String dir) { + _dir = dir; + } + + public void delete() { + super.delete(); + } + + public ProcessConfDAO createProcess(QName pid, QName type, long version) { + ProcessConfDaoImpl p = new ProcessConfDaoImpl(); + p.setPID(pid); + p.setType(type); + p.setDeploymentUnit(this); + p.setState(ProcessState.ACTIVE); + p.setVersion(version); + getEM().persist(p); + _processes.add(p); + getEM().persist(this); + return p; + } + + public ProcessConfDAO getProcess(final QName pid) { + return CollectionsX.find_if(_processes,new MemberOfFunction<ProcessConfDAO>() { + @Override + public boolean isMember(ProcessConfDAO o) { + return o.getPID().equals(pid); + } + + }); + } + +} Added: ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/store/ProcessConfDaoImpl.java URL: http://svn.apache.org/viewvc/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/store/ProcessConfDaoImpl.java?rev=986561&view=auto ============================================================================== --- ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/store/ProcessConfDaoImpl.java (added) +++ ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/store/ProcessConfDaoImpl.java Wed Aug 18 04:12:49 2010 @@ -0,0 +1,171 @@ +/* + * 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.store; + +import org.apache.ode.bpel.iapi.ProcessState; +import org.apache.ode.dao.store.ProcessConfDAO; +import org.apache.ode.utils.stl.CollectionsX; +import org.apache.ode.utils.stl.UnaryFunction; + +import javax.persistence.*; +import javax.xml.namespace.QName; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; + +/** + * @author Matthieu Riou <mriou at apache dot org> + */ +...@entity +...@table(name="STORE_PROCESS") +public class ProcessConfDaoImpl extends ConfStoreDAO implements ProcessConfDAO { + + @ManyToOne(targetEntity=DeploymentUnitDaoImpl.class,fetch=FetchType.EAGER,cascade={CascadeType.ALL}) + @JoinColumn(name="DU") + private DeploymentUnitDaoImpl _du; + + @OneToMany(fetch=FetchType.EAGER,cascade={CascadeType.ALL}) + @MapKey(name="_key") + @JoinTable(name="STORE_PROC_TO_PROP") + private Map<String,ProcessConfPropertyDaoImpl> _properties = new HashMap<String,ProcessConfPropertyDaoImpl>(); + + @Id @Column(name="PID") + private String _processId; + + @Basic @Column(name="TYPE") + private String _type; + + @Basic @Column(name="VERSION") + private long _version; + + @Basic @Column(name="STATE") + private String _state; + + public DeploymentUnitDaoImpl getDeploymentUnit() { + return _du; + } + + public void setDeploymentUnit(DeploymentUnitDaoImpl du) { + _du = du; + } + + /** + * + * @hibernate.id generator-class="assigned" + * @hibernate.column + * name="PID" + * not-null="true" + */ + public String getPID_() { + return _processId; + } + + public void setPID_(String processId) { + _processId = processId; + } + + + /** + * The type of the process (BPEL process definition name). + * @hibernate.property + * column="TYPE" + */ + public String getType_() { + return _type; + } + + public void setType_(String type) { + _type = type; + } + + + /** + * The process version. + * @hibernate.property + * column="version" + */ + public long getVersion() { + return _version; + } + + public void setVersion(long version) { + _version = version; + } + + public String getState_() { + return _state; + } + + public void setState_(String state) { + _state = state; + } + + public QName getPID() { + return QName.valueOf(getPID_()); + } + + public void setPID(QName pid) { + setPID_(pid.toString()); + } + + public void setState(ProcessState state) { + setState_(state.toString()); + } + + public void setProperty(QName name, String content) { + ProcessConfPropertyDaoImpl prop = new ProcessConfPropertyDaoImpl(); + prop.setKey(name.toString()); + prop.setValue(content); + getEM().persist(prop); + _properties.put(name.toString(),prop); + getEM().persist(this); + } + + public void delete() { + super.delete(); + } + + public QName getType() { + return QName.valueOf(getType_()); + } + + public void setType(QName type) { + setType_(type.toString()); + } + + public ProcessState getState() { + return ProcessState.valueOf(getState_()); + } + + public String getProperty(QName name) { + return _properties.get(name.toString()).getValue(); + } + + public Collection<QName> getPropertyNames() { + return CollectionsX.transform(new ArrayList<QName>(), _properties.keySet(),new UnaryFunction<String,QName>() { + public QName apply(String x) { + return QName.valueOf(x); + } + + }); + } + +} Added: ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/store/ProcessConfPropertyDaoImpl.java URL: http://svn.apache.org/viewvc/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/store/ProcessConfPropertyDaoImpl.java?rev=986561&view=auto ============================================================================== --- ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/store/ProcessConfPropertyDaoImpl.java (added) +++ ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/store/ProcessConfPropertyDaoImpl.java Wed Aug 18 04:12:49 2010 @@ -0,0 +1,70 @@ +/* + * 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.store; + +import javax.persistence.Basic; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.Table; + +/** + * @author Matthieu Riou <mriou at apache dot org> + */ +...@entity +...@table(name="STORE_PROCESS_PROP") +public class ProcessConfPropertyDaoImpl { + + @Id @Column(name="ID") + @GeneratedValue + private Long _id; + + @Basic @Column(name="PROP_KEY") + private String _key; + @Basic @Column(name="PROP_VAL") + private String _value; + + public String getKey() { + return _key; + } + + public void setKey(String key) { + _key = key; + } + + public String getValue() { + return _value; + } + + public void setValue(String value) { + _value = value; + } + + public Long getId() { + return _id; + } + + public void setId(Long id) { + this._id = id; + } + + +} Added: ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/store/VersionTrackerDAOImpl.java URL: http://svn.apache.org/viewvc/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/store/VersionTrackerDAOImpl.java?rev=986561&view=auto ============================================================================== --- ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/store/VersionTrackerDAOImpl.java (added) +++ ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/store/VersionTrackerDAOImpl.java Wed Aug 18 04:12:49 2010 @@ -0,0 +1,59 @@ +/* + * 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.store; + +import javax.persistence.Basic; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.Table; + +/** + * @author Matthieu Riou <mriou at apache dot org> + */ +...@entity +...@table(name="STORE_VERSIONS") +public class VersionTrackerDAOImpl { + + @Id @Column(name="ID") + @GeneratedValue + private Long _id; + + @Basic @Column(name="VERSION") + private long _version; + + public long getVersion() { + return _version; + } + + public void setVersion(long version) { + _version = version; + } + + public Long getId() { + return _id; + } + + public void setId(Long id) { + this._id = id; + } + +} Modified: ode/trunk/dao-jpa/src/main/resources/META-INF/persistence.xml URL: http://svn.apache.org/viewvc/ode/trunk/dao-jpa/src/main/resources/META-INF/persistence.xml?rev=986561&r1=986560&r2=986561&view=diff ============================================================================== --- ode/trunk/dao-jpa/src/main/resources/META-INF/persistence.xml (original) +++ ode/trunk/dao-jpa/src/main/resources/META-INF/persistence.xml Wed Aug 18 04:12:49 2010 @@ -20,27 +20,29 @@ <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-dao"> - <!-- - This properties file is used specifically by the - OpenJPA Enhancer. - --> - <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> - <class>org.apache.ode.dao.jpa.ActivityRecoveryDAOImpl</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> - <class>org.apache.ode.dao.jpa.MessageRouteDAOImpl</class> - <class>org.apache.ode.dao.jpa.PartnerLinkDAOImpl</class> - <class>org.apache.ode.dao.jpa.ProcessDAOImpl</class> - <class>org.apache.ode.dao.jpa.ProcessInstanceDAOImpl</class> - <class>org.apache.ode.dao.jpa.ScopeDAOImpl</class> - <class>org.apache.ode.dao.jpa.XmlDataDAOImpl</class> - <class>org.apache.ode.dao.jpa.CorrSetProperty</class> - <class>org.apache.ode.dao.jpa.MexProperty</class> - <class>org.apache.ode.dao.jpa.XmlDataProperty</class> + <persistence-unit name="ode-bpel" transaction-type="JTA"> + <class>org.apache.ode.dao.jpa.bpel.ActivityRecoveryDAOImpl</class> + <class>org.apache.ode.dao.jpa.bpel.CorrelationSetDAOImpl</class> + <class>org.apache.ode.dao.jpa.bpel.CorrelatorDAOImpl</class> + <class>org.apache.ode.dao.jpa.bpel.EventDAOImpl</class> + <class>org.apache.ode.dao.jpa.bpel.FaultDAOImpl</class> + <class>org.apache.ode.dao.jpa.bpel.MessageDAOImpl</class> + <class>org.apache.ode.dao.jpa.bpel.MessageExchangeDAOImpl</class> + <class>org.apache.ode.dao.jpa.bpel.MessageRouteDAOImpl</class> + <class>org.apache.ode.dao.jpa.bpel.PartnerLinkDAOImpl</class> + <class>org.apache.ode.dao.jpa.bpel.ProcessDAOImpl</class> + <class>org.apache.ode.dao.jpa.bpel.ProcessInstanceDAOImpl</class> + <class>org.apache.ode.dao.jpa.bpel.ScopeDAOImpl</class> + <class>org.apache.ode.dao.jpa.bpel.XmlDataDAOImpl</class> + <class>org.apache.ode.dao.jpa.bpel.CorrSetProperty</class> + <class>org.apache.ode.dao.jpa.bpel.MexProperty</class> + <class>org.apache.ode.dao.jpa.bpel.XmlDataProperty</class> </persistence-unit> + <persistence-unit name="ode-store" transaction-type="JTA"> + <class>org.apache.ode.dao.jpa.store.ProcessConfDaoImpl</class> + <class>org.apache.ode.dao.jpa.store.ProcessConfPropertyDaoImpl</class> + <class>org.apache.ode.dao.jpa.store.DeploymentUnitDaoImpl</class> + <class>org.apache.ode.dao.jpa.store.VersionTrackerDAOImpl</class> + </persistence-unit> + </persistence> \ No newline at end of file Modified: ode/trunk/jbi/pom.xml URL: http://svn.apache.org/viewvc/ode/trunk/jbi/pom.xml?rev=986561&r1=986560&r2=986561&view=diff ============================================================================== --- ode/trunk/jbi/pom.xml (original) +++ ode/trunk/jbi/pom.xml Wed Aug 18 04:12:49 2010 @@ -129,8 +129,8 @@ <artifactId>hibernate-core</artifactId> </exclusion> <exclusion> - <groupId>hsqldb</groupId> - <artifactId>hsqldb</artifactId> + <groupId>com.h2database</groupId> + <artifactId>h2</artifactId> </exclusion> <exclusion> <groupId>org.apache.geronimo.specs</groupId> @@ -230,7 +230,7 @@ </dependency> <dependency> <groupId>org.hibernate</groupId> - <artifactId>hibernate</artifactId> + <artifactId>hibernate-core</artifactId> <scope>provided</scope> </dependency> <dependency> @@ -379,6 +379,11 @@ <groupId>org.apache.geronimo.specs</groupId> <artifactId>geronimo-ejb_2.1_spec</artifactId> </dependency> + + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + </dependency> <!-- This is a way to specify the global exclusion in the dependency tree --> <dependency> Modified: ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeContext.java URL: http://svn.apache.org/viewvc/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeContext.java?rev=986561&r1=986560&r2=986561&view=diff ============================================================================== --- ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeContext.java (original) +++ ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeContext.java Wed Aug 18 04:12:49 2010 @@ -40,7 +40,6 @@ import javax.xml.namespace.QName; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.ode.agents.memory.SizingAgent; -import org.apache.ode.bpel.dao.BpelDAOConnectionFactory; import org.apache.ode.bpel.engine.BpelServerImpl; import org.apache.ode.bpel.engine.ProcessAndInstanceManagementImpl; import org.apache.ode.bpel.iapi.Endpoint; @@ -51,6 +50,8 @@ import org.apache.ode.bpel.o.OProcess; import org.apache.ode.bpel.o.Serializer; import org.apache.ode.bpel.pmapi.InstanceManagement; import org.apache.ode.bpel.pmapi.ProcessManagement; +import org.apache.ode.dao.bpel.BpelDAOConnectionFactory; +import org.apache.ode.dao.store.ConfStoreDAOConnectionFactory; import org.apache.ode.jbi.msgmap.Mapper; import org.apache.ode.jbi.util.WSDLFlattener; import org.apache.ode.scheduler.simple.SimpleScheduler; @@ -99,6 +100,8 @@ final public class OdeContext { ExecutorService _executorService; BpelDAOConnectionFactory _daocf; + + ConfStoreDAOConnectionFactory _cdaocf; OdeConfigProperties _config; Modified: ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java URL: http://svn.apache.org/viewvc/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java?rev=986561&r1=986560&r2=986561&view=diff ============================================================================== --- ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java (original) +++ ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java Wed Aug 18 04:12:49 2010 @@ -34,13 +34,13 @@ import javax.transaction.TransactionMana import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.ode.bpel.connector.BpelServerConnector; -import org.apache.ode.bpel.dao.BpelDAOConnectionFactoryJDBC; import org.apache.ode.bpel.engine.BpelServerImpl; import org.apache.ode.bpel.engine.ProcessAndInstanceManagementMBean; import org.apache.ode.bpel.extvar.jdbc.JdbcExternalVariableModule; - import org.apache.ode.bpel.iapi.BpelEventListener; import org.apache.ode.bpel.intercept.MessageExchangeInterceptor; +import org.apache.ode.dao.bpel.BpelDAOConnectionFactory; +import org.apache.ode.dao.store.ConfStoreDAOConnectionFactory; import org.apache.ode.il.dbutil.Database; import org.apache.ode.il.dbutil.DatabaseConfigException; import org.apache.ode.jbi.msgmap.Mapper; @@ -234,7 +234,7 @@ public class OdeLifeCycle implements Com _ode._scheduler.setExecutorService(_ode._executorService); _ode._scheduler.setTransactionManager((TransactionManager) _ode.getContext().getTransactionManager()); - _ode._store = new ProcessStoreImpl(_ode._eprContext , _ode._dataSource, _ode._config.getDAOConnectionFactory(), _ode._config, false); + _ode._store = new ProcessStoreImpl(_ode._eprContext , _ode.getTransactionManager(), _ode._cdaocf); registerExternalVariableModules(); _ode._store.loadAll(); @@ -264,14 +264,17 @@ public class OdeLifeCycle implements Com * @throws JBIException */ private void initDao() throws JBIException { - BpelDAOConnectionFactoryJDBC cf; + BpelDAOConnectionFactory bcf; + ConfStoreDAOConnectionFactory ccf; try { - cf = _db.createDaoCF(); + bcf = _db.createDaoCF(); + ccf = _db.createDaoStoreCF(); } catch (DatabaseConfigException e) { String errmsg = __msgs.msgDAOInstantiationFailed(_ode._config.getDAOConnectionFactory()); throw new JBIException(errmsg,e); } - _ode._daocf = cf; + _ode._daocf = bcf; + _ode._cdaocf = ccf; } private void initConnector() throws JBIException { Modified: ode/trunk/jbi/src/test/jbi/ode-jbi.properties URL: http://svn.apache.org/viewvc/ode/trunk/jbi/src/test/jbi/ode-jbi.properties?rev=986561&r1=986560&r2=986561&view=diff ============================================================================== --- ode/trunk/jbi/src/test/jbi/ode-jbi.properties (original) +++ ode/trunk/jbi/src/test/jbi/ode-jbi.properties Wed Aug 18 04:12:49 2010 @@ -62,7 +62,8 @@ ode-jbi.db.ext.dataSource=java:comp/env/ # DAO Connection Factory class. # uncomment the following for hibernate. -ode-jbi.dao.factory=org.apache.ode.daohib.bpel.BpelDAOConnectionFactoryImpl +ode-jbi.dao.factory=org.apache.ode.dao.hib.bpel.BpelDAOConnectionFactoryImpl +ode-jbi.dao.factory.store=org.apache.ode.dao.hib.store.ConfStoreDAOConnectionFactoryImpl # Class name of the message mapper that should be used to convert message # between ODE / NMS. Modified: ode/trunk/pom.xml URL: http://svn.apache.org/viewvc/ode/trunk/pom.xml?rev=986561&r1=986560&r2=986561&view=diff ============================================================================== --- ode/trunk/pom.xml (original) +++ ode/trunk/pom.xml Wed Aug 18 04:12:49 2010 @@ -89,7 +89,8 @@ <wsdl4j.version>1.6.2</wsdl4j.version> <woodstox.version>3.2.4</woodstox.version> <javax.mail.version>1.4</javax.mail.version> - <hibernate.version>3.2.5.ga</hibernate.version> + <hibernate.version>3.3.2.GA</hibernate.version> + <hibernate.entitymanager.version>3.4.0.GA</hibernate.entitymanager.version> <spring.version>2.5.6</spring.version> <geronimo.specs.version>1.0</geronimo.specs.version> <geronimo.version>2.0.1</geronimo.version> @@ -126,7 +127,8 @@ <xml-apis.version>1.3.04</xml-apis.version> <servicemix.nmr.version>1.1.0-SNAPSHOT</servicemix.nmr.version> <axis2.transport.version>1.0.0</axis2.transport.version> - <h2.version>1.1.117</h2.version> + <javassist.version>3.9.0.GA</javassist.version> + <h2.version>1.1.117</h2.version> </properties> <modules> @@ -148,6 +150,9 @@ <module>bpel-ql</module> <module>dao-hibernate</module> <module>tools</module> + <module>dao-jpa-hibernate</module> + <module>dao-jpa-ojpa</module> + <module>dao-jpa-db</module> <module>bpel-store</module> <module>dao-jpa-ojpa-derby</module> <module>dao-hibernate-db</module> @@ -436,11 +441,27 @@ </dependency> <dependency> <groupId>org.apache.ode</groupId> + <artifactId>ode-dao-jpa-hibernate</artifactId> + <version>${ode.version}</version> + </dependency> + <dependency> + <groupId>org.apache.ode</groupId> + <artifactId>ode-dao-jpa-ojpa</artifactId> + <version>${ode.version}</version> + </dependency> + <dependency> + <groupId>org.apache.ode</groupId> <artifactId>ode-dao-jpa</artifactId> <version>${ode.version}</version> </dependency> <dependency> <groupId>org.apache.ode</groupId> + <artifactId>ode-dao-jpa</artifactId> + <version>${ode.version}</version> + <classifier>openjpa</classifier> + </dependency> + <dependency> + <groupId>org.apache.ode</groupId> <artifactId>ode-jca-ra</artifactId> <version>${ode.version}</version> </dependency> @@ -501,6 +522,11 @@ <version>${annogen.version}</version> </dependency> <dependency> + <groupId>javassist</groupId> + <artifactId>javassist</artifactId> + <version>${javassist.version}</version> + </dependency> + <dependency> <groupId>antlr</groupId> <artifactId>antlr</artifactId> <version>${antlr.version}</version> @@ -747,16 +773,25 @@ <dependency> <groupId>org.hibernate</groupId> - <artifactId>hibernate</artifactId> + <artifactId>hibernate-core</artifactId> <version>${hibernate.version}</version> - <!-- <exclusions> <exclusion> <artifactId>jta</artifactId> <groupId>javax.transaction</groupId> </exclusion> </exclusions> - --> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-entitymanager</artifactId> + <version>${hibernate.entitymanager.version}</version> + <exclusions> + <exclusion> + <artifactId>jta</artifactId> + <groupId>javax.transaction</groupId> + </exclusion> + </exclusions> </dependency> <dependency> @@ -851,9 +886,9 @@ <version>${derby.version}</version> </dependency> <dependency> - <groupId>hsqldb</groupId> - <artifactId>hsqldb</artifactId> - <version>${hsqldb.version}</version> + <groupId>com.h2database</groupId> + <artifactId>h2</artifactId> + <version>${h2.version}</version> </dependency> <dependency> Modified: ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java URL: http://svn.apache.org/viewvc/ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java?rev=986561&r1=986560&r2=986561&view=diff ============================================================================== --- ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java (original) +++ ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java Wed Aug 18 04:12:49 2010 @@ -294,6 +294,7 @@ public class SimpleScheduler implements } } else { if (__log.isDebugEnabled()) __log.debug("Rollbacking on " + txm + "..."); + ex.printStackTrace(); txm.rollback(); } Modified: ode/trunk/scheduler-simple/src/test/resources/log4j.properties URL: http://svn.apache.org/viewvc/ode/trunk/scheduler-simple/src/test/resources/log4j.properties?rev=986561&r1=986560&r2=986561&view=diff ============================================================================== --- ode/trunk/scheduler-simple/src/test/resources/log4j.properties (original) +++ ode/trunk/scheduler-simple/src/test/resources/log4j.properties Wed Aug 18 04:12:49 2010 @@ -20,7 +20,7 @@ log4j.rootLogger=WARN, CONSOLE # log4j properties to work with commandline tools. log4j.category.org.apache.ode.scheduler.simple.RetriesTest=DEBUG -log4j.category.org.apache.ode.bpel.engine=INFO +log4j.category.org.apache.ode=DEBUG # Console appender log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
