Posts in Category: bpm

Block your agenda: Activiti Community Day, 10th of June in Paris!

 

It’s been a while since the last one, but now it’s back (and how!): the Activiti Community Day!

And it’s going to be a Community Day that will go in the history books: not only have we arranged a superb location right in the heart of Paris (with a panoramic view over the city), we also have huge news which we will announce at the event. Activiti is now five years old, and it has grown more than we ever anticipated and it is used all over the globe in all kinds of industries and ways beyond our imagination. In those five years, we’ve learned a ton of how people use Activiti and how they want to use it going forward. So, in the past months, we’ve been working hard at the next evolution of the core Activiti Engine. And what better place to announce and show it than on the Activiti Community Day?

Do I hear mumbling of Activiti v6? No Comment. 😉

And if that wasn’t enough already, we’re currently lining up some top-notch speakers with real-life Activiti experience in very interesting environments. More about that soon once we have further fleshed out the agenda.

 

If you are working with Activiti today, you don’t want to miss it. If you plan to use Activiti, you don’t want to miss it. It will be a major milestone and you will have the opportunity to witness it from the front line and influence it. We don’t just plan to show it, we plan to really discuss the roadmap and ideas for the very future of Activiti! 

Oh yeah, did I already mention it’s completely free? No entrance fee thanks to sponsoring from Alfresco!

So block your agenda and arrange your travel:

10th of June 2015, Espace Montmartre : 5, rue Saint Eleuthère 75018 Paris (very close to the Sacré-Cœur basilique)

Details of the venue: http://www.groupe-pearl.com/location-salles-paris/espace-montmartre. When there’s a registration page live, I’ll post a new blog.

Interested in doing a talk during the Community Day? Do reach out to us (here below this post, on twitter, email, …)! We still have a couple of slots open!

Interview about Activiti on Software Engineering Radio

My good friend Josh Long did an interview with me about Activiti and Business Process Management in general. I must admit, I was quite nervous before the recording, as I had never done a podcast before (note : the editors at SE radio did a really great job 😉 ).

Here’s the link: http://www.se-radio.net/2015/03/episode-223-joram-barrez-on-the-activiti-business-process-management-platform/

All feedback, as always, much appreciated!

Getting started with Activiti and Spring Boot published on The Spring Blog!

My article “Getting started with Activiti and Spring Boot” has been published today on The Spring Blog:

https://spring.io/blog/2015/03/08/getting-started-with-activiti-and-spring-boot

It fills me with great pride to be published there. I’ve been a fan of Spring for many years and believe that it houses many of the awesome developers in current Java-land. Anyway, please give the article a read and if you have any remarks/questions/whatever please add it on the article there, not here.

Activiti : Looking Back At 2014

Our general manager (aka “my boss”), Paul Holmes-Higgin has noted down his thoughts about the past year about Activiti.

You can read it here : Alfresco Activiti Shakes BPM World

Adding my own personal thoughts: 2014 was awesome! We did *a lot* of work on Activiti. Countless of hours spent brainstorming and hacking away … but it was worth it. I’m really, really proud of what we’ve done and what we’re doing. I’m really proud when I see what Activiti users and customers all around the globe are doing with the stuff we come up with. And we get to see some really awesome stuff too.

And there is no way we’re slowing down. 2015 is going to be huge. We’ve got some really cool things in the pipeline. Watch my blog for more news about some of it soon …

All the best for 2015!

Joram

Activiti + Spring Boot docs and example

With the Activiti 5.17.0 release going out any minute now, one of the things we did was writing down documentation on how to use this release together with Spring Boot. If you missed it, me and my Spring friend Josh Long did a webinar a while ago about this.

You can find the new docs already on github master (scroll down to ‘Spring Boot’ section): https://github.com/Activiti/Activiti/blob/master/userguide/src/en/ch05-Spring.adoc#spring-boot. You can also see we switched to Asciidoc for our docs a couple of weeks ago. And GitHub renders that natively, which is awesome.

While I was writing the documentation, I created a sample application to verify all the stuff in there actually works.  You can find that example here: https://github.com/jbarrez/spring-boot-activiti-example. It has tags for each of the steps (which match the steps in the docs). So to start, checkout tag step-1 and so forth.

This is the first ‘official’ release of the integration (it was in snapshot versions before), so do give it a spin and let us know what you think about it!

 

How to create an Activiti pull request

Once every while, the question on how to create a pull request for Activiti is asked in the Forum. It isn’t hard to do, but specially for people that don’t know git it can be daunting.

So, I created a short movie that shows you how easy it is and what you need to do to:

 

Looking forward to your awesome fixes and features in a pull request!

 

Edit: Zoltan Alfattar mentioned to me on Skype there is a better way using branches:

altfatterz
@jbarrez Nice, however creating separate branch would be the better https://t.co/nco8rRZlk3
05/11/14 15:06

With which I agree fully. However, for people who are new to Git, it might be too complex to grasp. But surely have a look at the link if you are interested in doing it in the ‘proper’ way.

Webinar ‘Process Driven Spring Applications with Activiti’ now on Youtube

As I mentioned, I did a webinar on Spring Boot + Activiti last week (at 6 am …. yes, it hurt) with my good pal Josh Long.

If you missed it, or want to see the awesomeness again, here’s the recording:

 

On a similar note, the webinar that Josh did before this one, on Spring Boot / Spring Cloud is *really* awesome. All this micro-service architecture stuff suddenly made a lot of sense and all the pieces of the puzzle fell together by watching this webinar. Go check it out (after the Activiti webinar, obviously ;-)), it’s well worth your time.

