06 Feb 2012

feedAggregated feed of all JBoss feeds

Tieing JBoss AS 7 to multiple realities

We had an interesting discussion at FOSDEM about collaboring on a Free and Open Source Software project like JBoss AS 7. To really allow FOSS developers to participate you need to make sure only FOSS build tools and dependencies are used. Anything else and you would raise the bar for your contributors.

An interesting point was the usage of a non-FOSS issue tracker. Should you use an issue tracker which does have free access, but is not FOSS?

Personally I would say: why not? As long as you control and own the data it should pose no real threat. Just make sure the acquired license does allow for an unlimited number of free access.

Using Fedora 17 makes sure your build tools, dependencies and even transitive dependencies are FOSS. But does it lower the bar for contributors?

In actuallity no, because the build tool used (mvn-rpmbuild) and the component set available (latest and greatest only) makes for a different result than upstream. But this does not only go for Fedora (and it's mvn-rpmbuild), it goes for every Maven (or other build tool) project that draws in dependencies.

Looking at building Maven 3.0.3 using Maven 3.0.3 it would download and use maven-artifact 2.0 to 2.0.9, while at runtime it only uses maven-artifact 3.0.3 by its own definition.

Java developers give little thought about the runtime platform where their component is going to run. Regardless of the use of Maven, Gradle or Ant / Ivy. Or running on RHEL, Fedora, Debian or Windows. It will create issues once you want to integrate on a well-defined component set.

So we should really give more thought into where our components are going to run, be it Windows, OS X, Debian, RHEL or Fedora.

And we should try to foster an environment in which all these realities can collaborate.

06 Feb 2012 11:48am GMT

JUDCon 2012, Bangalore - Photos and presentations uploaded

The photos and the presentations of JUDCon 2012 which was held in Bangalore have been uploaded. You can get the photos from here and the presentations from here. The videos will be uploaded soon.


06 Feb 2012 7:27am GMT

05 Feb 2012

feedAggregated feed of all JBoss feeds

JBossWS 4.0.1 release

JBoss AS 7.1.0.Final is coming soon, so here we are with the last minute updates in the webservices area with another JBossWS release ;-)

JBossWS 4.0.1 includes important bug fixes and covers some application server integration changes for improving management. Besides that Apache CXF has been upgraded to the 2.4.6 release which also comes with many improvements and bug fixes.

Have a look at the release notes for further details [1][2]! Feedback is welcome as always.

05 Feb 2012 9:31am GMT

03 Feb 2012

feedAggregated feed of all JBoss feeds

m2e(clipse)-wtp 0.15.0 : New & Noteworthy

Maven Integration for Eclipse WTP 0.15.0, a.k.a m2eclipse-wtp, a.k.a m2e-wtp is available.

This release contains mostly bug fixes, but a few improvements managed to slip in. The complete release notes are available here.

m2e-wtp 0.15.0 is compatible with the JavaEE distributions of Eclipse Helios and Indigo, requires at least m2e 1.0 (works with 1.1) and mavenarchiver plugin >= 0.14.0 (0.15.0 should be automatically installed).

As usual, m2e-wtp can be installed from :


So let's see what are the highlights of this new release :

Packaging inclusion/exclusion support improvements

For war project, previous m2e-wtp versions used to use <packagingIncludes> and <packagingExcludes> attributes from the maven-war-plugin config to enable (or not) the deployment of project dependencies to WTP servers. In 0.15.0, the same level of support has been added to EAR projects using maven-ear-plugin 2.7+. However, the problem with this approach is, other resources (web pages, classes ...) are not properly excluded (using the <*SourceInclude> and <*SourceExclude> attributes).

In order to address this problem, Rob Stryker, committer on WTP and lead of JBoss AS tooling in JBoss Tools, provided an implementation for JBoss AS servers that might be generalized to other WTP server adapters (if they decide to do so). Basically, some new metadata is added to the project's .settings/org.eclipse.wst.common.component like :

<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
    <wb-module deploy-name="webOrEar">
         ...
        <property name="component.inclusion.patterns" value="pattern1,pattern2"/>
        <property name="component.exclusion.patterns" value="pattern3,pattern4"/>
    </wb-module>
