001: /* XPDLBrowserEJBBean.java */
002: package org.enhydra.shark.ws;
003:
004: import javax.naming.InitialContext;
005: import javax.transaction.Status;
006: import javax.transaction.UserTransaction;
007:
008: import org.enhydra.shark.Shark;
009: import org.enhydra.shark.api.client.wfmc.wapi.WMAttributeIterator;
010: import org.enhydra.shark.api.client.wfmc.wapi.WMFilter;
011: import org.enhydra.shark.api.client.wfmc.wapi.WMSessionHandle;
012: import org.enhydra.shark.api.client.wfservice.WMEntity;
013: import org.enhydra.shark.api.client.wfservice.WMEntityIterator;
014: import org.enhydra.shark.api.client.wfservice.XPDLBrowser;
015: import org.enhydra.shark.ejb.SharkEJBUtilities;
016:
017: /**
018: * @author Sasa Bojanic
019: * @author T.Jovanovic
020: * @version 0.1
021: */
022: public class XPDLBrowserWrapper implements XPDLBrowser {
023:
024: /**
025: * @ejb:interface-method
026: * view-type="all"
027: */
028:
029: public WMEntityIterator listEntities(WMSessionHandle sHandle,
030: WMEntity scopingEntity, WMFilter filter, boolean countFlag)
031: throws Exception {
032: if (SharkEJBUtilities.getEnvType() == 1) {
033: UserTransaction t = null;
034: WMEntityIterator retVal = null;
035: try {
036: t = (UserTransaction) new InitialContext()
037: .lookup(SharkEJBUtilities.TOMCAT_USER_TRANS_JNDI_NAME);
038: t.begin();
039: retVal = getSharkObject().listEntities(sHandle,
040: scopingEntity, filter, countFlag);
041: t.commit();
042:
043: } catch (Exception ex) {
044: try {
045: if (t.getStatus() != Status.STATUS_NO_TRANSACTION)
046: t.rollback();
047: } catch (Exception ex1) {
048: ex1.printStackTrace();
049: }
050: throw ex;
051: }
052:
053: return retVal;
054: } else {
055: return getSharkObject().listEntities(sHandle,
056: scopingEntity, filter, countFlag);
057: }
058: }
059:
060: /**
061: * @ejb:interface-method
062: * view-type="all"
063: */
064: public WMAttributeIterator listAttributes(WMSessionHandle sHandle,
065: WMEntity scopingEntity, WMFilter filter, boolean countFlag)
066: throws Exception {
067: if (SharkEJBUtilities.getEnvType() == 1) {
068: UserTransaction t = null;
069: WMAttributeIterator retVal = null;
070: try {
071: t = (UserTransaction) new InitialContext()
072: .lookup(SharkEJBUtilities.TOMCAT_USER_TRANS_JNDI_NAME);
073: t.begin();
074: retVal = getSharkObject().listAttributes(sHandle,
075: scopingEntity, filter, countFlag);
076: t.commit();
077:
078: } catch (Exception ex) {
079: try {
080: if (t.getStatus() != Status.STATUS_NO_TRANSACTION)
081: t.rollback();
082: } catch (Exception ex1) {
083: ex1.printStackTrace();
084: }
085: throw ex;
086: }
087:
088: return retVal;
089: } else {
090: return getSharkObject().listAttributes(sHandle,
091: scopingEntity, filter, countFlag);
092: }
093: }
094:
095: /**
096: * @ejb:interface-method
097: * view-type="all"
098: */
099: public String getUniqueProcessDefinitionName(
100: WMSessionHandle sHandle, String pkgId, String pkgVer,
101: String pDefId) throws Exception {
102: if (SharkEJBUtilities.getEnvType() == 1) {
103: UserTransaction t = null;
104: String retVal = null;
105: try {
106: t = (UserTransaction) new InitialContext()
107: .lookup(SharkEJBUtilities.TOMCAT_USER_TRANS_JNDI_NAME);
108: t.begin();
109: retVal = getSharkObject()
110: .getUniqueProcessDefinitionName(sHandle, pkgId,
111: pkgVer, pDefId);
112: t.commit();
113:
114: } catch (Exception ex) {
115: try {
116: if (t.getStatus() != Status.STATUS_NO_TRANSACTION)
117: t.rollback();
118: } catch (Exception ex1) {
119: ex1.printStackTrace();
120: }
121: throw ex;
122: }
123:
124: return retVal;
125: } else {
126: return getSharkObject().getUniqueProcessDefinitionName(
127: sHandle, pkgId, pkgVer, pDefId);
128: }
129: }
130:
131: protected XPDLBrowser getSharkObject() throws Exception {
132: return (XPDLBrowser) Shark.getInstance().getXPDLBrowser();
133: }
134: }
|