Upcoming Webinar: Process Driven Spring Applications with Activiti – Sept 23rd

 

Next week, I’ll be doing a webinar together with my friend Josh Long (he’s a Spring Developer Advocate, committer to many open source projects and of course Activiti). I will show some of the new Activiti tooling we’ve been working on recently, while Josh will demonstrate with live coding how easy it is to use Activiti in Spring Boot (spoiler: really easy).

You can register for the webinar for free here: https://spring.io/blog/2014/07/29/webinar-process-driven-spring-applications-with-activiti-sept-23rd

One day later, the Alfresco Summit will be kicked off in San Francisco. I’m joining two talks there:

For those who can’t make it to San Francisco: don’t worry, we’ll be landing in London two weeks later, Oct 7-9!

Running Activiti on JDK8

… just works!

All the Activiti code is written with JDK6 compatibility in mind, so it’s no surprise it just works out of the box.

Scripting

There are however some subtle changes when you use Script Task with javascript. In JDK 8, the Rhino engine has been replaced with Nashorn (which is a very good thing!).

Our QA did show us that some of our unit tests with javascript script task did not pass on JDK 8. But don’t worry, the changes are minimal. More precise, we found two things

1. importing packages

In JDK 6/7 you can import a java package and then use classes from that package in your javascript (eg to use an arraylist):

importPackage (java.util);
var myVar = new ArrayList();

This doesn’t work on Nashorn and thus JDK 8. However, the nice developers of Nashorn have provided a way to support this in a backwards compatible way by loading a certain file:

load("nashorn:mozilla_compat.js");
importPackage (java.util);
var myVar = new ArrayList();

And everything will work again nicely.

2. Implicit variable fetching

This one is more subtle. On JDK 6/7 you could do this

var outcome = task.getVariableLocal('outcome');
if (outcome == 'approve') {
  task.setCategory('approved');
} else {
  task.setCategory('rejected');
}

However, due to an error in our unit test, we didn’t actually set the variable on local scope but on process instance scope. Still, the test worked on JDK 6/7 and failed on JDK8!

It took me some deep debugging, but finally I found the error. In JDK6/7, the getVariableLocal(‘outcome’) does resolve to null too. However, it does a fetch of getVariable(‘outcome’) immediately afterwards. This does not happen on JDK8.

There is a subtle thing going on here: on JDK6/7 something like

var outcome;

or

var outcome = null;

triggers a lookup in the ScriptingBindings, which defaults to a getVariable() call in Activiti. The script bindings call does not happen on JDK 8, which is actually more correct! So this is actually something to be aware of when using JDK6/7.

TL;DR

Activiti just works on JDK 8. If you are using javascript in your script task, be aware of subtle changes.

Review ‘Activiti 5.x Business Process Management’ by Zakir Laliwala and Irshad Mansuri

I’ve been contacted by the people of Packt Publishing to review their recent book release of the ‘Activiti 5.x Business Process Management”, written by Dr. Zakir Laliwala and Irshad Mansuri. For an open source project, books are a good thing. They indicate that a project is popular, and often people prefer books over gathering all the information from bits all over the internet. Don’t expect any insight into use cases, process modeling best practices or how to fit Activiti architecturally though, this is a hands-on description on how you get started technically with Activiti.

The book, as is clear from the cover, clearly aims to people who want to get started with Activiti and have no prior knowledge of it:

7065OS_Activiti 5.x Business Process Management Beginner's Guide

 

So, before going into more details, I’m happy to report that the book does exactly that. It introduces Activiti and its concepts gently and with a lot of screenshots of installing components but also when executing certain code. For people who are well advanced in Activiti certain things are a given, but I can imagine for people that have to start from zero these steps help to get bootstrapped quicker and with a lot less pain during learning.

In the past, I’ve read (and reviewed) books from Packt where the English wasn’t good to a point where it hindered reading it. However, the English in this book is really well-written and understandable. Absolutely no complaints here.

Some of the remarks I noted down some small remarks while reading the book:

  • The XML formatting of the process XML is often not readable due to lack of indentation and formatting. Probably a problem in general for printed books, but it’s very hard to understand the processes without structure.
  • I liked the fact that many concepts in the book were accompanied with a unit test, something I definitely support!
  • The bit about reporting had a bad screenshot, which kinda defeats the purpose of showing reporting
  • In chapter 5, it seems to hint that the activiti.cfg.xml way of configuring the engine is ‘Spring-only’, but actually this can be used outside of spring (only relying on spring-beans to have the parsing)
  • Chapter 6 about the services was really good: clearly explained and always with a short example/unit test. Also explains how to do debugging of processes. Many people will find this chapter useful
  • Chapter 7 was the same, but now for REST. Decent explanation of rest client install *and* unit testing with an http client. Nice.
  • Chapter 8 (integration with Liferay/Drools/OSGI) felt a bit ‘off’. It’s something I would have placed at the end of the book, and I definitely would have placed chapter 9 (advanced Activiti constructs) before as it fits better. Also, it doesn’t really go deep, it’s more about how Activiti is integrated with those technologies, accompanied with screenshots of the installation process. No insight into use cases or how it would be used in reality (granted, which is probably not the goal of this book).

So in summary: I cheer for everything being written about Activiti, so I really like the fact that this book was written. But more-so, I think it targets the beginners audience well. It has one goal: get a technical someone going with Activiti quickly and teaching the basics. I believe  people who are in the dark about Activiti and need to get started will be able to get going quickly with this book.