⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 corebpeltest.java

📁 bpel执行引擎用来执行bpel业务流程
💻 JAVA
字号:
/* * 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.bpel.runtime;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.net.URI;import java.util.Collection;import java.util.Date;import java.util.HashMap;import javax.wsdl.Operation;import javax.xml.namespace.QName;import junit.framework.TestCase;import org.apache.ode.bpel.common.CorrelationKey;import org.apache.ode.bpel.common.FaultException;import org.apache.ode.bpel.evt.ProcessInstanceEvent;import org.apache.ode.bpel.o.OCatch;import org.apache.ode.bpel.o.OEmpty;import org.apache.ode.bpel.o.OFaultHandler;import org.apache.ode.bpel.o.OFlow;import org.apache.ode.bpel.o.OMessageVarType;import org.apache.ode.bpel.o.OPartnerLink;import org.apache.ode.bpel.o.OProcess;import org.apache.ode.bpel.o.OScope;import org.apache.ode.bpel.o.OSequence;import org.apache.ode.bpel.o.OThrow;import org.apache.ode.bpel.o.OMessageVarType.Part;import org.apache.ode.bpel.o.OScope.Variable;import org.apache.ode.bpel.runtime.channels.ActivityRecoveryChannel;import org.apache.ode.bpel.runtime.channels.FaultData;import org.apache.ode.bpel.runtime.channels.InvokeResponseChannel;import org.apache.ode.bpel.runtime.channels.PickResponseChannel;import org.apache.ode.bpel.runtime.channels.TimerResponseChannel;import org.apache.ode.jacob.vpu.ExecutionQueueImpl;import org.apache.ode.jacob.vpu.JacobVPU;import org.apache.ode.bpel.evar.ExternalVariableModuleException;import org.w3c.dom.Element;import org.w3c.dom.Node;/** * Test core BPEL processing capabilities. */public class CoreBpelTest extends TestCase implements BpelRuntimeContext {    private boolean _completedOk;    private boolean _terminate;    private FaultData _fault;    private ExecutionQueueImpl _soup;    private JacobVPU _vpu;    private Long _pid;    private long _seq;    protected void setUp() throws Exception {        _completedOk = false;        _terminate = false;        _fault = null;        _soup = new ExecutionQueueImpl(CoreBpelTest.class.getClassLoader());        _vpu = new JacobVPU(_soup);        _vpu.registerExtension(BpelRuntimeContext.class, this);        _pid = new Long(19355);    }    public Long getPid() {        return _pid;    }    public boolean isVariableInitialized(VariableInstance variable) {        return false;    }    public Long createScopeInstance(Long parentScopeId, OScope scopeType) {        return new Long((long) (Math.random() * 1000L) + scopeType.getId());    }    public Node fetchVariableData(VariableInstance var, boolean forWriting) throws FaultException {        return null;    }    public Node fetchVariableData(VariableInstance var, OMessageVarType.Part partname, boolean forWriting)            throws FaultException {        return null;    }    public String readProperty(VariableInstance var, OProcess.OProperty property) throws FaultException {        return null;    }    public Node initializeVariable(VariableInstance var, Node initData) {        return null;    }    public void commitChanges(VariableInstance var, Node changes) {    }    public boolean isCorrelationInitialized(CorrelationSetInstance cset) {        return false;    }    public CorrelationKey readCorrelation(CorrelationSetInstance cset) {        return null;    }    public void writeCorrelation(CorrelationSetInstance cset, CorrelationKey correlation) {    }    public void cancel(TimerResponseChannel timerResponseChannel) {    }    public void completedOk() {        _completedOk = true;    }    public void completedFault(FaultData faultData) {        _fault = faultData;    }    public void select(PickResponseChannel response, Date timeout, boolean createInstnace, Selector[] selectors)            throws FaultException {    }    public void reply(PartnerLinkInstance plink, String opName, String mexId, Element msg, QName fault)            throws FaultException {    }    public String invoke(PartnerLinkInstance partnerLinkInstance, Operation operation, Element outboundMsg,            InvokeResponseChannel invokeResponseChannel) {        return null;    }    public void registerTimer(TimerResponseChannel timerChannel, Date timeToFire) {    }    public void terminate() {        _terminate = true;    }    public void sendEvent(ProcessInstanceEvent event) {    }    public ExpressionLanguageRuntimeRegistry getExpLangRuntime() {        return null;    }    public void initializePartnerLinks(Long parentScopeId, Collection<OPartnerLink> partnerLinks) {    }        public void testEmptyProcess() {        OProcess proc = new OProcess("2.0");        proc.procesScope = new OScope(proc, null);        proc.procesScope.activity = new OEmpty(proc, proc.procesScope);        run(proc);        assertTrue(_completedOk);        assertFalse(_terminate);        assertNull(_fault);    }    public void testThrow() {        OProcess proc = new OProcess("2.0");        proc.procesScope = new OScope(proc, null);        OThrow othrow = new OThrow(proc, proc.procesScope);        othrow.faultName = new QName("foo", "bar");        proc.procesScope.activity = othrow;        run(proc);        assertFalse(_completedOk);        assertFalse(_terminate);        assertEquals(_fault.getFaultName(), othrow.faultName);    }    public void testFaultHandling() {        OProcess proc = new OProcess("2.0");        proc.procesScope = new OScope(proc, null);        OThrow othrow = new OThrow(proc, proc.procesScope);        othrow.faultName = new QName("foo", "bar");        proc.procesScope.activity = othrow;        proc.procesScope.faultHandler = new OFaultHandler(proc);        OCatch ocatch = new OCatch(proc, proc.procesScope);        proc.procesScope.faultHandler.catchBlocks.add(ocatch);        ocatch.activity = new OEmpty(proc, ocatch);        run(proc);        assertTrue(_completedOk);        assertFalse(_terminate);        assertNull(_fault);    }    public void testOneElementSequence() {        OProcess proc = new OProcess("2.0");        proc.procesScope = new OScope(proc, null);        OSequence sequence = new OSequence(proc, proc.procesScope);        proc.procesScope.activity = sequence;        sequence.sequence.add(new OEmpty(proc, sequence));        run(proc);        assertTrue(_completedOk);        assertFalse(_terminate);        assertNull(_fault);    }    public void testTwoElementSequence() {        OProcess proc = new OProcess("2.0");        proc.procesScope = new OScope(proc, null);        OSequence sequence = new OSequence(proc, proc.procesScope);        proc.procesScope.activity = sequence;        sequence.sequence.add(new OEmpty(proc, sequence));        sequence.sequence.add(new OEmpty(proc, sequence));        run(proc);        assertTrue(_completedOk);        assertFalse(_terminate);        assertNull(_fault);    }    public void testEmptyFlow() {        OProcess proc = new OProcess("2.0");        proc.procesScope = new OScope(proc, null);        proc.procesScope.activity = new OFlow(proc, proc.procesScope);        run(proc);        assertTrue(_completedOk);        assertFalse(_terminate);        assertNull(_fault);    }    public void testSingleElementFlow() {        OProcess proc = new OProcess("2.0");        proc.procesScope = new OScope(proc, null);        OFlow flow = new OFlow(proc, proc.procesScope);        proc.procesScope.activity = flow;        flow.parallelActivities.add(new OEmpty(proc, flow));        run(proc);        assertTrue(_completedOk);        assertFalse(_terminate);        assertNull(_fault);    }    public void testTwoElementFlow() {        OProcess proc = new OProcess("2.0");        proc.procesScope = new OScope(proc, null);        OFlow flow = new OFlow(proc, proc.procesScope);        proc.procesScope.activity = flow;        flow.parallelActivities.add(new OEmpty(proc, flow));        flow.parallelActivities.add(new OEmpty(proc, flow));        run(proc);        assertTrue(_completedOk);        assertFalse(_terminate);        assertNull(_fault);    }    public void testFlowTermination() {        OProcess proc = new OProcess("2.0");        proc.procesScope = new OScope(proc, null);        OFlow flow = new OFlow(proc, proc.procesScope);        proc.procesScope.activity = flow;        OThrow othrow = new OThrow(proc, flow);        othrow.faultName = new QName("foo", "bar");        flow.parallelActivities.add(othrow);        flow.parallelActivities.add(new OEmpty(proc, flow));        flow.parallelActivities.add(new OEmpty(proc, flow));        flow.parallelActivities.add(new OEmpty(proc, flow));        flow.parallelActivities.add(new OEmpty(proc, flow));        flow.parallelActivities.add(new OEmpty(proc, flow));        flow.parallelActivities.add(new OEmpty(proc, flow));        run(proc);        assertFalse(_completedOk);        assertFalse(_terminate);        assertEquals(_fault.getFaultName(), othrow.faultName);    }    private void run(OProcess proc) {        _vpu.inject(new PROCESS(proc));        for (int i = 0; i < 100000 && !_completedOk && _fault == null && !_terminate; ++i) {            _vpu.execute();        }        assertTrue(_soup.isComplete());        ByteArrayOutputStream bos = new ByteArrayOutputStream();        try {            _soup.write(bos);            _soup.read(new ByteArrayInputStream(bos.toByteArray()));            // check empty soup.        } catch (Exception ex) {        }    }    public long genId() {        return _seq++;    }    public Element getPartnerResponse(String mexId) {        // TODO Auto-generated method stub        return null;    }    public Element getMyRequest(String mexId) {        // TODO Auto-generated method stub        return null;    }    public QName getPartnerFault(String mexId) {        // TODO Auto-generated method stub        return null;    }    public QName getPartnerResponseType(String mexId) {        // TODO Auto-generated method stub        return null;    }    public Node convertEndpointReference(Element epr, Node targetNode) {        return null;    }    public Node getPartData(Element message, Part part) {        return null;    }    public Element getSourceEPR(String mexId) {        return null;    }    public void writeEndpointReference(PartnerLinkInstance variable, Element data) throws FaultException {    }    public Element fetchMyRoleEndpointReferenceData(PartnerLinkInstance pLink) {        // TODO Auto-generated method stub        return null;    }    public Element fetchPartnerRoleEndpointReferenceData(PartnerLinkInstance pLink) throws FaultException {        // TODO Auto-generated method stub        return null;    }    public boolean isPartnerRoleEndpointInitialized(PartnerLinkInstance pLink) {        // TODO Auto-generated method stub        return false;    }    public String fetchMySessionId(PartnerLinkInstance pLink) {        // TODO Auto-generated method stub        return null;    }    public String fetchPartnersSessionId(PartnerLinkInstance pLink) {        // TODO Auto-generated method stub        return null;    }    public void initializePartnersSessionId(PartnerLinkInstance pLink, String session) {        // TODO Auto-generated method stub    }    public String getSourceSessionId(String mexId) {        // TODO Auto-generated method stub        return null;    }    public void registerActivityForRecovery(ActivityRecoveryChannel channel, long activityId, String reason,                                            Date dateTime, Element data, String[] actions, int retries) {    }    public void unregisterActivityForRecovery(ActivityRecoveryChannel channel) {    }    public void recoverActivity(String channel, long activityId, String action, FaultData fault) {    }    public String getPartnerFaultExplanation(String mexid) {      return null;    }    public void releasePartnerMex(String mexId) {        // TODO Auto-generated method stub            }    public void initializeExternalVariable(VariableInstance instance, HashMap<String, String> keymap) {        // TODO Auto-generated method stub            }	public Node readExtVar(Variable variable, Node reference) throws ExternalVariableModuleException {		// TODO Auto-generated method stub		return null;	}	public Node readVariable(Long scopeInstanceId, String varname, boolean forWriting) throws FaultException {		// TODO Auto-generated method stub		return null;	}	public ValueReferencePair writeExtVar(Variable variable, Node reference, Node value) throws ExternalVariableModuleException {		// TODO Auto-generated method stub		return null;	}	public Node writeVariable(VariableInstance var, Node changes) {		// TODO Auto-generated method stub		return null;	}		public URI getBaseResourceURI() {		// TODO Auto-generated method stub		return null;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -