How to migrate from GlassFish to WildFly

The Imixs Workflow Project was started in the early beginning of the JEE5 Specification. Since than all workflow components where tested on GlassFish V2 and V3. GlassFish is a great application server and still the Reference Implementation for JEE. So we recommend the usage of GlassFish for development and in production for our customers.

But since Oracle announced stopping commercial support for GlassFish and recommend there customers to use WebLogic in productive environments its time for open source projects (like the Imixs project) also look for alternatives. And the brand new JEE Server WildFly from RedHead is such an alternative. WildFly is based on the well known JBoss Application server and a promising platform for JEE Open Source Projects. In the following sections I will explain what is necessary to migrate a JEE Project form GlassFish to WildFly. Continue reading “How to migrate from GlassFish to WildFly”

EJB 3.0 and the TransactionAttributeType REQUIRES_NEW

Today I would like to share my experience about the EJB  TransactionAttributeType “REQUIRES_NEW”. The goal of this attribute is to isolate a method from the current transaction context and run the code in a new separate transaction. The transaction attribute can simply be annotated to a method:

@TransactionAttribute(value = TransactionAttributeType.REQUIRES_NEW)
 public void processSingleWorkitem(ItemCollection aWorkitem) {
 workflowService.processWorkItem(aWorkitem);
 }

But this annotation can become a little bit tricky if you need such a construction in a single EJB. Continue reading “EJB 3.0 and the TransactionAttributeType REQUIRES_NEW”

Imixs migrates to GitHub

We have now started the migration of the Imixs Workflow sources from Subversion to Git. In the past all sources of the Imixs Workflow Project were available on java.net. But now we started the migration to GitHub. This will make it easier for the community to join the project.

In addition we also plan to reorganize the Maven Project structure from a single project structure to a multi-module structure. The reasons for this step are a new deployment plan for the maven artifacts. With the multi-module structure we can simultaneity release all parts of Imixs Workflow. This was also made in the past. But with the new structure we can simplify the maven release process.

Join us on GitHub!

Imixs Workflow 3.1.4 Released

With the latest version of the Open Source Workflow Engine Imixs Workflow the project published a stable and scalable framework for the Java Enterprise architecture. The new release includes several bug fixes and provides new features and functionality.
With the new Business-Rule Plug-in it is now possible to add custom business rules into a workflow model. Business rules can extend the capabilities of a business process in various kinds. Imixs Workflow allows to write a business rule in any script language – like JavaScript Groovy Scala, JRuby, or Clojure.

In addition, the new version of Imixs Workflow is now offering a new calendar based version of the Imixs Workflow Scheduler. With this module, workflows can be triggered time-controlled. A new configuration interface allows to provide timer events in a calendar based format. This method is already known from the chron-jobs of Linux and provides a more flexible way to control event based business processes.
Addition to various minor improvements the exception handling has been extended and adapted. This now allows to implement business processes faster and adapt business logic more flexible way.
Read more on http://www.imixs.org

RELEASE 3.1.2 NOW AVAILABLE

Today we deployed the next release 3.1.2. This release includes bug fixes concerning the follow-up issue from the WorkflowKernel. In addition the WorkflowKernel now supports also a new feature to unregister plug-ins. The ItemCollection supports additional type-save getter methods and provides additional type check methods. This makes the ItemCollection more flexible to use when converting property types.

See the change log for more details: Imixs Change Log

VERSION 3.1.1 NOW RELEASED

Today we released the new version 3.1.1 of the Imixs Workflow engine. This release includes several bug fixes and enhancements to the plug-in API. The new version now supports full HTML Mails. The Mail Plug-In API was extended and provides more flexibility also in adapting the Mail functionality. The size of a search result provided by the Lucene Plug-In can now be limited.

In addition this new release now provides CDI Support for all workflow plug-ins. This extension simplifies the way to write custom workflow plug-ins or extend existing plug-ins.

The Imixs REST Service API was extended and supports a new post-method to receive processed form data in JSON format. This can be used in conjunction with jQuery used in the Imixs Script module.

CDI Support in EAR

There are currently some restriction in using CDI beans provided in different jars contained in one EAR. So see also the following discussions:

https://issues.jboss.org/browse/WELD-1367
http://java.net/jira/browse/GLASSFISH-17396
http://stackoverflow.com/questions/7610003/injecting-a-bean-from-a-different-jar-in-weld

Why we need Workflow Engines…

Building robust scalable business applications becomes more and more efficient since the Java Enterprise standard (Java EE) has reached a level where developers can concentrate on the business logic and not about all the backend stuff like database management or security issues.
So from this point it easy today to setup a new business application in short time with reasonable effort. The Java Persistence API (JPA) provides a natural way to map the business objects from the real world into a software system. The JAAS Standard makes it easy to add security. And with different connectors we can connect a business application also to existing applications to exchange any kind of data. So it seems that everything is prepared for developing big business applications. Why should we think about managing the business process? Isn’t it easy enough to add all the required information into our business objects as simple attributes? Continue reading “Why we need Workflow Engines…”

NEW WORKFLOW ENGINE VERSION 3.1.0. NOW RELEASED

The new release of Imixs Workflow includes now full JEE6 support and also CDI integration. This considerably simplifies the integration of the Imixs Workflow components in any kind of java enterprise business application.
Web developers will benefit from the new version of Imixs Workflow Faces in a special way. The new release 3.1.1 provides a JSF integration based on jQuery. Developers can use the possibilities of JSF and Facletes while leveraging the full power of jQuery and jQuery-UI.
The imixs-workflow-jax-rs component provides a RESTservice API for exchanging workflow data with other applications – e.g Eclipse BIRT. On the other hand it is possible to integrate the Imixs Workflow using Ajax.

Released components:

  • imixs-workflow-core-3.1.0
  • imixs-workflow-engine-3.1.0
  • imixs-workflow-jax-rs-3.1.0
  • imixs-workflow-faces-3.1.1

How to analyse the SQL data for an Imixs Workflow Entity

The data of an Imixs entity object is stored in a set of datatables based on the JPA objects provided by the imixs-workflow-engine module.

In some cases it can be interesting to verify the values of an ItemCollection separated into the SQL datatables which are used to select sub sets of entities. If you know the $Uniqueid of a ItemCollection you can select the values using a SQL statement on your SQL database like this:

select * from TEXTITEM 
where ID IN (select textItems_ID 
             from ENTITY_TEXTITEM 
             where Entity_ID='13b334b3e6e-f9b13d6')

In this example all text values for an entity with the $Uniqueid ’13b334b3e6e-f9b13d6′ are returned.