</project-modules>

The patterns are separated with a comma and exclusions take precedence over inclusions : resources matching one of the exclusion patterns are not deployed, even if they match one of the inclusion patterns. That solution is not maven-bound so any other kind of project can benefit from it.

Now all m2e-wtp 0.15.0 does is map the maven patterns to their equivalent component metadata. This gives :

component_patterns.png

In the example above, a warning is displayed as both <warSourceIncludes> and <packagingIncludes> are defined. Since both patterns could overlap, it might lead to some weird behavior where WTP would actually deploy more files than a maven CLI build. In order to minimize (we can not totally solve) that potential discrepancy we only keep the packaging patterns in the component files and recommend using <packagingIncludes> only.

Currently, this feature only works in combination with the JBoss AS Tools from JBoss Tools 3.3.0.Beta1 (nightly builds available from http://download.jboss.org/jbosstools/updates/nightly/trunk/), but we'll try to make other WTP Server adapter vendors support it in the future (as part of WTP core API).

Warnings added when unsupported dependency types are detected

As of today, if a project depends on another workspace project of type ejb-client or test-jar, that specific dependency will not be packaged properly by WTP, as Maven would do in command line. Moreover, you'll experience some class leakage on the compilation and test classpaths in Eclipse (ex: non client classes being visible). The only known workarounds to this issue are to disable workspace resolution, or close the dependent project and rely on the dependencies from the local maven repository.

Ideally, in order to make the deployment part work, we would need to introduce new WTP components, but the current WTP API doesn't support it, yet. So, until this is fixed, warning markers are added whenever a project depends on such "unsupported" types. That should hopefully give users an idea of the problem and how to circumvent it.

unsupported-dependency-type.png

Better handling of dependencies in war projects

Previous m2e-wtp versions had, in some use cases, some outstanding issues with regard to dependency management of war projects. In particular,

  • when 2 dependencies of the same artifact, but having a different classifier were added to a web project, only one would show up on the classpath. This has been properly fixed.
  • in some cases, the timestamped version of a SNAPSHOT dependencies from the local repository, would be copied under the target/ folder, causing some jar locking issues in windows. The rationale behind this behavior is, maven-war-plugin packages snapshot dependencies using the timestamp identifier. Since the name of file in the maven classpath library needs to match the one deployed by WTP, a copy was performed. To fix this problem, the default file pattern matching used for dependency deployment has been changed to @{artifactId}@-@{baseVersion}@@{dashClassifier?}@.@{extension}@. This means that, by default in m2e-wtp, SNAPSHOT dependencies are now deployed using the SNAPSHOT suffix instead of the timestamp. If you need to force the use of timestamped artifacts, then you need to explicitely decalre the following in your pom.xml :

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-war-plugin</artifactId>
  <version>2.2</version>
  <configuration>
    <outputFileNameMapping>@{artifactId}@-@{version}@@{dashClassifier?}@.@{extension}@</outputFileNameMapping>
  </configuration>
</plugin>

Removal of conflicting facets on packaging change

If you had a java utility project, that you wanted to upgrade to an EJB project for example, a constraint violation would be raised upon project configuration update (EJB and Utility facets can't be both installed).

This has been fixed by removing all conflicting facets when you change the packaging of a Java EE project, making that conversion completely transparent.

What's next?

m2e 1.1 introduces a new Eclipse to Maven project conversion API. It means that, in m2e-wtp.next, we will be able to automatically convert existing WTP project configuration to maven's. Dependencies will still need to be set/translated manually but that's a pretty good start IMHO.


Finally ...

I would like to thank the m2e-wtp community at large for their support and contributions, that's what make this project move forward and make it one of the most popular projects on the eclipse marketplace.

Contributions can take the form of :

Keep it up.

Fred.

https://twitter.com/#!/fbricon

03 Feb 2012 5:55pm GMT

FOSDEM'12

This weekend is FOSDEM'12 (February 4-5th), the biggest FREE conference, in Brussels (Belgium) and Marco will be giving a presentation + demo on jBPM (focusing on the web-designer mostly). So if you don't have anything to do already this weekend (yes, it is during the weekend, so no excuses you need to be at work ;)), or if you're at FOSDEM already, go and check it out !

From his blog:

FOSDEM is the "Free and Open Source Software Developers Meeting" and it's happening this weekend in Brussels. It's a fairly large conference (5000-10000 attendees) covering all sorts of free software.

And I've been working on a presentation for it about jBPM Designer this week. Putting a presentation together can sometimes be more work than you expect - hmm, maybe more work than I expected then, at the least.

Here, good readers, is a link to a description of the presentation. Geoffrey De Smet, another core Drools/jBPM developer, is doing the first half the presentation on Guvnor, which Designer integrates into. You can find his blog post about it here. He's also the lead developer on the Drools Planner project which I like. "You should check it out" are the words that you just read and that you already knew were coming.

A good friend of mine who's somewhat of an expert in learning told me that all presentations and trainings should attempt to pose one question to the viewers and answer it. In this presentation, my question is

How do we let business analysts to do their work well (so that they leave the business software developers alone)?

It's a question which I have at times found very pertinent, even though I have worked with some very good business analysts.

Designer is a great little web project that already is a polished, easily usable web application and integral part of Guvnor (from the jBPM standpoint) - and it's getting better every day. In short, Tihomir (Surdilovic), who's probably done most of the work on the project, has added lots of little nice features that make it easy to develop a (BPMN 2.0) process. The Guvnor integration means that, as Tiho put it, Guvnor becomes a "one-stop shop" for developing, storing and deploying processes.

You can just open up Guvnor (in a browser), create a new process, edit it, save it, build the package and then go directly to jbpm-console and BAM!, start your process. That's kinda nice.. !

In my presentation, I'll go over the background of BPM, BPMN and JBPM (if you're attending, please practice saying that 10 times quickly), some of the main features of Designer, and then give a quick (max 10 minute?) demo. We might finish a few minutes early - depending on questions.

