[Design of JBoss jBPM] - Re: schema for mail template and activity
by tom.baeyens@jboss.com
i've looked at the branch and it looks like i thought.
the library dependency is a showstopper for me. we need to depend only on JavaMail
the other two points (2 and 3) are basically taste and hence less important to me.
the configuration of the templates and the jpdl language are important. that needs to be discussed as we build out the examples.
in the test with the mail template configurations, all looks good except for the actors attribute. that should now be changed into attributes users or groups specifically.
i'm surprised to see so much code without a single end-to-end example that we can discuss in detail. we should go in smaller iterations and discuss sooner. otherwise the risk throwing away a lot of work in case the discussions lead to different outcome
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4226014#4226014
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4226014
15 years, 8 months
[Design of JBoss jBPM] - GWT Console login problem
by kukeltje
Ok, I admit it... I am learning GWT (a little) to investigate a certain forms technology. So I checked out the source and followed these steps:
- cd gwt-console
- mvn install
- cd ../jbpm4
- mvn -Pdistro clean install
and ran the jbpm installer on a clean JBoss AS 5.0
When I tried to login, I got the following exception in the Firebug console:
| [Exception... "'java.lang.RuntimeException: Unknown error upon login attempt' when calling method: [nsIDOMEventListener::handleEvent]" nsresult: "0x8057001c (NS_ERROR_XPC_JS_THREW_JS_OBJECT)" location: "<unknown>" data: no]
No errors in the AS log or whatever.
When I want to debug the application using
[kukel@laptop war]$ mvn com.totsp.gwt:maven-googlewebtoolkit2-plugin:gwt
All I get is
Warning: JAVA_HOME environment variable is not set.
| [INFO] Scanning for projects...
| [INFO] ------------------------------------------------------------------------
| [INFO] Building JBoss BPM - GWT Console (WAR)
| [INFO] task-segment: [com.totsp.gwt:maven-googlewebtoolkit2-plugin:gwt]
| [INFO] ------------------------------------------------------------------------
| [INFO] Preparing gwt:gwt
| [INFO] [resources:resources]
| [INFO] Using default encoding to copy filtered resources.
| [INFO] [gwt:mergewebxml {execution: default}]
| [INFO] copy source web.xml - /home/kukel/workspace/gwt-console/war/src/main/webapp/WEB-INF/web.xml to build dir (source web.xml required if mergewebxml execution is enabled)
| [INFO] establishing classpath list (buildClaspathList - scope = COMPILE)
| [INFO] google.webtoolkit.home (gwtHome) *not* set, using project POM for GWT dependencies
| [INFO] Module file: /home/kukel/workspace/gwt-console/war/src/main/resources/org/jboss/bpm/console/Application.gwt.xml
| [INFO] [compiler:compile]
| [INFO] Compiling 3 source files to /home/kukel/workspace/gwt-console/war/target/classes
| [INFO] [dependency:unpack {execution: unpack}]
| [INFO] Configured Artifact: com.google.gwt:gwt-dev:linux-libs:?:zip
| [INFO] gwt-dev-1.5.2-linux-libs.zip already unpacked.
| [INFO] [gwt:gwt]
| [INFO] source web.xml present - /home/kukel/workspace/gwt-console/war/src/main/webapp/WEB-INF/web.xml - using it with embedded Tomcat
| [INFO] establishing classpath list (buildClaspathList - scope = RUNTIME)
| [INFO] google.webtoolkit.home (gwtHome) *not* set, using project POM for GWT dependencies
| ============= gwt-log-2.5.2 =============Thu Apr 16 20:01:03 CEST 2009=============
| [DEBUG] Console server: http://localhost:8888/org.jboss.bpm.console.Application/xhp
| [DEBUG] Report server: http://localhost:8080/report-server
| [DEBUG] Authentication against: http://localhost:8888/org.jboss.bpm.console.Application/xhp/rs/identity/u...
| GET http://localhost:8080/gwt-console-server/rs/identity/user/roles?roleCheck...: 200
| [DEBUG] Reload ext-gen168
| GET http://localhost:8080/gwt-console-server/rs/tasks/alex?start=0&limit=15&_...: 200
|
when I try to login.
The application does not even respond anymore in this situation
So does anybody have any idea how to 'fix' this?
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4226009#4226009
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4226009
15 years, 8 months
[Design of JBoss jBPM] - Re: schema for mail template and activity
by tom.baeyens@jboss.com
1) we shouldn't create a dependency on commons stuff. our users will use it as well and that way we get library version conflicts. using standards directly we don't have that problem.
commons email is intended as a convenient api abstraction on top of JavaMail. we don't need that convenience. we should be good enough to figure out JavaMail on our own.
our users will see neither. not our mail session, not commons mail abstraction. so it is an internal only implementation detail.
2) the api i proposed is based on the functionality that we build: use named templates to prepopulate fields in an email. i don't see the arguments why you think a separate email class is better.
3) true. the name session is only inspired by the rest. but a mail mnager would be just as good.
i'll have a look at the branch this evening
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4226004#4226004
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4226004
15 years, 8 months
[Design of JBoss jBPM] - Re: introducing process instance ?
by tom.baeyens@jboss.com
"jbarrez" wrote : -> This could lead to castings of executions to ProcessInstances, which aren't process instances (ie no root execution). But for the compiler, nothing is wrong since they are exactly the same...
|
i don't see the need for those casts. first, the api returns process instances where appropriate.
secondly, process instance doesn't add any methods, so there will be no reason to cast :-)
the thing that i'm mostly in doubt about is the return value of the signal methods. previously we returned the execution in which the signal was given. but in the context of this thread it looks to me more logically that we return the process instance. that could lead to confusion, but if we introduce the ProcessInstance interface, it becomes clear that the process instance is returned. so on balance i am in favour of introducing ProcessInstance and changing the return value of the signal methods to ProcessInstance
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4225890#4225890
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4225890
15 years, 8 months
[Design of JBoss jBPM] - Re: introducing process instance ?
by jbarrez
anonymous wrote : in the implementation. And then suppose that jPDL wants to add a property to all executions... then you end up in multiple inheritence.
I understand.
Extending implementation classes is indeed a no-go when the process instance implementation must be extendable.
So how do you see the inheritance?
| ProcessInstance (interface) extends Execution
| ExecutionImpl implements ProcessInstance, Execution
|
-> This could lead to castings of executions to ProcessInstances, which aren't process instances (ie no root execution). But for the compiler, nothing is wrong since they are exactly the same...
I don't know, I get a funy feeling about it when I think about it like that... This leads back to the question if processInstance == Execution? (I know we already discussed this, but perhaps I'm seeing this in the wrong perspective here)
anonymous wrote :
| and besides, i think it is best that all executions (incl process instances) are stored in only 1 single table.
|
Definitely
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4225884#4225884
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4225884
15 years, 8 months
build a process with groovy
by chen jian
I wrote a very easy groovy class to build a pvm process, it's funny.
- class:
import groovy.util.BuilderSupport;
/**
* ProcessBuilder
* @author Kent Chen
*
*/
public class ProcessBuilder extends BuilderSupport {
def processDefinition
def unsuredFlows = []
def createNode(Object name) {
return createNode(name, null, null)
}
def createNode(Object name, Object value) {
return createNode(name, null, value)
}
def createNode(Object name, Map attributes) {
return createNode(name, attributes, null)
}
def createNode(Object name, Map attributes, Object value) {
if(name == "process"){
processDefinition = new ProcessDefinitionImpl(name:value)
return processDefinition
}
if(name == "activity"){
def activity = new ActivityImpl(name:attributes.name
,activityBehaviour:attributes.activityBehaviour)
processDefinition.addActivity(activity)
return activity
}
if(name == "transition"){
def transition = current.createOutgoingTransition()
transition.name = attributes.name
unsuredFlows.add(new UnsuredFlow(transition:transition,to:
attributes.to))
return "transition"
}
if(name == "initial"){
return "initial"
}
return name;
}
def void setParent(Object parent, Object child) {
}
def void nodeCompleted(Object parent, Object node) {
if(node == "initial"){
processDefinition.setInitial(parent)
}
if(parent == null){
for(unsuredFlow in unsuredFlows){
def activity =
processDefinition.findActivity(unsuredFlow.to)
activity.addIncomingTransition(unsuredFlow.transition)
}
}
}
}
class UnsuredFlow {
TransitionImpl transition
String to
}
- usage:
def builder = new ProcessBuilder()
builder.process("helloProcess"){
activity(name:"1",activityBehaviour:new TakeBehaviour()){
initial()
transition(name:"t1",to:"2")
transition(name:"t2",to:"3")
}
activity(name:"2",activityBehaviour:new WaitState())
activity(name:"3",activityBehaviour:new WaitState()){
transition(name:"t3",to:"4")
}
activity(name:"4",activityBehaviour:new WaitState())
}
def processInstance =
builder.processDefinition.startProcessInstance()
processInstance.signal("t2");
processInstance.signal();
processInstance.signal();
15 years, 8 months