Description of problem: There is no document about which jar files should be included in an application package for BPM Suite. Although maven is a solution for it, still some customers want to include jars without using maven. It looks like adding all of jars in jboss-bpms-6.0.2.GA-redhat-5-deployable-generic-2.zip/jboss-bpms-engine.zip is not working. (For example, jbpm-test-6.0.3-redhat-4.jar should not be included.) So customer needs a tested jar list. The list is depends on which future application uses, but at lease a list for the needs which an application uses all of futures provided by BPM Suite is necessary. Actual results: There is no document about which jar files should be included in an application for BPM Suite. Expected results: There is a list of jar files which should be included in an application package that uses full of BPM Suite function.
Hisao - thanks. I think that is a good plan. You could also NEEDINFO this bug itself?
Marek - can you provide info on this?
Vikram, Hisao - please take a look at this sample application [1] created by Jiri Svitak. The simple webapp uses the following features: * Human tasks * Persistence * Transactions * Singleton session manager * Context dependency injection Just explore the pom.xml file and you will have the list of dependencies required to enable the above features in an user application. If this information is not sufficient and/or you need anything else please set the needinfo? flag again. [1] https://github.com/jsvitak/jbpm-6-examples/tree/master/rewards-basic
One more thing that could help. An article written by Jiri Svitak about the rewards-basic application located here: http://jsvitak.wordpress.com/2014/01/09/jbpm-6-web-application-examples/
Hisao - can you please go over what Marek has provided. If that is sufficient, please let us know and put together the list from his article so we can include it. If that is not sufficient, please set NEEDINFO for Marek and include your reasons.
Thanks for the advice Mark, Vikram. Using maven-dependency-plugin, I got a jar list. Also I compare the out put with jar files in jboss-bpms-6.0.2.GA-redhat-5-deployable-generic.zip. this is the list which we can used for BPMS 6.0.2: activation-1.1.1-redhat-2.jar aether-api-1.13.1.jar aether-connector-file-1.13.1.jar aether-connector-wagon-1.13.1.jar aether-impl-1.13.1.jar aether-spi-1.13.1.jar aether-util-1.13.1.jar ant-1.8.3.jar ant-launcher-1.8.3.jar antlr-runtime-3.5.jar cal10n-api-0.7.3-redhat-2.jar cdi-api-1.0-SP4-redhat-2.jar commons-codec-1.4-redhat-2.jar commons-collections-3.2.1-redhat-2.jar commons-io-2.1-redhat-2.jar commons-logging-1.1.1.jar dom4j-1.6.1-redhat-5.jar drools-compiler-6.0.3-redhat-4.jar drools-core-6.0.3-redhat-4.jar drools-persistence-jpa-6.0.3-redhat-4.jar ecj-3.7.2-redhat-1.jar freemarker-2.3.19-redhat-1.jar guava-13.0.1-redhat-1.jar hibernate-jpa-2.0-api-1.0.1.Final-redhat-2.jar httpclient-4.2.1-redhat-1.jar httpcore-4.2.1-redhat-1.jar jackson-core-asl-1.9.9-redhat-2.jar jakarta-regexp-1.4.jar javassist-3.15.0-GA-redhat-2.jar javax.inject-1-redhat-3.jar jboss-annotations-api_1.1_spec-1.0.1.Final-redhat-2.jar jboss-ejb-api_3.1_spec-1.0.2.Final-redhat-2.jar jboss-el-api_2.2_spec-1.0.2.Final-redhat-1.jar jboss-interceptors-api_1.1_spec-1.0.1.Final-redhat-2.jar jboss-transaction-api_1.1_spec-1.0.1.Final-redhat-2.jar jbpm-audit-6.0.3-redhat-4.jar jbpm-bpmn2-6.0.3-redhat-4.jar jbpm-flow-6.0.3-redhat-4.jar jbpm-flow-builder-6.0.3-redhat-4.jar jbpm-human-task-audit-6.0.3-redhat-4.jar jbpm-human-task-core-6.0.3-redhat-4.jar jbpm-human-task-workitems-6.0.3-redhat-4.jar jbpm-kie-services-6.0.3-redhat-4.jar jbpm-persistence-jpa-6.0.3-redhat-4.jar jbpm-runtime-manager-6.0.3-redhat-4.jar jbpm-shared-services-6.0.3-redhat-4.jar jcl-over-slf4j-1.7.2-redhat-1.jar joda-time-1.6.2-redhat-4.jar jsoup-1.6.1-redhat-1.jar jta-1.1.jar kie-api-6.0.3-redhat-4.jar kie-ci-6.0.3-redhat-4.jar kie-internal-6.0.3-redhat-4.jar lucene-analyzers-common-4.0.0.jar lucene-core-4.0.0.jar lucene-queries-4.0.0.jar lucene-queryparser-4.0.0.jar lucene-sandbox-4.0.0.jar mail-1.4.5-redhat-1.jar maven-aether-provider-3.0.5.jar maven-artifact-3.0.5.jar maven-compat-3.0.5.jar maven-core-3.0.5.jar maven-model-3.0.5.jar maven-model-builder-3.0.5.jar maven-plugin-api-3.0.5.jar maven-repository-metadata-3.0.5.jar maven-settings-3.0.5.jar maven-settings-builder-3.0.5.jar mvel2-2.1.9.Final-redhat-9.jar plexus-cipher-1.4.jar plexus-classworlds-2.4.jar plexus-component-annotations-1.5.5.jar plexus-interpolation-1.14.jar plexus-sec-dispatcher-1.3.jar plexus-utils-3.0.9.jar protobuf-java-2.5.0.jar sisu-guice-3.0.3-no_aop.jar sisu-inject-bean-2.2.3.jar sisu-inject-plexus-2.2.3.jar slf4j-api-1.7.2-redhat-1.jar slf4j-ext-1.7.2-redhat-1.jar solder-api-3.2.1.Final.jar solder-logging-3.2.1.Final.jar wagon-http-2.0.jar wagon-http-shared4-2.0.jar wagon-provider-api-1.0-beta-7.jar weld-api-1.1.Final-redhat-2.jar weld-core-1.1.13.Final-redhat-1.jar weld-spi-1.1.Final-redhat-2.jar xmlpull-1.1.3.1.jar xpp3_min-1.1.4c-redhat-2.jar xstream-1.4.7.jar Please add this list with Mark's explanation: == The simple webapp uses the following features: * Human tasks * Persistence * Transactions * Singleton session manager * Context dependency injection ==
I need to report one more thing. Although sisu-guava-0.9.9.jar is packaged in the sample project(WEB-INF/lib/sisu-guava-0.9.9.jar), sisu-guava-0.9.9.jar is not in jboss-bpms-6.0.2.GA-redhat-5-deployable-generic.zip/jboss-bpms-engine.zip. I checked bpms 6.0.2 installed by the installer, but there is not sisu-guava-0.9.9.jar either. Since sisu-guava-0.9.9.jar is not in jboss-bpms-6.0.2.GA-redhat-5-deployable-generic.zip/jboss-bpms-engine.zip, I did not list it in the above comment. Is it better to ask productization team about it? If sisu-guava-0.9.9.jar should be in the jboss-bpms-6.0.2.GA-redhat-5-deployable-generic.zip/jboss-bpms-engine.zip, I'll open another BZ ticket. Thx
(In reply to Hisao Furuichi from comment #11) > Thanks for the advice Mark, Vikram. > > Using maven-dependency-plugin, I got a jar list. Also I compare the out put > with jar files in jboss-bpms-6.0.2.GA-redhat-5-deployable-generic.zip. this > is the list which we can used for BPMS 6.0.2: > Hisao/Marek: Since we are about to release the product and the docs for 6.0.3, does this list also work for 6.0.3?
Vikram: Unfortunately, this list is for BPMS 6.0.2. For example, jbpm-human-task-core-6.0.3-redhat-5.jar is packaged for BPMS 6.0.3. For BPMS 6.0.2, it's jbpm-human-task-core-6.0.3-redhat-4.jar. I'll check and update a list for BPMS 6.0.3
Thanks Hisao - I suspected as much. Thanks for looking into it and updating it.
I made a list for BPMS 6.0.3 using bpms-6.0.3-ER1: activation-1.1.1-redhat-2.jar aether-api-1.13.1.jar aether-connector-file-1.13.1.jar aether-connector-wagon-1.13.1.jar aether-impl-1.13.1.jar aether-spi-1.13.1.jar aether-util-1.13.1.jar ant-1.8.3.jar ant-launcher-1.8.3.jar antlr-runtime-3.5.jar cal10n-api-0.7.3-redhat-2.jar cdi-api-1.0-SP4-redhat-2.jar commons-codec-1.4-redhat-2.jar commons-collections-3.2.1-redhat-2.jar commons-io-2.1-redhat-2.jar commons-logging-1.1.1.jar dom4j-1.6.1-redhat-5.jar drools-compiler-6.0.3-redhat-5.jar drools-core-6.0.3-redhat-5.jar drools-persistence-jpa-6.0.3-redhat-5.jar ecj-3.7.2-redhat-1.jar freemarker-2.3.19-redhat-1.jar guava-13.0.1-redhat-1.jar hibernate-jpa-2.0-api-1.0.1.Final-redhat-2.jar httpclient-4.2.1-redhat-1.jar httpcore-4.2.1-redhat-1.jar jackson-core-asl-1.9.9-redhat-2.jar jakarta-regexp-1.4.jar javassist-3.15.0-GA-redhat-2.jar javax.inject-1-redhat-3.jar jboss-annotations-api_1.1_spec-1.0.1.Final-redhat-2.jar jboss-ejb-api_3.1_spec-1.0.2.Final-redhat-2.jar jboss-el-api_2.2_spec-1.0.2.Final-redhat-1.jar jboss-interceptors-api_1.1_spec-1.0.1.Final-redhat-2.jar jboss-transaction-api_1.1_spec-1.0.1.Final-redhat-2.jar jbpm-audit-6.0.3-redhat-5.jar jbpm-bpmn2-6.0.3-redhat-5.jar jbpm-flow-6.0.3-redhat-5.jar jbpm-flow-builder-6.0.3-redhat-5.jar jbpm-human-task-audit-6.0.3-redhat-5.jar jbpm-human-task-core-6.0.3-redhat-5.jar jbpm-human-task-workitems-6.0.3-redhat-5.jar jbpm-kie-services-6.0.3-redhat-5.jar jbpm-persistence-jpa-6.0.3-redhat-5.jar jbpm-runtime-manager-6.0.3-redhat-5.jar jbpm-shared-services-6.0.3-redhat-5.jar jcl-over-slf4j-1.7.2-redhat-1.jar joda-time-1.6.2-redhat-4.jar jsoup-1.6.1-redhat-1.jar jta-1.1.jar kie-api-6.0.3-redhat-5.jar kie-ci-6.0.3-redhat-5.jar kie-internal-6.0.3-redhat-5.jar lucene-analyzers-common-4.0.0.jar lucene-core-4.0.0.jar lucene-queries-4.0.0.jar lucene-queryparser-4.0.0.jar lucene-sandbox-4.0.0.jar mail-1.4.5-redhat-1.jar maven-aether-provider-3.0.5.jar maven-artifact-3.0.5.jar maven-compat-3.0.5.jar maven-core-3.0.5.jar maven-model-3.0.5.jar maven-model-builder-3.0.5.jar maven-plugin-api-3.0.5.jar maven-repository-metadata-3.0.5.jar maven-settings-3.0.5.jar maven-settings-builder-3.0.5.jar mvel2-2.1.9.Final-redhat-9.jar plexus-cipher-1.4.jar plexus-classworlds-2.4.jar plexus-component-annotations-1.5.5.jar plexus-interpolation-1.14.jar plexus-sec-dispatcher-1.3.jar plexus-utils-3.0.9.jar protobuf-java-2.5.0.jar sisu-guice-3.0.3-no_aop.jar sisu-inject-bean-2.2.3.jar sisu-inject-plexus-2.2.3.jar slf4j-api-1.7.2-redhat-1.jar slf4j-ext-1.7.2-redhat-1.jar solder-api-3.2.1.Final.jar solder-logging-3.2.1.Final.jar wagon-http-2.0.jar wagon-http-shared4-2.0.jar wagon-provider-api-1.0-beta-7.jar weld-api-1.1.Final-redhat-2.jar weld-core-1.1.13.Final-redhat-1.jar weld-spi-1.1.Final-redhat-2.jar xmlpull-1.1.3.1.jar xpp3_min-1.1.4c-redhat-2.jar xstream-1.4.7.jar
Sorry, I don't have any info about this issue. Setting the right contact for needinfo
@Hisao, are you happy for the list provided by Marek to be included and updated for 6.0.3 docs?
*** Bug 1155258 has been marked as a duplicate of this bug. ***
Hello Vikram. As Alessandro commented at BZ-1155258. This BZ ticket is not a duplicate of BZ-1155258. Thx
Anton and I have had a few discussions on this offline and he has suggested a slightly different approach to solving this issue. Certainly, from a documentation perspective, it makes a lot of sense. I would like to see what others here think of this. The approach is to document with text description only top level jbpm/kie/drools jars. We would also include the list of all transitive dependencies but won't describe every single jar. If you remove the redundant (transient) jars, you are left with the following 20 jars which can be grouped into drools (BRMS), jBPM (BPMS) and KIE (KIE) libraries: org.drools:drools-compiler:jar:6.0.3-redhat-5 org.drools:drools-core:jar:6.0.3-redhat-5 org.drools:drools-persistence-jpa:jar:6.0.3-redhat-5 org.jbpm:jbpm-audit:jar:6.0.3-redhat-5 org.jbpm:jbpm-bpmn2:jar:6.0.3-redhat-5 org.jbpm:jbpm-flow-builder:jar:6.0.3-redhat-5 org.jbpm:jbpm-flow:jar:6.0.3-redhat-5 org.jbpm:jbpm-human-task-audit:jar:6.0.3-redhat-5 org.jbpm:jbpm-human-task-core:jar:6.0.3-redhat-5 org.jbpm:jbpm-human-task-workitems:jar:6.0.3-redhat-5 org.jbpm:jbpm-persistence-jpa:jar:6.0.3-redhat-5 org.jbpm:jbpm-runtime-manager:jar:6.0.3-redhat-5 org.jbpm:jbpm-shared-services:jar:6.0.3-redhat-5 org.jbpm:jbpm-test:jar:6.0.3-redhat-5 org.kie:kie-api:jar:6.0.3-redhat-5 org.kie:kie-ci:jar:6.0.3-redhat-5 org.kie:kie-internal:jar:6.0.3-redhat-5 org.kie.remote:kie-services-client:jar:6.0.3-redhat-5 org.kie.remote:kie-services-jaxb:jar:6.0.3-redhat-5 org.kie.remote:kie-services-remote:jar:6.0.3-redhat-5 So, in the documentation requested by the client, this would come up as, as an example for the first artifact: Example start: Artifact: org.drools:drools-compiler:jar:6.0.3-redhat-6 Description: The BRMS/Drools compiler jar provides facilities to compile various rule representations (DRL, DSL, etc.) into a corresponding internal structure. In addition, it provides the CDI extension allowing usage of @KSession and other annotations. It is the main artifact used when embedding the BRMS engine. Following libraries are used internally by the **drools(BRMS)-compiler**, therefore they also need to be present on the classpath when this artifact is used: org.antlr:antlr-runtime:jar:3.5:compile org.eclipse.jdt.core.compiler:ecj:jar:3.7.2-redhat-1:compile org.mvel:mvel2:jar:2.1.9.Final-redhat-13:compile com.thoughtworks.xstream:xstream:jar:1.4.7:compile xmlpull:xmlpull:jar:1.1.3.1:compile xpp3:xpp3_min:jar:1.1.4c:compile com.google.protobuf:protobuf-java:jar:2.5.0:compile org.slf4j:slf4j-api:jar:1.7.2-redhat-1:compile Example end. This way, we are providing a manageable list of artifacts/libraries, grouped together in a consistent format, and at the same time, providing a list of the other (transient) libraries that are actually required for each artifact in case it is bundled into a clients application. Does this look like a plausible solution?
Hisao, I didn't really got that list of jars. I have only used the list provided by Marek and filtered every jBPM/KIE/Drools library. Therefore I am setting NEEDINFO and asking Marek: 1) How did you get the original list of JAR? I guess but you have extracted it somehow from your test suites? I think if customers would know this they would be pretty confident with having such a list. 2) Can you please provide us with updated list for BPM Suite 6.0.3? Hisao, one more question for you: Do you want to have this kind of list for every micro version? So even though the BPM Suite 6.0.3. is out, is it really necessary to maintain such list for even BPM Suite 6.0.2 and other former releases? And regarding your notes: Well, sure, it requires additional work, but I think that having that list categorized to smaller chunks, and have a proper description for every chunk has much more value than just include the plain list of jars. Sure, it will require input from respective engineers but I hope it won't be problem for anybody to chip in and help, we essentially need only proper description for the product jars, which is not that much of a work. Marek Winkler++ stepped up and delivered description for Drools jars and its short and very descriptive and I think exactly what we are looking for. Anton
Anton making your comment public. From the docs point of view, it is not too much work to create the list the second time around, once we have an agreed procedure. There will be lot of work for the first time, but I think it is manageable for each new version.
Anton, The following list was obtained from our jbpm-regression-test suite which tests the engine (including human tasks), workitems, transactional behaviour etc, ... The version of the tested product is 6.0.3.GA. I hope that all we need to do now is remove non-relevant dependencies for the customer and add description. @M
Created attachment 956719 [details] jBPM Regression Test Suite Dependencies For 6.0.3.GA
Created attachment 956751 [details] Performance test suite maven dependencies for 6.0.3.GA Attaching the dependency list for 6.0.3.GA. These dependencies are used in our performance test suite.
Created attachment 956754 [details] Performance test suite maven dependencies for 6.0.2.GA Hisao - here's the list of dependencies we have used for performance testing of BPMS 6.0.2.GA
Thanks Marek. Much appreciated. Hisao - with the list of dependencies now for 6.0.3, and Marek's answer to your question, can we go ahead with building this list and including it in the documentation in the format suggested by Anton?
Created attachment 962129 [details] Performance test suite pom.xml for 6.0.2.GA
Created attachment 962132 [details] Performance test suite pom.xml for 6.0.3.GA
Created attachment 1028563 [details] List of Jars
Created attachment 1039699 [details] List of Jars - Updated Updated list of jars.
Setting needinfo for review before this is pushed live to the Customer Portal.
This information has been published to the Customer Portal: https://access.redhat.com/documentation/en-US/Red_Hat_JBoss_BPM_Suite/6.0/html-single/Development_Guide/index.html#appe-JARs_and_Libraries_included_in_Red_Hat_JBoss_BPM_Suite