Este é o espaço para a comunidade brasileira de JBoss, que é o JBUG Oficial do Brasil.
Postado por Marcelo Mrack em 29 junho 2009 às 3:36
Postado por Marcelo Mrack em 23 junho 2009 às 19:26
Postado por Mauro Mattos Vieira em 12 junho 2009 às 15:57
Postado por Marcelo Mrack em 4 junho 2009 às 2:28
Postado por Paulo Jerônimo em 30 maio 2009 às 0:27
Postado por OSNOR MÛRES em 29 maio 2009 às 15:35
Postado por Edgar Silva em 20 maio 2009 às 15:51
Postado por Helem Sandra Albino em 29 março 2009 às 1:37
Postado por Marcelo Mrack em 20 março 2009 às 3:10
Postado por Marcelo Mrack em 17 março 2009 às 2:06
Iniciado por Maicon Rodrigo Keller 1 dia atrás.
Iniciado por Maicon Rodrigo Keller 1 dia atrás.
Iniciado por Maicon Rodrigo Keller 3 Jul.
Iniciado por Marcio Ballem. Última resposta de Marcio Ballem 3 Jul.
Iniciado por Renata. Última resposta de Roan Brasil Monteiro 3 Jul.
Iniciado por Célio Vasconcelos Lima 3 Jul.
Iniciado por Eduardo Ribeiro Brilhante 2 Jul.
Iniciado por Taciano Leles Gomes Fonseca. Última resposta de Taciano Leles Gomes Fonseca 2 Jul.
Iniciado por Yuri de Oliveira Braz. Última resposta de Edgar Silva 2 Jul.
Iniciado por Luciano Borges. Última resposta de Roan Brasil Monteiro 2 Jul.


As many of you might know, jBPM is extensible in many ways. You can
What many of you probably do not know is that the processdefinition.xm file besides being parsed is just stored in the database as well and it is very easy to retrieve
ProcessDefinition processDefinition = jBPMContext.getProcessInstance(pid).getProcessDefinition();
FileDefinition fileDefinition = processDefinition.getFileDefinition();
InputStream inputStream = fileDefinition.getInputStream("processdefinition.xml");
Converting this to xml would be the next step so you can have real access to it (XmlUtil being a jbpm class)
Document document = XmlUtil.parseXmlInputStream(inputStream);
Element documentElement = document.getDocumentElement();
Now what could you do with this? Well with access to each element via DOM or XPath, a lot. First of all, the jBPM3 console uses this same concept to read the forms.xml file that contains the mapping from tasknames to form files and reads the xhtml form files from the database this way. It would e.g. not be difficult to change this to use a form attribute on a task element instead of using the forms.xml file
<start-state name="Create new web sale order" >
<task swimlane="buyer" form="form.create.xhtml"/>
<transition to="Evaluate web order" />
</start-state>
This is comparable to what jBPM4 will use. You would not gain much doing this in jBPM 3 since you’d have to do this manually in the gpd.
What else? Well, some of you might remember that jBPM 3.0 it was I believe had the option to automagically generate the forms based on the variables that were present in the task.
<start-state name="Create new web sale order">
<task swimlane="buyer">
<controller>
<variable name="item" mapped-name="Item" access="read,write" />
<variable name="quantity" mapped-name="Quantity" access="read,write" />
<variable name="address" mapped-name="Address" access="read,write" />
</controller>
</task>
<transition to="Evaluate web order" />
</start-state>
Would have generated a form. But *not* like the one in the jBPM 3.2 websale example. The major difference being that the custom form in the example contains code to specify that the quantity input should be an integer
<h:inputText value="#{var['quantity']}" converter="javax.faces.Integer"converterMessage="The quantity must be numeric." validatorMessage="The quantity must be at least 1.">
<f:validateLongRange minimum="1"/>
</h:inputText>
Both solutions have advantages but also the disadvantage that it did not support the functionality of the other and both could not take the type into account (since it could not be specified at all) making every input a string . The design-time generated forms at least let you adapt those manually. Loosing those changes when a variable was added and the form regenerated. Now you know jBPM is extensible in the xml definition, putting a type on the variable would have been an option without changing the persistence class of the variable instance. Creating a template with conditional rendering, a custom jsf var list bean and some small other changes, would have given you the automagically generated form which does take the type into account:
<jbpm:dataform>
<f:facet name="header">
<h:outputText value="#{taskName}"/>
</f:facet>
<!-- TASKFORM ROWS -->
<c:forEach items="#{vars}" var="var">
<jbpm:datacell>
<f:facet name="header">
<h:outputText value="#{var.name}"/>
</f:facet>
<h:inputText value="#{var.value}" rendered="#{var.type == 'String'}"/>
<h:inputText value="#{var.value}" rendered="#{var.type == 'Integer'}" converter="javax.faces.Integer" converterMessage="Must be numeric."
</h:inputText>
<rich:calendar value="#{var.value}" rendered="#{var.type == 'Date'}"/>
…
</jbpm:datacell>
</c:forEach>
…
</jbpm:dataform>
This is just one example. You could also have changed the composite access attribute to the more logical separate ‘readOnly’ and ‘required’ attribute (the write only never made real sense to me in real life) and if you continue, why not put validation patterns in there, error messages, and what more. In the end you could almost as well have put the .xhtml form fragement in there as a nested element (you could… I’m not kidding).
Personally, I never went this way, not even putting in just the type in the variable definition. Then why this post you might ask. Well, I just wanted to describe the concept of this extensibility and I did use it but in a completely different way. More on this in a later post