03 Feb 2012 5:17pm GMT

Drools Developer's Cookbook review


A few weeks ago Packt Publishing released the Drools Developer's Cookbook, written by Lucas Amador. I had the opportunity to review an early draft of the book last year and when I received my copy of the released book I was eager to read it and check out how was it. I am glad to say I am pleasantly surprised.

Packt is known for publishing many high quality books on open source projects and it has already published 2 other books on Drools, but managed to publish this 3rd book with a completely different perspective and as so, allows readers to choose which ones they would benefit more from.

While JBoss Drools Business Rules, by Paul Browne, focus its content on higher level rule authoring and an earlier version of Guvnor, Drools JBoss Rules 5.0 Developer's Guide, by Michal Bali, is a deeper tutorial-style reading that builds on the examples from chapter to chapter, detailing how every piece of the puzzle fits together.

Drools Developer's Cookbook on the other hand, as the name implies, contains recipes on how to leverage Drools' features to effectively build business solutions. This is an excellent format for those with some knowledge of the platform and that want a detailed reference on how to use specific features. While the Developer's Guide is more suited for a throughout reading, the cookbook is a good reference material that can be read on a chapter basis in any order the reader wishes.

Each recipe is divided in usually 3 sections:

Some recipes also have references for additional documentation or information.

The book covers an extensive set of components and features, as can be seen in the table of contents: from the core Drools Expert, to Guvnor, Fusion, Planner, Camel/Spring/JPA integration and even a bit of jBPM. I think the book will be really helpful to a large percentage of the Drools user base.

Unfortunately, the book is not perfect. There are some minor issues, like some typos in some of the printed examples. The good news is that this is totally offset by the great support Packt provides to all their published books. The (fixed) source code is available for download, and I imagine the errata should be soon available as well.

The over 40 recipes in this book are an excellent resource, and I am sure it will left the readers looking forward for more!


Happy Drooling

03 Feb 2012 4:30pm GMT

Traveling Salesman Problem demo with Drools Planner

Implementing TSP or vehicle routing in Drools Planner 5.4.0.Beta2 and earlier was difficult. But starting from 5.4.0.CR1, such use cases are easy and far less code to implement. And they are compatible with real-time planning.

Just take a look at the Traveling Salesman Problem (TSP) demo. It shows adding cities in real-time and demonstrates how easy it is to change the constraints:



