/**
* Copyright 2010 JBoss Inc
*
* Licensed 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.drools.bpel.test;
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
import org.drools.WorkingMemory;
import org.drools.audit.WorkingMemoryFileLogger;
import org.drools.bpel.compiler.BPELCompiler;
import org.drools.bpel.instance.BPELProcessInstance;
import org.drools.process.instance.impl.demo.UIWorkItemHandler;
public class BPELExample {
public static final void main(String[] args) {
try {
RuleBase ruleBase = RuleBaseFactory.newRuleBase();
new BPELCompiler().loadProcess(ruleBase, "/BPELProcess.bpel");
WorkingMemory workingMemory = ruleBase.newStatefulSession();
final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger(workingMemory);
UIWorkItemHandler uiHandler = new UIWorkItemHandler() {
private static final long serialVersionUID = 510l;
public void dispose() {
super.dispose();
logger.writeToDisk();
}
};
workingMemory.getWorkItemManager().registerWorkItemHandler("WebServiceInvocation", uiHandler);
uiHandler.setVisible(true);
BPELProcessInstance processInstance = (BPELProcessInstance)
workingMemory.startProcess("http://drools.jboss.org/bpel/sample");
processInstance.signalEvent("message",
new String[] {
"client",
"{http://drools.jboss.org/bpel/sample}BPELProcess",
"process",
"<BPELProcessRequestMessage>" +
" <payload><input>input</input></payload>" +
" <input>hello</input>" +
"</BPELProcessRequestMessage>"
}
);
} catch (Throwable t) {
t.printStackTrace();
}
}
}