It’s July 4th and we have an extended weekend in the US which is a good enough excuse to catch up on some blogging; at least until the Strawberry Margaritas start flowing. At Java One this year we announced an initiative called Open Choice which I blogged about previously. Fundamentally Open Choice is about broadening our footprint and giving customers what they want and moves us closer to supporting the whole applications infrastructure tier rather than just parts.
Open Choice isn’t some big, far-into-the-future vision thing it’s something we’re doing now. This year. Product-wise it consists of four offerings (where previously there was only one) and as we release them I’ll give you my perspective on why they’re important. Unfortunately I’m already a little behind - we’ve already delivered two products out of four and the third is in Alpha moving quickly towards Beta.
So let me use this post to talk about JBoss EWS 1.0 (Enterprise Web Server). EWS is basically a packaged, certified and tested bundle of Tomcat and Apache HTTP - the industry’s dominant Java web-container and Web Server respectively. We round out the bundle with mod_jk, APR and most importantly a management agent for JBoss ON. We currently support and certify on Red Hat Enterprise Linux and Solaris with Windows coming next.
Providing JBoss ON management support is pretty important - it gives customer the ability to manage the application and web stacks easily and consistently using the same toolset. If you want to learn more - there is a free Webinar on July 14th at 2pm Eastern - more here.
The rationale for supporting Tomcat is that it is absolutely the dominant Java web-container and has become an important part of the corporate IT fabric. Tomcat has been popular for years but in the last two or three I’ve seen it evolve into a much more strategic platform for IT. Many customer I speak with have defined two distinct tiers of functionality - essentially a full Java EE stack and a lighter-weight Tomcat platform. By supporting both the dominant Java EE implementation (JBoss EAP) and Tomcat, combined with the ability to manage from a single tool - I think we can do a much better job of satisfying a much broader customer base than our competition. Here’s an (albeit unscientific) chart from a recent survey that demonstrates this well :
It’s also interesting to note that from this survey JBoss’ deployment share is more than Websphere and Weblogic combined.
OK, so JBoss EWS 1.0 is out and we have customers deployed or deploying some pretty large, strategic apps. but I’m already thinking about the next version (code named Cavalier). Some initial ideas for Cavalier are :
Any other thoughts are always welcome - leave a comment or get in touch directly.
Adicionado por Edgar Silva
Adicionado por Edgar Ramos
Adicionado por Edgar Ramos
Adicionado por Edgar Ramos
Adicionado por Edgar Silva
Bem-vindo a
JBoss Brasil
© 2009 Criado por Edgar Silva no Ning. Crie Sua Rede Social
Badges | Relatar um incidente | Privacidade | Termos de serviço