Coming soon: a vehicle routing example and even better scalability.

03 Feb 2012 4:12pm GMT

JUDCon 2012 Boston - OpenShift State of the Union / OpenShift Primer


Boston, June 25-26


The call for papers is open, but not official on the website yet. I thought I would submit my sessions before I get snowed under (really, it is below zero here in NL all week, skating on the canals, snow today...). Hope to get accepted and see you all there!

An OpenShift Primer for Developers to get your Code&nbsp;into the Cloud

Whether you're a seasoned Java developer looking to start hacking on&nbsp;EE6 or you just wrote your first line of Ruby yesterday, the cloud is&nbsp;turning out to be the perfect environment for developing applications&nbsp;in just about any modern language or framework. There are plenty of&nbsp;clouds and platform-as-a-services to choose from, but where to start?


Join us for an action-packed hour of power where we'll show you how to&nbsp;deploy an application written in the language of your choice - Java,&nbsp;Ruby, PHP, Perl or Python, with the framework of your choice - EE6,&nbsp;CDI, Seam, Spring, Zend, Cake, Rails, Sinatra, PerlDancer or Django to&nbsp;the OpenShift PaaS in just minutes. And without having to rewrite your&nbsp;app to get it to work the way the cloud provider thinks your app&nbsp;should work.


If you want to learn how the OpenShift PaaS and investing an hour of&nbsp;your time can change everything you thought you knew about developing&nbsp;applications in the cloud, this session is for you!


OpenShift State of the Union, brought to you by JBoss

It has been a marriage made in heaven. JBoss has brought the&nbsp;enterprise application platform and JEE to the OpenShift PaaS for all&nbsp;of your development tasks. It is much more than a simple application server though, JBoss provides a multitude of projects that cover&nbsp;everything from mobile, business process management, web development,&nbsp;support tooling to inter connectivity with other development languages&nbsp;like Ruby.


This session will take you through an overview of what OpenShift has&nbsp;to offer right now, how to get started, and then provide some&nbsp;highlights of the various projects that you can now access within the JBoss community. Bring you laptop and follow along as we help you get&nbsp;started in mobile development with Aerogears, Ruby Java connectivity&nbsp;with TorqueBox, process development with tooling from jBPM and much&nbsp;more. These will all be real world projects put on display for you&nbsp;with code you can access live during this session!




03 Feb 2012 1:00pm GMT

JUDCon 2012 Boston - Getting your migration on with jBPM Migration Project

Boston, &nbsp;June 25-26

The call for papers is open, but not official on the website yet. I thought I would submit my sessions before I get snowed under (really, it is below zero here in NL all week, skating on the canals, snow today...). Hope to get accepted and see you all there!

Getting your migration on with jBPM Migration Project

With the release of jBPM 5 in the Red Hat product JBoss BRMS 5.3 it is&nbsp;time to closely examine your existing legacy jBPM 3 projects for&nbsp;migration. What does the future bring?


This session will take a look at the background of jBPM 3 process&nbsp;projects and present how we plan to help you make the jumpt to jBPM 5.&nbsp;We will provide you with a plan for positioning your existing Enterprise jBPM projects and examine some of the architectural layers&nbsp;involved. &nbsp;We will take a closer look at the tooling being created for&nbsp;this and steps you can take to ensure a smooth transition moving into&nbsp;your jBPM future.


Finally we will demo the existing tooling on an actual existing&nbsp;enterprise jBPM project. This will provide you with a real life&nbsp;scenario to take home as an example for your own BPM projects.

03 Feb 2012 1:00pm GMT

Infinispan 5.1.1.FINAL is here!

As said earlier this week, based on the feedback we got, we decided to cut a point release in the 5.1 'Brahma' series, and following Tuesday's CR1 release, I'm really please to announce the release of Infinispan 5.1.1.FINAL. If you're using 5.1.0.FINAL or any other pre-releases, I'd strongly recommend that you upgrade to this version.

Full details of what has been fixed can be found here , and if you have feedback, please visit our forums . Finally,&nbsp;as always, you can download the release from&nbsp;here .

Cheers,
Galder

03 Feb 2012 12:09pm GMT