[Design of JCA on JBoss] - Near term roadmap
by scott.stark@jboss.org
Weston, Alexey, I want to synch up on the near term roadmap items since I'm looking at working with the jca deployers to flesh out the data source management changes. Here is what Weston mentioned. Can we get jira issues for these and focus on getting 2 done?
1) Complete the new deployment model for JBoss5
Most of this work has been completed. The *-ds.xml deployment format has been put into an XSD and the new deployment stuff 'works' (JAXB based). There were issues with hot deployment that I didn't get a chance to look at. The JCAMetaDataRepository is up and running but really needs some work to become fully functional.
2) Pull JCA out of JBossAS
This is simply Maven based build/deployment stuff. JCA should follow with EJB3 in this regard. The legacy JCA implementation should stay in place while this is going on and then things can simply be switched over
3) Core JCA
This is the big one. Currently there is a JCA/MC prototype in CVS that captures a skeleton of how JCA would look in the MC. This needs to be fleshed out and ported into JBoss5 proper.
4) Adapters
In conjunction with #2, the adapter set needs to be pulled out of AS *and* given its own release cycle/model. JCA core and the JCA adapters should independent of one another. One of the problems that plagued legacy JCA was the cross pollination between the two code bases (ie Remote DataSources).
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4050574#4050574
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4050574
16 years, 11 months
[Design of JBoss jBPM] - Re: Problem with more than 1 user
by roccolocko
Im not very familiarize with the use of filters in the web.xml, but probably it has something to do with this:
<filter-name>JbpmContextFilter</filter-name>
<filter-class>org.jbpm.web.JbpmContextFilter</filter-class>
<filter-mapping>
<filter-name>JbpmContextFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
In the class that the mention there (org.jbpm.web.JbpmContextFilter), in the doFilter method, at the end they use the jbpmContext.close();, which I believe is executing everytime a jsp is run, because of the mapping /*
the complete class is the following:
| package org.jbpm.web;
|
| import java.io.IOException;
| import java.io.Serializable;
| import java.security.Principal;
|
| import javax.servlet.Filter;
| import javax.servlet.FilterChain;
| import javax.servlet.FilterConfig;
| import javax.servlet.ServletException;
| import javax.servlet.ServletRequest;
| import javax.servlet.ServletResponse;
| import javax.servlet.http.HttpServletRequest;
|
| import org.jbpm.JbpmConfiguration;
| import org.jbpm.JbpmContext;
|
| public class JbpmContextFilter implements Filter, Serializable {
|
| private static final long serialVersionUID = 1L;
|
| String jbpmConfigurationResource = null;
| String jbpmContextName = null;
| boolean isAuthenticationEnabled = true;
|
| public void init(FilterConfig filterConfig) throws ServletException {
| // get the jbpm configuration resource
| this.jbpmConfigurationResource = filterConfig.getInitParameter("jbpm.configuration.resource");
|
| // get the jbpm context to be used from the jbpm configuration
| this.jbpmContextName = filterConfig.getInitParameter("jbpm.context.name");
| if (jbpmContextName==null) {
| jbpmContextName = JbpmContext.DEFAULT_JBPM_CONTEXT_NAME;
| }
|
| // see if authentication is turned off
| String isAuthenticationEnabledText = filterConfig.getInitParameter("authentication");
| if ( (isAuthenticationEnabledText!=null)
| && ("disabled".equalsIgnoreCase(isAuthenticationEnabledText))
| ) {
| isAuthenticationEnabled = false;
| }
| }
|
| public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
| String actorId = null;
|
| // see if we can get the authenticated swimlaneActorId
| if (servletRequest instanceof HttpServletRequest) {
| HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
| Principal userPrincipal = httpServletRequest.getUserPrincipal();
| if (userPrincipal != null) {
| actorId = userPrincipal.getName();
| }
| }
|
| JbpmContext jbpmContext = getJbpmConfiguration().createJbpmContext(jbpmContextName);
| try {
| if (isAuthenticationEnabled) {
| jbpmContext.setActorId(actorId);
| }
| filterChain.doFilter(servletRequest, servletResponse);
| } finally {
| jbpmContext.close();
| }
| }
|
| protected JbpmConfiguration getJbpmConfiguration() {
| return JbpmConfiguration.getInstance(jbpmConfigurationResource);
| }
|
| public void destroy() {
| }
| }
|
Could I be right?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4050557#4050557
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4050557
16 years, 11 months
[Design of JBoss jBPM] - Re: Problem with more than 1 user
by roccolocko
I solve the problem (kind of).
The thing is that for some reason, in my application I have to close the context (jbpmContext.close()), differring from what they do in the jbpm.webapp example, maybe you can give me a hint in why is that.
Answering the question you post to get more details, it happens with the same user, or with different users.
And it doesn't give me any error, it just hangs.
Here is the modification I did to make it work
This is the original startProcess
| {
| long processDefinitionId = JsfHelper.getId("processDefinitionId");
| ProcessDefinition processDefinition = graphSession.loadProcessDefinition(processDefinitionId);
|
| ProcessInstance processInstance = new ProcessInstance(processDefinition);
|
|
| TaskInstance taskInstance = processInstance.getTaskMgmtInstance().createStartTaskInstance();
|
| jbpmContext.save(processInstance);
| // Fill the task backing bean with useful information
| this.task.initialize(taskInstance);
|
| return "task"
| }
|
This is the startProcess modified
| {
| JbpmContext jbpmContext = JbpmConfiguration.getInstance().getCurrentJbpmContext();
| if(jbpmContext == null){
| jbpmContext = JbpmConfiguration.getInstance().createJbpmContext();
| }
|
| long processDefinitionId = JsfHelper.getId("processDefinitionId");
| ProcessDefinition processDefinition = graphSession.loadProcessDefinition(processDefinitionId);
|
| ProcessInstance processInstance = new ProcessInstance(processDefinition);
|
| TaskInstance taskInstance = processInstance.getTaskMgmtInstance().createStartTaskInstance();
|
| jbpmContext.save(processInstance);
|
| // Fill the task backing bean with useful information
| this.task.initialize(taskInstance);
|
| jbpmContext.close();
|
| return taskInstance.getName();//This is for something on my navigation
| }
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4050543#4050543
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4050543
16 years, 11 months