Skip navigation
1 2 3 4 5 Previous Next

JBoss Tools

71 Posts authored by: maxandersen

JBoss Tools 4.0.0 Alpha 2

[Download] [Update Site] | [What's New] [Forums] [JIRA] [Twitter]

 

Time for Alpha2 for JBoss Tools 4 - the set of eclipse plugins that works and run on Eclipse Juno and looking at Eclipse Marketplace stats it already is being more installed than our Indigo stable release. Amazing

Installation

 

Recommended path to install is to have a clean Eclipse Juno install and use our updatesite to install from.

 

This release you need Eclipse 4.2 but we recommend using the Eclipse 4.2 JEE Bundle since then you get most of the dependencies preinstalled.

 

Once you have installed Eclipse use our update site directly, or you can drag this icon into your running Eclipse to install from the Eclipse Marketplace:

 

The update site URL to use from Help > Install New Software... is:

 

http://download.jboss.org/jbosstools/updates/development/juno/

 

Note: SOA Tooling, including BPEL, Drools, ESB, jBPM3, jBPM5, Savara, SwitchYard, pi4soa, ModeShape & Teiid Designer are not included in the JBoss Tools Core release at this time - they will be available separately.

 

Note m2e-wtp users: In case you already have m2e-wtp installed, then add the updatesite first and then run "Help > Find Updates" before trying to run Help > Install new. This way you will automatically update from the old org.maven.ide.eclipse.wtp.feature 0.15 to the new namespace & version, org.eclipse.m2e.wtp.feature 0.16.

Stacks attack!

One of the challenges tools and users have is that as the various runtimes evolves and new features gets added. How do we keep up ? How do we ensure that you got the right examples and get easily started on using the new or even old runtime ? Which version of the runtimes is the recommend one ? Which version of the archetypes is supposed to be used with these runtimes to show its features ?

And especially for tools - how do we avoid having a JBoss Tools installation go stale without requiring a new release for every runtime released ?

 

To solve this, we worked together with the JBoss Developer Framework team and developed JBoss Stacks. JDF team launched the site allowing you to navigate the various BOM's and recommended versions. Now, in JBoss Tools Alpha2 we have the JBoss Central wizards choose the appropriate version of the archetypes based on which runtime version you have installed.

In case you do not have a runtime installed the recommended version will be chosen and you can download the matching runtime directly from the JBoss Central wizards.

 

http://docs.jboss.org/tools/whatsnew/examples/images/archetypes_select_runtime.png

 

These runtime downloads are also now available when creating a server adapter directly allowing you to either download directly or get a link for the latest version of JBoss runtimes.

 

OpenShift SSH Key management

The biggest hurdle users seemed to have when trying out OpenShift was to get their SSH keys to match up. Before you had to use the OpenShift web-ui to manage these keys, in Alpha2 we've made this feature available directly from within the tools.

You find this feature by right clicking on your OpenShift connection and choosing "Manage SSH Keys".

http://docs.jboss.org/tools/whatsnew/openshift/images/manage-ssh-keys.png

 

And from here you can now add/remove SSH keys to OpenShift.

 

http://docs.jboss.org/tools/whatsnew/openshift/images/keys-management-wizard.png

 

Forge Debugging

If you are a plugin developer for Forge then you can now debug the Forge console launched within the Forge Tools - allowing for easy inspection and debugging of your Forge Plugins.

 

This feature was contributed by Thomas Frübeck during our 3.3.0 final lock down so it could not make it in early, it was there in Alpha1 but we forgot to mention it then.

http://docs.jboss.org/tools/whatsnew/forge/images/4.0.0.Alpha2/debug-pref.png

Thanks Thomas!

 

Hibernate Tools Core on Maven

Koen Aers been working on the Forge integration of Hibernate tools and in that respect needed updated versions of Hibernate Tools core to be available in Maven.

Thus the latest Hibernate Tools Core CR releases are now available in JBoss repository at https://repository.jboss.org/nexus/content/groups/public/org/hibernate/hibernate-tools/

What else ?

Jira has the full details but if you are into screenshots see the Whats New section.

 

Next up is our Beta 1 for JBoss Tools 4 - please don't hesitate to give your feedback on Alpha2

 

Have fun,

maxandersen

JBoss Tools 4

Posted by maxandersen Sep 17, 2012

Summer is over and it's time to start getting the JBoss Tools release train moving again.

 

JBoss Tools 4.0.0 Alpha 1

[Download] [Update Site] | [What's New] [Forums] [JIRA] [Twitter]

 

A new version?

 

This year we are starting on JBoss Tools 4 (as opposed to the past seveal years of JBoss Tools 3). Why the new version? There are several reasons why it was time. Our Eclipse.org project-based target platform also changed from 3.x to 4.x. The projects is growing bigger and bigger so it's time to clean up some of the APIs and move from our big SVN semi-modularized monolithic layout to smaller, more independent (but still aligned) Git projects. The groundworks for this does require splitting with things in the past, at least on a technical level - but we do plan on making this transition as transparent as possible on the user level.

 

We are also starting to use Alpha (A) instead of Milestone (M) in our versioning - same meaning at the user level insofar as early development milestones are the (semi-)bleeding edge - but at the technical level it allow us to follow and use OSGi/p2-friendly version schemes that prevents and detects incompatible changes between branches better than in the past.

 

But enough about a single character - on to the user visible changes/improvements!

 

Installation

 

Recommended path to install is to have a clean Eclipse Juno install and use our updatesite to install from.

 

This release you need Eclipse 4.2 but we recommend using the Eclipse 4.2 JEE Bundle since then you get most of the dependencies preinstalled.

 

Once you have installed Eclipse use our update site directly, or you can drag this icon into your running Eclipse to install from the Eclipse Marketplace:

 

The update site URL to use from Help > Install New Software... is:

 

http://download.jboss.org/jbosstools/updates/development/juno/

 

Note: SOA Tooling, including BPEL, Drools, ESB, jBPM3, jBPM5, Savara, SwitchYard, pi4soa, ModeShape & Teiid Designer are not included in the JBoss Tools Core release at this time - they will be available separately.

 

Note m2e-wtp users: In case you already have m2e-wtp installed, then add the updatesite first and then run "Help > Find Updates" before trying to run Help > Install new. This way you will automatically update from the old org.maven.ide.eclipse.wtp.feature 0.15 to the new namespace & version, org.eclipse.m2e.wtp.feature 0.16.

Eclipse Juno & m2e-wtp

JBoss Tools 3.x could and can run on Juno but it did have its problems, especially in context of Eclipse Dali/Hibernate integration since the Dali API changed radically from Indigo to Juno. In JBoss Tools 4 Alpha1 all of this should now be a thing of the past. Let us know if you find any discrepencencies in this area.

 

Since m2eclipse-wtp is moving to Eclipse.org as m2e-wtp. As such the existing dependency on m2eclipse-wtp has been changed to m2e-wtp 0.16.0. Since the two plugins overlap and can not coexist you have to either uninstall the old m2e-wtp before installing the new or perform a "Help > Check for updates..." which will be able to do the uninstall old/install new automatically. We wish it could be easier but a bug in p2 install UI prevents this.

Bugfixes

278 issues were fixed in this Alpha1, mainly targeted on issues reported and found when working on Juno and of course a good bunch of bugfixes based on the feedback from previous releases - please keep the feedback coming, its immensly useful.

Migrate jar-classpath to maven-classpath

The biggest in Maven tools are that we now use the eclipse.org m2e-wtp but there are also work on making it easy to convert an eclipse project into a Maven project by helping identifiying the proper Maven Group-Artifact-Version id's of the various jars on your classpath. Maven Tools What's New has more about this.

 

http://docs.jboss.org/tools/whatsnew/images/dependency_conversion.png

 

"As-you-type" validation

Our CDI and JSF/xhtml validation previously only ran when you saved your file(s) and triggered an incremental build to validate the changes across the project. In JBoss Tools 4

we validate the file being edited as you type allowing you to get feedback faster.

 

Alexey Kazakov recorded a video highlighting how it works:

 


Next steps...

 

JBoss Tools 4 is planned to have a very short release cycle compared to previous years - we want to GA in 2012, running on a well-performing Eclipse 4/Juno release inside JBoss Developer Studio 6.

 

Our Jira contains the roadmap with tentative dates and in the upcoming weeks we'll blog more about planned/upcoming features for JBoss Tools 4 and onward.

 

For now, take Alpha1 a spin and let us know what you think!

 

Have fun,

We released back in July a new version of JBoss Tools 3.3.1 and JBoss Developer Studio 5.0.1 which fixes the problem of installing on Eclipse 3.7.0 (Indigo) and makes it possible, but not recommended to install on Eclipse 4.x (Juno).

The SOA Tools are also now available from JBoss Central and we got news from the Fedora Java spin which includes parts of JBoss Tools. More below...

 

SOA Tools

The SOA Tools (jbpm, drools, modeshape, teiid, etc.) are available from JBoss Central in both JBoss Tools 3.3+ and Developer Studio 5+.

 

soatoolsincentral.png

To get them open JBoss Central and go to the Software/Update tab and they should be listed, ready to be installed.

 

The plugins have been updated to work with the latest release of JBoss SOA Platform and its components.

 

Eclipse 3.7.0 - you still use that ?

JBoss Tools 3.3.0 came out requiring Eclipse 3.7.1 because there was some rather nasty bugs we wanted to avoid to expose to users and we naively belived most would be on 3.7.1+ by now - but oh boy we were wrong.

 

It turns out that when we released the final version of JBoss Tools 3.3.0 our success install rate went up significantly (Yay!) but we also saw a skyrocketing level of errored installs (Not good). Looking at those error logs showed us that majority of Eclipse 3.7 (Indigo) users are still on the very first version, i.e. 3.7.0.

 

In a perfect world Eclipse P2 update mechanisim would let you update to Eclipse 3.7.1+ at the same time as installing plugins that requires/suggest to use a bugfixed version, but unfortunately Eclipse mechanism does not allow for this.

 

Therefore in this update we allowed JBoss Tools to depend on Eclipse 3.7.0 to make it installable, but Eclipse 3.7.0 users will now get a warning dialog on startup suggesting they should update their Eclipse to have a better experience.

 

How about Eclipse 4.x/Juno ?

JBoss Tools 3.3.x and Developer Studio is tested and supported on Eclipse 3.7/Indigo - but what if I want to use Juno ?

 

There are two options:

 

A) You can *try* use JBoss Tools 3.3.x on Juno - but we do not recommend this.

B) You can use the JBoss Tools 3.4.x nightly builds updatesite - this have been updated/adjusted to work with Juno and is the basis for the next major update of tools and Developer Studio.

 

In both cases your mileage will vary, but if you are up for it please do try out the nightly builds and report any issues found while using Juno with JBoss Tools.

 

Fedora Java Spin

Gerard Ryan have been doing his Google Summer of Code project about creating a Fedora Spin that would be good for Java developers. In that progress he took on the task on trying to package JBoss Tools, or at least parts of it so it could be installed "the Fedora way".

 

http://fedoraproject.org/static/images/fedora-logo.png

 

He actually succeded in making this happen and you can see his final report about this at his GSOC blog.

 

You can try out the full Fedora Java spin by downloading the ISO images from Gerard or if you are already running Fedora 17 or newer, you can try it out by running:

 

yum install eclipse-jbosstools

 

This will actually be installed into Fedora's version of Eclipse Juno, so that is third way to try Juno out with parts of JBoss Tools.

 

Hope you like that and if you find issues report it in our jra, but please mention if you are using the Fedora package since there are some slight differences.

 

Have fun,

Max

 

Almost two years ago we started including an opt-in ping-back functionallity to JBoss Tools and Developer Studio installations. The ping-back has in that time given us a lot of good and sometimes surprising information about our users.

 

In this blogpost I want to give you the highlights of these observations.

Disclaimer

Before I start I must underline that we do not track any individuals data and it is all opt-in, i.e. users need to explicitly say “Yes - please send pings” for us to pick up data.

 

The data below is not for all users of our tools, it is only for those who have said yes to participate - but with the amount of pings we do get (currently 28K/day, 6+ million/year) I believe it is a signficant high part of our user base to at least give an idea about the trends and divisions of our user base.

 

I’ve tried my best to validate and ensure I report correct findings - please leave a comment if you believe I’ve made an error or there is some other metric you would like to know about.

 

And finally - the content, observations and conclusions in this blog are my personal views based on my intepretation of the analytics data I have access to.

Methodology

The way our ping-back works from a highlevel is that on startup of an Eclipse instance a HTTP GET is made to Google Analytics and here the data is collected as if it was a web page hit (i.e. Google Analytics gathers information from the network connection, HTTP headers and URL parameters).

 

We only make maximum one ping every 24-hour per Eclipse Instance and it is only on startups. Thus if you have your eclipse instance running for six days, you only make one ping in those six days.

 

I’ve used Google Analytics web UI and data extraction features as a basis for the findings below.

Operating Systems

If you should be in doubt, Microsoft Windows is by far the most dominant desktop OS out there when it comes to desktop OS, and this is no different for users of JBoss Tools.

 

Here is Operating Systems for June-July 2012:

osjunejuly2012.png

 

Even if you separate out Windows XP on its own then Windows XP users outnumber Linux + OSX users combined.

 

Operating Systems for June-July 2012 with XP separated out.

osjulywxp.png

 

I saw these same splits in our usage tracking (Windows: ~80%, Linux: ~15% OSX: ~5%) and I was worried we were having some bug in our ping-back code.

I therefore got access to Google Analytics for several of our jboss.org project sites including all of community.jboss.org and here the splits are more or less the same no matter how you slice and dice it. Thus either this split is true or Google Analytics is wrong everywhere.

What surprises me though is that Windows is even growing over time, both on site visits and JBoss Tools ping back:

osgrowth2years.png

I’m sure the growth of Windows here does not resemble the growth of operating systems world wide, I believe it is more a function of more and more “real world” industrial users picking up and using JBoss technology.

 

I know it surprises alot of people both inside and outside of my current employer (Red Hat) who would like to think Linux is not just primarily a server side OS anymore; and I know of a lot of conference attendees who claims OSX is “everywhere”. It might be everywhere at conferences, but not out there in the “real world”.

Linux Distributions

Once you get pass the fact Windows is by far the biggest desktop platform then it is interesting to look at how the various Linux distributions spread out.

The following charts shows a summary of Linux distributions as detected by our ping-back code to detect Linux distributions.

 

Our ping-back report back the distribution name and version as found in various distribution specific files and I’ve taken these reports and stripped out the versions and just looked at the distribution name.

 

I unfortunately do not have any way of confirming the validity of these numbers because Google Analytics does not report this level of detail for specific websites and looking at distrowatch.com the numbers are very different. Probably the difference should be explained in difference of Desktop vs. Server, Linux users vs. JBoss/Middleware users.

In any case please do take these uncertainties into account when considering these numbers.

 

The graphs below is for the period June-July 2012:

linuxdistro-table.png

 

linuxdistro-chart.png

 

Countries

One of my favorite images from Google Analytics is the map showing city activity across the world.

 

City Activity 2011-2012 ( a full year )

cities2011-12.png

 

That is showing JBoss Tools being used across 6 continents, 177 countries in 9644 cities; and as you can see it is not United states nor Europe that is lighting up the most.

Most active cities are in areas such as Brazil, China and India, which also is revealed in the Top 10 countries list for 2011-2012.

top10countries.png

 

I apparently need to learn to write blogs in Portuguese and Mandrin!

 

I was asked how the Operating System varies across countries and that was a bit trickier to extract because Google Analytics starts sampling when the dataset gets too big - but here is a table showing OS per Top 10 countries based on 80% of data collected in June 2012.

country_x_os_80pct_2011_12.png

 

It’s interesting to see United States OS X usage be almost twice as high as any other country and countries like China and South Korea having ~98% usage of Windows.

Where as countries like Brazil has a much higher percentage using Linux.

 

Users from Spain and Italy have same Linux usage but Italy has twice as many Mac users.

Screen resolution

In the last year, we’ve seen no less than 7995 different screen resolutions.

The number was much higher than I expected, and I believe this is caused by differences in how Java/SWT differs across various OS releases on how the desktop resolution is reported; thus the Top 10 screen resolutions is a rough estimation.

top10screensizes.png

 

What is interesting though is that the number of observed 1366x768 screen resolutions have grown much more than other screen resolutions.

screenresolutionovertime.png

 

It’s as if everyone started to get more and more HD laptops/displays the last couple of months.

 

One thing I did notice was that there is a few (or just one?) user that has some very large multi-screen setups. Tried to visualize this by showing smallest (640x480), most common (1366x768) and largest observed screen resolution (11520x2400) relatively to each other in this diagram:

screensizes-scale5pct.png

 

The large resolutions are probably multiple monitors, not just one single monitor. My guess is the largest reported is a couple of WQUXGA screens. think I got screen envy!

Java version

Java 7 was released “recently” and I got more than a few request asking why we still support Java 6 when it is EOL and Java 7 is the new kid in town.

The answer is in the following graph. It shows the uptake of the most popular Java versions over the last year.

javaversionovertime.png

 

You can see Java 1.6.0_26 overtake 1.6.0_24 in July 2011 and similar 1.6.0_29 takeover in November 2011 and finally 1.6.0_31 is the current big winner.

Java 1.7 had only little uptake, and its only recently Java 7 is above 20% usage.

 

The current %’s shows a clear 76% usage of 1.6, following with Java 1.7 with 22% and then a few (2%) is still using Java 1.5 - we, even had a few Java 1.8 users but they are still below 0.01% thus not visible on any of the graphs.

javaversionsjunejuly2012.png

 

I expect over the next year Java 1.7 will have a bigger uptake, but I would not bet on it overtaking Java 1.6 anytime soon.

Conclusions

One nice thing to conclude from our usage tracking is that we can see that JBoss Tools keeps growing and has more and more uptake and I’m personally very happy to see that.

Beyond that my primary lesson from the gathering of analytics is that Windows XP is bigger than Linux and OS X combined. Windows overall is where the majority of real-world users are.

 

There are probably also lot of interesting political and world-economic comments that can be made about the Top 10 countries usage of Operating Systems. But this is just JBoss Tools users, thus not sure how this maps to the world-arena but one thing I do think we can conclude is - each country has very different composition of users/demographics; but they all primarily uses Windows.

 

Therefore if you are doing any work on tools, frameworks or applications that relate to JBoss user/developer, please remember to test it on Windows, including Windows XP no matter how much you hate this OS your users are using your applicaiton/frameworks to make their own life easier.

 

Before anyone put words in my mouth any say this means Linux and OS X users should be ignored because they are such a small percentage - that is not true since the uptake of Windows over time shows that Linux/OSX is where a good portion of the “early adopters” are.

 

That is it for this time, let me know what you think - does this match your expectations ? Could we improve the dataset/statistics somehow ?

 

Have fun,

Max

I'm extremely proud to be able to announce that both JBoss Tools 3.3 and Developer Studio 5.0 final releases are now available.

jbosstolsdevstudio.png

Final GA

Developer Studio: [Download] | Tools: [Download] [Update Site] | [What's New] [Forums] [JIRA] [Twitter]

 

JBoss Tools is a set of plugins for Eclipse that complements, enhances and goes beyond the support that exists for JBoss and related technologies in the default Eclipse distribution.

 

JBoss Developer Studio is a fully bundled Eclipse distribution which not only includes the majority of JBoss Tools but also all its needed dependencies and 3rd party plugins allowing for an easy one-click and no-fuss installation.

 

If you are into doing your own bleeding edge eclipse plugin assembly, JBoss Tools is for you; if you are more into having something that "Just Works" then JBoss Developer Studio is the way to go.

 

Installation

 

JBoss Developer Studio comes with everything pre-bundled in its installer. Simply download it and run it like this:

 

java -jar jbdevstudio-<installername>.jar

 

Note: if you are on Windows or Mac OSX 64-bit we recommend you ensure to select the 32-bit option in the multi-platform installer to get Visual Page editor working and use much less memory.

 

 

JBoss Tools requires a bit more:

 

This release requires at least Eclipse 3.7.2 but we recommend using the Eclipse 3.7.2 JEE Bundle since then you get most of the dependencies preinstalled.

 

Once you have installed Eclipse, you either find us on Eclipse Marketplace under "JBoss Tools (Indigo)" or use our update site directly.

 

The update site URL to use from Help > Install New Software... is:

http://download.jboss.org/jbosstools/updates/stable/indigo/

 

Please note that the URL above is for the stable releases, if you use the development update site (http://download.jboss.org/jbosstools/updates/development/indigo/) that will work too. Only difference is that the development site will contain beta/CR releases too.

 

Note: SOA tooling for BPEL, Drools, Guvnor, jBPM, ESB, Modeshape, pi4soa, Savara, SwitchYard & Teiid are no longer included in the JBoss Tools release. They will become available separately later.

 

A Year of Features

The amount of features and new improvements in this final is awesome - here is a little overview:

 

Slim & Fast Universal Installer

The installer for JBoss Developer Studio is now a multiplatform installer. Allows you to just download one installer no matter what OS you are running. And the installer is smaller and faster to download and run than previous versions.

 

JBoss Central

We wanted to make it easy for new users to get started with JBoss technology and for existing users have a place to get more information and keep uptodate on what is happening in the JBoss Community. That place is called JBoss Central.

 

https://dl.dropbox.com/u/558690/devstudio5releaseimages/jbosscentral.png

 

Central shows up at startup (you can disable it if you want) but is also available with a quick click in the toolbar. Besides having blogs, news and documentation links it also serves as a way to start one of the six project wizards

which help you get started with JBoss technology such as CDI, Richfaces, Errai/GWT, Spring on AS etc.

 

Central also has a second tab called "Software/Update" where you can easily install tested and verified plugins to work with JBoss Tools and within Developer Studio.

 

https://dl.dropbox.com/u/558690/devstudio5releaseimages/softwareupdate.png

New Server Adapters

 

We've extended our support for JBoss servers to include JBoss Enterprise Platform 6, JBoss AS 7.

We continue to also work with the previous versions of application servers making it possible to develop, run and debug both new and older applications.

 

https://dl.dropbox.com/u/558690/devstudio5releaseimages/serveradapters.png

 

There is also an OpenShift server adapter to integrate with Red Hat OpenShift PaaS, more on that later.

 

We also continue to have the Deploy Only server which allows you to use our incremental and flexible server adapter features together with any server that supports hot deployment.

Furthermore all of these server adapters support remote deployment via any filesystem protocols supported by Eclipse Remote System deployment such as SSH or FTP.

 

One of the new features in this area is that servers now no longer need to be started by the tools, if a server is already detected as running or you have enable "Server is externally managed" then

JBoss Tools server adapters will just connect to it and do its deployments as configured - allowing you to work with the tools in  many different environments.

Maven

One of the big new additions is the full support and integration of m2e for users of Maven projects. We did not just include m2e, we went ahead and improved on it and added better support for the frameworks and features of Maven we found to be useful.

 

We have a lot of Maven improvements.

 

  • Maven Profile Selection - dialog to quickly enable/disable profiles on your Maven projects ( especially useful to switch between Arquillian server profiles )
  • Endorsed Libraries Classpath Container - if your Maven project uses endorsed libraries we setup a matching classpath that gets priority over the JDK classpath.
  • Tons of framework configurators - we enable the matching tooling in eclipse if your Maven project uses one of the following frameworks:
    • Hibernate/JPA
    • JSF
    • CDI
    • JAX-RS
    • Seam
    • Portlets.
  • Configure repositories in settings.xml - "Configure Maven Repositories" allows you to easily add and remove repositories from your Maven settings.xml; available as a quickfix on missing dependencies error markers.
  • Materialize Library - Allows you to copy all the jars found in a Maven classpath container into a directory. Great if you have a Maven example but would rather use it with pure Eclipse or some other build system.
  • Automatic Source Lookup for Server runtimes based on Maven metadata - point Source lookup to your server directory with jars and it will locate the matching source based on maven metadata; can be enable to be automatically done for JBoss runtimes.

 

And then of course m2e-wtp, the feature that configures Eclipse Web Tools based of your pom.xml had a lot of features improved and added. The m2e-wtp also is moving to eclipse.org to be part of future Eclipse release trains.

 

Furthermore we've released m2e configurators to m2e marketplace to improve configuration of Annotation Processing, wro4j - javascript optimization and finally supporting projects that configure eclipse JDT as their compiler.

 

All in all, if you want to use Maven with Eclipse, JBoss Tools makes your life easier!

OpenShift

OpenShift also came around during the last year. OpenShift is a PaaS with a free offering that includes support for running applications written in Java, Ruby, Node.js, Python, PHP, Perl and more.

 

The great thing about OpenShift is that you can easily get up and running with just a webbrowser, git and SSH while using command line tools - very simple and powerful.

We wanted to bring this simplicity and power to the users of Eclipse and that is what our OpenShift Tooling does.

 

When you have an account at OpenShift you can easily browse, create and manipulate your OpenShift applications and cartridges. OpenShift supports PHP, Perl, Python, Node.js, Java and if that is not enough you can use the Do-It-Yourself cartridge. You can easily open a webbrowser showing your application, monitor remote log files, inspect environment setup and start Port Forwarding allowing for remote debugging and remote browsing of databases and Jenkins instances.

 

https://dl.dropbox.com/u/558690/devstudio5releaseimages/openshift.png

 

The OpenShift tools is all compatible with the command line tooling but also completely independent of it allowing you to start with the tools that fit your needs first and then mix and match as you see fit.

 

For the release we've create a "Getting started with OpenShift" video:

 

 

 

Forge

If you like Forge you will like JBoss Tools for its Forge Console which let you to use Forge in context of Eclipse and have them coexist and interact. The console will open and show the files/projects you edit/create in Forge and the console can also let Forge track the selection you have in Eclipse.

 

forgeconsole.png

Browser Simulator

 

BrowserSim can be started with one-click from the IDE, showing instantly the selected file or URL in a mobile browser simulator. The simulator has skins and layout dimensions for a range of pouplar mobile and tablet devices. You can rotate the device to see how your application looks and how it is reacting to such size and layout changes.

 

https://dl.dropbox.com/u/558690/devstudio5releaseimages/browsersim.png

Hibernate

 

Hibernate Tools now supports multiple versions of Hibernate - you can now use it together with Hibernate 3.3-3.5, 3.6 and 4.0/4.1.

 

https://dl.dropbox.com/u/558690/devstudio5releaseimages/hibernatemultiy.png

JAX-RS

 

If your application uses JAX-RS annotations there is now a node in the project explorer that allows you to easily navigate to your various Rest endpoints. The JAX-RS tooling will also validate your annotations (mismatched names etc.) and provides code completion.

 

http://docs.jboss.org/tools/whatsnew/ws/images/JAX-RS-WS-Tester_Run_As.jpg

 

The JAX-RS integration allow to easily "run" your endpoints by making sure the server is running and then opening the URL in the Webservice Tester for further investigation/testing.

 

And More...

Seam 2.3.x support, CDI tooling have great improvements, incl. support for DeltaSpike, the visual page editor is faster than ever, bugfixes, overall awesomeness and the list goes on.

You can see the full list of new and noteworthy on the New and Noteworthy page

 

Does it Juno ?

Since the first version of Eclipse Juno is arriving soon it is worth mentioning that JBoss Tools from its updatesite can be installed on top of Juno.

It is though not guaranteed everything works, we know that especially Hibernate Dali/JPT integration have issues since here the API has changed greatly.

But if you are a Juno early-adopter then do please try run JBoss Tools on it and if you find issues let us know in the forum or on JIRA.

 

Then we will use the input for the next revision of JBoss Tools which will start shortly.

 

Hope you like it, and remember:

 

Have fun,

Max

The release candidate of JBoss Tools and Developer Studio is now available - mainly with bugfixes but also a few nice improvements for AS 7, OpenShift and Maven integration.

jbosstolsdevstudio.png

CR1

Developer Studio: [Download] | Tools: [Download] [Update Site] | [What's New] [Forums] [JIRA] [Twitter]

 

JBoss Tools is a set of plugins for Eclipse that complements, enhances and goes beyond the support that exists for JBoss and related technologies in the default Eclipse distribution.

 

JBoss Developer Studio is a fully bundled Eclipse distribution which not only includes majority of JBoss Tools but also all its needed dependencies and 3rd party plugins allowing for an easy one-click and no-fuss installation.

 

If you are into doing your own bleeding edge eclipse plugin assembly, JBoss tools is for you; if you are more into having something that "Just Works" then JBoss Developer Studio is the way to go.

 

Installation

 

JBoss Developer Studio comes with everything pre-bundled in its installer. Simply download it and run it like this:

 

java -jar jbdevstudio-<installername>.jar

 

Note: if you are on Windows or Mac OSX 64-bit we recommend you ensure to select the 32-bit option in the multi-platform installer to get Visual Page editor working and use much less memory.

 

 

JBoss Tools requires a bit more:

 

This release requires at least Eclipse 3.7.2 but we recommend using the Eclipse 3.7.2 JEE Bundle since then you get most of the dependencies preinstalled.

 

Once you have installed Eclipse, you either find us on Eclipse Marketplace under "JBoss Tools (Indigo)" or use our update site directly.

 

The update site URL to use from Help > Install New Software... is:

http://download.jboss.org/jbosstools/updates/development/indigo/

 

Note: SOA tooling for BPEL, Drools, Guvnor, jBPM, ESB, Modeshape, pi4soa, Savara, SwitchYard & Teiid are no longer included in the JBoss Tools release. They will be available separately.

 

JBoss AS 7

The server adapter for JBoss AS 7 had a series improvements done in its handling of remote management and JMX connections. One thing that is relevant is that because of AS 7.1 Secure by default approach when you launch remotely the management services are not autoatmically exposed. We keep that secure-by-default in the tools, but now also provides a simple checkbox to allow you to expose the management service when we launch it to actually remotely manage the server.

 

https://issues.jboss.org/secure/attachment/12354382/JBIDE-11921.png

 

Of course just exposing the port does not make it fully available before you have added a user to the server. You can read about how to do that in this blog.

 

And finally the server adapter now works with IPv6, allows deploying outside of the deployments folder and it does not choke on a space in the server part - Hurray!

 

OpenShift, now faster and more patient

One of the most common bug report we got in the Beta's (thank you for the feedback!) was that when creating OpenShift applications our wizard would time out and you would have to manually import the project again. We now have extended the timeout period to three minutes to accomodate for overloads, network latency etc. but also given you the option to wait some more for the OpenShift provisioning to be fully done.

 

A new feature of the application creation wizard is also to be able to set the size of the Gear your application will run on and to enable scaling for your applications.

http://docs.jboss.org/tools/whatsnew/openshift/images/gears-and-scaling.png

Mind you that the list of possible gears depends on your users permissions.

 

Various actions like Tail Files, Environment variables and Port Forwarding which previously were only available in OpenShift Explorer is now also available from the OpenShift server adapter.

 

http://docs.jboss.org/tools/whatsnew/openshift/images/server-adapter-actions.png

 

And for those users with large set of applications or slow networks we've made the loading of OpenShift metadata more incremental giving you faster feedback,especially on networks far away from the OpenShift servers.

 

Maven and Endorsed Libraries

If you have ever had to fight with using JavaEE 6 Webservices on Java 6 with Maven and Eclipse at the same time you know what a pain having to use that combination can be because JavaEE 6 Webservices are actually using libraries that are not available before Java 7. Meaning you have to configure and setup endorsed libraries in Eclipse, which actually does not have such a feature exposed on projects, but only at the JVM level setup. Thus its "easy" for running applications but not when compiling.

 

In Maven there are various tricks to solve this and none of them are obeyed/understood by m2eclipse - but not anymore.

 

http://docs.jboss.org/tools/whatsnew/images/endorsed_libs.png

 

We've added a Maven configurator which will look for the common tricks to set and configure endorsed libraries and when they are found inject an "Endorsed Library" classpath container with the approprate classpath entries.

 

Allowing you to not have to worry about this anymore when using Maven + Eclipse. Fred writes more in detail about how this works in What's New

 

Pixel Density

And an example of where the little details matters comes that BrowserSim now has controls for pixel density allowing you to get a better and closer representative layout of your mobile applications.

 

http://docs.jboss.org/tools/whatsnew/vpe/images/3.3.0.CR1/pixel-ratio.png

 

 

...and more

 

As usual screenshots and more explanation of what is new are available from the What's New site!

 

Let us know what you think and remember that Xavier and I will be showing a lot of these features at JUDCon and Red Hat Summit w/JBoss World end of this month with a GA release. See you there ?

 

Have fun,

Max

Beta3 of JBoss Tools and Developer Studio is now available with a good set of bugfixes but also a good set of new improvements and features in the area of OpenShift, Maven, BrowerSim, GWT, Annotation Processing and it even now come with easy installable source features for easy debugging and hacking. 

jbosstolsdevstudio.png

Beta3

Developer Studio: [Download] | Tools: [Download] [Update Site] | [What's New] [Forums] [JIRA] [Twitter]

 

JBoss Tools is a set of plugins for Eclipse that complements, enhances and goes beyond the support that exist for JBoss and related technologies in the default Eclipse distribution.

 

JBoss Developer Studio is a fully bundled Eclipse distribution which not only includes majority of JBoss Tools but also all its needed dependencies and 3rd party plugins allowing for an easy one-click and no-fuzz installation.

 

If you are into doing your own bleeding edge eclipse plugin assembly, JBoss tools is for you, if you are more into having something that "Just Works" then JBoss Developer Studio is the way to go.

 

Installation

 

JBoss Developer Studio comes with everything pre-bundled in its installer. Simply download it and run it like this:

 

java -jar jbdevstudio-<installername>.jar

 

Note, if you are on Mac OSX 64-bit we recommend you ensure to select the 32-bit option in the multi-platform installer to get Visual Page editor working and use much less memory.

 

Similar if you are on Windows 64-bit then use a 32-bit JDK to get 32-bit version running.

 

JBoss Tools requires a bit more:

 

This release requires at least Eclipse 3.7.1 but we recommend using the Eclipse 3.7.2 JEE Bundle since then you get most of the dependencies preinstalled.

 

Once you have installed Eclipse, you either find us on Eclipse Marketplace under "JBoss Tools (Indigo)" or use our update site directly.

 

The update site URL to use from Help > Install New Software... is:

 

http://download.jboss.org/jbosstools/updates/development/indigo/

 

Note: SOA tooling such as Drools, jbpm, ESB, Teeid etc. are not included in the JBoss Tools core releases at this time - they will be available separately.

 

OpenShift

The OpenShift platform is moving and improving all the time and this also shows in the OpenShift tooling included in JBoss Tools.

 

The most prominent and waited for feature in this release is we now support starting port forwarding from the IDE instead of using the command line.

And we've done it so it is even better and more powerful than the command line in a couple of situations:

 

  • it works on all platforms out of the box
  • it allows you to choose between using 127.0.0.1 or the remote addresses (especially good for Mac and Windows which needs configuration using 127.0.0.x)
  • it will find free ports if necessary avoiding you to have to stop your local running servers to connect to OpenShift

 

http://docs.jboss.org/tools/whatsnew/openshift/images/port-forwarding.png

 

To start/stop this you use the context menu of your OpenShift application in OpenShift Explorer (previously named OpenShift Console).

 

OpenShift Tools further more now allows you to put any existing application onto OpenShift where it previously only allowed Eclipse WTP projects. These projects can now even be multi-module Maven projects if you want to. This feature should be used with care since it overwrites your OpenShift application and your project content might not be working out of the box on OpenShift - thus use with care and if it fails

remember that OpenShift uses Git for it storage so you can roll it back in case of a failure.

 

And finally OpenShift tools also allows you to create scalable applications in the UI now.

 

http://docs.jboss.org/tools/whatsnew/openshift/images/create-scalable-applications.png

 

Annotation Processing w/Maven

 

Java EE 6 really started pushing more and more annotation processors and Eclipse APT provides a nice incremental integreation with this in Eclipse that makes it fast and non-invasive.

 

Unfortunately in context of Maven this have not always been easy to get configured since there exists multiple ways to invoke the Annotation Processor and in some cases Eclipse APT single-folder-output gives problems

 

With this release of JBoss Tools we are also releasing a configurator for m2e which combines all the best plugins concerning Annotation Processing and made something better and more integrated.

 

Fred Bricon have written a full blog about the feature set and how it works - if you use Annotation processing and maven I recommend you read it.

 

Google Web Toolkit (GWT) w/Maven

 

In our previous releases we have struggled with getting GWT examples to load into Eclipse without users having to tweak and manually run certain actions in specific sequence. The reason for this all came down to that there did not exist a m2e Configurator which takes the maven compiler plugin settings and apply them to Google's Eclipse plugin properly. With JBoss Tools Beta 3 that now exists and it just works.

 

Without this loaded you would have to manually add the GWT module xml to Eclipse and then perform a build based on that which would generate to possibly different output directories than your Maven project is configured to. With JBoss Tools for Maven loaded this a problem of the past.

 

Mobile Browser Simulator Skins

 

BrowserSim now has support for View Source, roatation of the screen by clicking in the corners and two new skins:

 

http://docs.jboss.org/tools/whatsnew/vpe/images/3.3.0.Beta3/browsersim-iphone4.pnghttp://docs.jboss.org/tools/whatsnew/vpe/images/3.3.0.Beta3/browsersim-android.png

 

...and finally as a team enjoying the wonders of Open Source we've added two things that could not exist without the source(s) being open:

 

JBoss Source Lookup

We've included the JBoss Source Lookup container which Snjezana have been working on that will scan a directory of jar's and use their Maven metadata and if necessary their MD5 checksum to locate the source code for any Launch configuration not just your Maven projects and Maven classpath provider.

 

This is useful when you have a server like JBoss, Tomcat, Glassfish or any other server or framework which jar's are mostly available in Maven repositories together with their source artifacts.

 

This allow you to fully debug your runtimes without having to pollute your classpath or Eclipse project configuration with runtime details, machine specific locations and manual download of the sources.

 

http://docs.jboss.org/tools/whatsnew/images/sourcelookuppreferences.png

 

The feature must be explicitly enabled, thus be sure to read Snjezana's wiki article outlining how to use this.

 

Eclipse Source Features

If you are into Eclipse plugin development and want to tinker with the source of JBoss Tools our updatesite now include a matching source feature for majority of our plugins under the Source category on the updatesite. This allows debugging and editing of JBoss Tools plugin without having to checkout our full SVN source tree. Contributions very welcome

 

...and more

 

As usual screenshots and more explanation of what is new is available from the What's New site!

 

Let us know what you think - and do know that we are codefreezing for CR1/GA any day now, so do let us know if you find big issues or simply just love it - both things is what keeps us going

 

Have fun,

Max

This morning I woke up to an email stating that Christos Vasilakis had created an iPhone app to manage JBoss AS 7 servers from your phone, he even posted a video about it.

 

I tried it out immediatly and wanted to see how to use it against servers started by JBoss Tools. Since JBoss AS 7 is secured by default you have to do a few steps to make this work:

 

  1. Add a user to your JBoss Server with $JBOSS_HOME/bin/add-user.sh
  2. Set "Host name" to your local ip instead of localhost
  3. Add -Djboss.bind.address.management=<local ip> to the server launch configuration.

 

Note: These steps are not unique for the iPhone app, it's the exact same you would need to do for any remote management of your JBoss Tools started server.

 

To show how it all works together I recorded a screencast which shows the setup in tools and how to use the iPhone app.

 

 

If the video is not showing up for you then you can watch it directly on JBoss Tools vimeo group.

 

Thanks to Christos for making the app and hope you all enjoy managing your JBoss Tools started AS 7 server from your couch

Beta2

Earlier this week we pushed a bugfix release out called Beta2 for both JBoss Tools 3.3 and JBoss Developer Studio 5.0.

 

If you already have JBoss Tools 3.3.x installed you should get this update as soon as you use Help > Check for updates.

 

For Developer Studio you will need to either redownload or manually add the staging updatesite as described on https://devstudio.jboss.com/updates/5.0/staging/

 

The bugfixes mainly relates to better handling of errors in OpenShift tooling and updates to Forge runtime making the CRUD generation work better.

 

You can see the full change list here

 

Movies

Burr Sutter have been busy and cranked out a whole series of videos showing of JBoss Tools and Developer Studio.

 

The topics cover how to install JBoss Tools and Developer Studio, Java EE 6 + Arquillian , Richfaces 4 Desktop w/Mobile, Forge, Google Web Toolkit, Maven, Hibernate Tools Reverse Engineering and Forge Reverse Engineering.

 

Burr walks you through how to use these various technologies from beginning to end all rooted in JBoss Central - a great way to get started with JBoss Middleware and learn about how to use JBoss Tools to make it even easier.

 

You can see them all on our newly fresh updated Movie page with either Flash or HTML5.

 

If you like the videos please login to vimeo and Like them or even better leave a comment on what you think or what other video content you would like to see.

 

m2e-wtp at Eclipse

I wrote about how we have proposed moving m2e-wtp to Eclipse.org. This should make life easier for Mave and Eclipse users overall and I'm happy to report we have received nothing but encouragements and good feedback on that proposal.

 

We will keep you posted on how things move along with the proposal and hope you will give it a try as soon as we have something posted and built.

 

Thank you for the support and Have fun watching the videos and trying out Beta2!

Over the last 2+ years we have done a lot of work at helping improving Maven Integration for Eclipse (m2e) in areas of performance, features and extensions.

 

One of those extensions, if not the most important one, is maintaining and developing Maven Integration for Web Tools Platform also called m2e-wtp.

 

Today (or rather last night) our proposal for making this an Eclipse.org project got posted.

What is m2e-wtp

m2e-wtp is what helps you get seamless import of your maven projects with all the right dependencies configured, the proper assembly setup and it will even enable features in Eclipse that are relevant based on your maven pom.xml file, in context of the Web Tools Platform features : automatic configuration for Web, EJB, EAR, Connector, Web Fragment and Application Client projects.

 

m2e-wtp also brings some maven exclusive features to your favorite IDE, such as dynamic web resource filtering or war overlays.

 

You can get the current m2e-wtp from Eclipse Marketplace or by installing JBoss Tools.

Why bring m2e-wtp to Eclipse

m2e-wtp have had a “fun” life over the years. After m2e moved to Eclipse, m2e-wtp was in a weird place seeing that Sonatype hosted the issue tracker and the main source repository at github while JBoss eventually took over the development and maintenance, but the core m2e was at Eclipse.

 

This spread between multiple organizations have made it harder than necessary for potential contributors to get involved and it also made it tricky for users to know where and how to get involved and get help.

 

To remedy this, we’ve worked over the last couple of weeks/months to prepare a proposal to move m2e-wtp and this proposal is now what is available on Eclipse.org.

 

What does this mean for JBoss Tools users

It should not have any big impact to start - we plan on making the migration from the original m2e-wtp to m2e-wtp at Eclipse as smooth as possible.

 

We will continue to drive and contribute to m2e-wtp, and JBoss Tools will still provide extensions and integration on top of m2e and m2e-wtp.

 

Some of these extensions don’t make sense elsewhere than in context of JBoss Tools and others will eventually find their way into m2e and m2e-wtp.

How do I support/contribute to this proposal ?

If you are interested in this project and seeing it become a full eclipse project, please comment on it on Eclipse Proposal forum, email me directly at max.andersen@redhat.com or catch me at EclipseCon this week!

 

We would love to hear your thoughts on this, even if it is just a “that is about freaking time” comment

 

Great thanks go to all the people from Sonatype, IBM, Oracle, SAP, VMWare and others involved in making this proposal happen - to know more about them and the proposal, read more here.

 

In conclusion I would like to thank Fred Bricon for his outstanding work on m2e-wtp and I’m looking forward to see where he will take it going forward hosted at eclipse.org.

 

Thank you and have fun!

Been a busy week and weekend preparing and arriving at EclipseCon which this year decided to move from sunny(?) California to rainy(?) Reston in Virginia.

 

EclipseCon is always a busy week for me, and this year is no different - below is a list of the “official” items I’ll be doing:

 

Tycho, still good, bad or ugly ?, Tuesday - a refreshed version of my talk from EclipseCon Europe talking about how many good, bad and ugly things we ’ve see in Tycho in the process of JBoss Tools moving to it from “good old, but crappy, PDE build”

 

Eclipse Product Showcase, Wednesday - I’ve submitted a new product showcase to the reception happening at EclipseCon. We’ll see if I make it in on time

 

Ceylon the language and it’s tools, Thursday - I’ll give an introduction to the Ceylon language and the Eclipse tooling built to support it.

Booth Bunny, most days - I’ll be hanging out in Red Hat’s booth this year together with Dan Allen from JBoss and a bunch of OpenShift guys; showing of the wonders of cloud and middleware tooling.

 

…and one more thing - but that is going to be a seperate blog - watch this space

Rest of Red Hat

 

The above is not all from us, we got a few others showing up at EclipseCon too:

 

Get ready to fight your technical debt, with Tycho, Sonar and Jacoco where Mickael Istria and his co-speaker from Pod Programming, Xavier Seignard will be showing how continous improvement can be made possible with the means of technologies such as Sonar, Tycho and Jacoco.

 

Persona Non Grata - Don’t forget the users when doing your designs! is where Brian Fitzpatrick will talk about how to use user personas as guide lines for development.

 

Integration and Functional Testing from the IDE: Where does it hurt ? a BOF hosted by Dan Allen on how Arquillian can be used for integration and functional testing and what challenges still lies ahead to make that work smooth from wtihin Eclipse.

 

Hands on with C/C++ IDE which is a tutorial hosted by Andre Overholt which guides you through how to get to use Eclipse developing C/C++ applications.

 

Jumpstart Java EE6 Development in the Cloud with JBoss Tools where Mark Atwood is bound to show off JBoss Tools and how it works with the JEE tooling and OpenShift PAAS from Red Hat.

 

Developing Cloud Apps with Orion, Django and MongoDB - in 30 Minutes or Less is Mark now talking about how to use Eclipse Orion with OpenShift to do Django and MongoDB development.

 

Mobilize Your MongoDB! Developing iPhone and Android Apps for the Cloud with Eclipse shows Grant Shipley going all mobile in showing how to do mobile apps development with OpenShift and Eclipse.

 

…and then there is all the BOF’s and bar’s where all the real work is done - looking forward to meet old and new friends.

 

See you there and Have fun!

In celebration that @dhinojosa became our chiliad follower on @jbosstools we are releasing Beta1 of both JBoss Tools and JBoss Developer Studio today!

jbosstolsdevstudio.png

Beta1 (Chiliad)

Developer Studio: [Download] | Tools: [Download] [Update Site] | [What's New] [Forums] [JIRA] [Twitter]

 

JBoss Tools is a set of plugins for Eclipse that complements, enhances and goes beyond the support that exist for JBoss and related technologies in the default Eclipse distribution.

 

JBoss Developer Studio is a fully bundled Eclipse distribution which not only includes majority of JBoss Tools but also all its needed dependencies and 3rd party plugins allowing for an easy one-click installation and no-fuzz installation.

 

If you are into doing your own bleeding edge eclipse plugin assembly, JBoss tools is for you, if you are more into having something that "Just Works" then JBoss Developer Studio is the way to go.

 

Installation

 

JBoss Developer Studio comes with everything pre-bundled in its installer. Simply download it and run it like this:

 

java -jar jbdevstudio-<installername>.jar

 

Note, if you are on Mac OSX 64-bit we recommend you start it with -d32 to enable 32-bit to allow you to get the Visual Page editor and use a lot less memory.

 

java -d32 -jar jbdevstudio-<installername>.jar

 

Similar if you are on Windows 64-bit then use a 32-bit JDK to get 32-bit version running.

 

JBoss Tools requires a bit more:

 

This release requires at least Eclipse 3.7.1 but we recommend using the Eclipse 3.7.2 JEE Bundle since then you get most of the dependencies preinstalled.

 

Once you have installed Eclipse, you either find us on Eclipse Marketplace under "JBoss Tools (Indigo)" or use our update site directly.

 

The update site URL to use from Help > Install New Software... is:

 

http://download.jboss.org/jbosstools/updates/development/indigo/

 

Note: SOA tooling such as Drools, jbpm, ESB, Teeid etc. are not included in this release - they will be available separately.

 

Below is my favorite features this time around from our long list of fixes and feature improvements for this Beta.

Control JBoss Hot-redeployment

 

JBoss server adapter normally lets the JBoss Server or Eclipse JDT figure out when it is time to load newly deployed content or update class files via the debugger, but in some cases it is nice being able to say you would like a restart of your application when certain file changes.

 

We do it automatically for updates to jar files, but you might want it to be more agressive and even do it on individual class file changes or when you update .jsp's or similar files.

 

JBIDE-10464.png

If you enable the "Customize application reload behavior on changes to project resources" you now can enter a regular expression to match which resources it should trigger a reload of the module on.

 

Here are some examples:

 

ExpressionWhen it will reload
\.jar$|\.jsp$on a jar or jsp file change
.*on any resource changes (unnecessary!
\.jar$|\.class$on a jar or class file change
.jar$|.*\.model\..*.class$on a jar change or on when a .class file inside a package containing ".model." in its name (useful for only reloading on JPA annotation changes)

 

Cheatsheet for regular expression syntax used above: \. matches a . (dot), $ means end of line, | means 'or' allowing to group content.

 

This of course means more often redeploys but that can very often be just the thing you need for your specific workflow.

 

Skinned and Intelligent BrowserSim

The mobile browser simulator now looks like a mobile browser and will now try intelligently to detect which URL to open with based on what is the current selection/editor in Eclipse.

 

http://docs.jboss.org/tools/whatsnew/vpe/images/3.3.0.Beta1/10553-browsersim-default-page.png

Redesigned OpenShift UI

To handle more complex scenarios such as supporting deploying openshift applications already associated with another git repo and to make OpenShift easier to get started with we have redesigned the OpenShift wizards and views.

 

http://docs.jboss.org/tools/whatsnew/openshift/images/wizard-new-application.png

OpenShift Express Console

 

We've added view called OpenShift Express Console which gives you a nice overview of your OpenShift account(s), your applications/cartridges and provides easy access to common operations.

 

http://docs.jboss.org/tools/whatsnew/images/importapp_via_console.png

OpenShift Source and binary deployment

It is now possible to drag existing deployable resources such as WTP projects and resources marked as deployable to the OpenShift server and if the resource is part of the related github project it will just be associated with the server, but if the resource is not part of the OpenShift project then it will be placed inside the /deployments folder of the project as a binary.

 

Once you publish to OpenShift the binary deployments will be deployed together with your source project which will be built by OpenShift.

 

Updated JBoss Central content

JBoss Central now refreshed all the main wizards for JavaEE, Richfaces, html5.

 

Richfaces shows up recent Richfaces 4 release and HTML 5 is showing of the work done in the Aerogear project regarding mobile application development.

 

We are also now featuring GWT Web project which has Errai in it showing of their event bus to communicate between multiple browsers.

http://docs.jboss.org/tools/whatsnew/images/jboss-central-create-projects2.png

Note, that Google Eclipse plugins are not installed by default - it will be offered when you click the GWT web project.

 

EAP 6 Enterprise Maven Repository

All of the examples above works with the upcoming EAP 6 release which includes a Enterprise Maven repository.

To enable this target an EAP 6 server adapter or set the "enterprise" flag in the wizard to true.

 

From this the project will generate projects that uses the proper enterprise supported binaries over the community binaries.

Faster Import

We found and fixed a memory and CPU issue that caused import of bigger projects to be slow and in some cases even stall.

 

With this issue fixed projects import much faster even for our small test projects it wins 4 seconds and for larger projects it should be even bigger gains.

 

As always let us know if you see slowness that seems unwarranted and we will love to help trace it down and fix the problems.

 

Seam 2.3

 

Seam tooling now accepts and work with Seam 2.3. Seam 2.3 is still in development but it will eventually allow deploying Seam 2 applications on JBoss 7 and Enterprise Application Platform 6.

 

Forge

The Forge tooling now bundles Forge 1.0.0.Final and adds a good set of usability features.

 

Link with editor makes any file opened in the current editor be picked up by Forge - meaning you don't have to manually type the resource location into Forge. Forge will already be there.

http://docs.jboss.org/tools/whatsnew/forge/images/3.3.0.Beta1/link_with_editor.png

"cd" and "pick-up" support, is kind of the opposite, here things you do in Forge gets Eclipse to open/select the used resources.

 

http://docs.jboss.org/tools/whatsnew/forge/images/3.3.0.Beta1/cd.png

Maven + JPA

 

Maven now detects if your project is using JPA and enables JPA/Dali/Hibernate tooling support on your project.

 

JAX-RS + Webservice Tester

The JAX-RS REST Web Services node in Project Explorer now supports "Run As..."-style launching of the Webservice tester.

 

Meaning you can right click on a URL path under JAX-RS and run as on your server and it will if, necessary deploy the application, start the server and then open the web services tester

with the selected URL and give you easy acces to test and explore the returned output.

 

JAX-RS-WS-Tester_Run_As.jpg

 

..and more

The above are just a fraction of the 750+ issues we have fixed this time around - you can see more highlights and screenshots here, but I encourage you to try out this Beta of JBoss Tools or Developer Studio instead of just taking my word for it  - and let us know in the comments or forum what you think about it!

 

Have fun,

Max

This is the last of a series of blog posts covering three features I have had a personal interest in making it into AS 7.1 and the upcoming JBoss Enterprise Application Platform (EAP) 6.

 

Todays topic is about Quickstarts.

Quickstart Frenzy

 

The team doing AS Quickstarts have worked with the tools team on making sure all of the quickstarts have been developed, tested and verified to work nice and clean out of the box for developers - including making them equally Just Work no matter if you are using command line or when using them with an IDE such as JBoss Tools and Developer Studio.

 

This was even true with AS 7.0 and if you missed our recent AeroGear launch you should go look since this Mobile/HTML5 driven project used the tools to show of AeroGear’s magic and one of the key drivers on making this so nice and clean was with the help of the Maven based quickstarts and the power of AS 7, OpenShift and well - kick ass tools if you ask me

 

You will be seeing more of these things happening going forward when other projects gets upto speed with AS 7 and start to have a full experience on AS 7 together with Quickstarts that works well with tools.

 

Now back to the AS 7.1 quickstarts. The following is a listing of the curent quickstarts available for download at jboss.org

 

  • bean-validation - Bean Validation, JPA
  • bmt - EJB, Programmatically control transactions
  • cdi-injection - CDI injections & qualifiers + Servlet
  • cmt - EJB, how to use container managed transactions
  • ejb-in-ear - EJB + JSF, JAR and WAR deployed as EAR
  • ejb-in-war - EJB + JSF deployed as a war
  • ejb-remote - shows how to access EJBs remotely (EJB + JNDI)
  • forge-from-scratch - Forge
  • greeter - CDI + JSF + JPA + EJB + JTA
  • h2-console - H2 Database console
  • helloworld -Very basic CDI + Servlet
  • helloworld-gwt - GWT
  • helloworld-html5 - Very basic HTML5
  • helloworld-jms - JMS
  • helloworld-jsf - Very basic CDI + JSF
  • helloworld-mdb - Very basic JMS and MDBs
  • helloworld-osgi - OSGi
  • helloworld-rs - CDI + JAX-RS
  • helloworld-singleton - Singleton Session Bean
  • hibernate3 - Hibernate 3
  • hibernate4 - Hibernate 4
  • jts - Using JTS to coordinate distributed transactions
  • kitchensink - CDI + JSF + JPA + EJB + JPA + JAX-RS + BV
  • kitchensink-ear - kitchensink as an EAR archive
  • kitchensink-html5-mobile - kitchensink using HTML5, suitable for mobile and tablet computers
  • kitchensink-jsp - kitchensink converted to use JSP
  • log4j - JBoss Modules, Class loading, logging
  • numberguess - CDI + JSF
  • payment-cdi-event - CDI
  • servlet-async - CDI + Asynchronous Servlet + Asynchronous EJB
  • servlet-filterlistener - Servlet Filter and Listener
  • wsat-simple - Simple WS-AT JAX-WS Web service
  • wsba-coordinator-completion-simple - Simple WS-BA JAX-WS Web service with coordinator driven completion
  • wsba-participant-completion-simple - Simple WS-BA JAX-WS Web service with participant driven completion

 

As you might notice the number of quickstarts have grown from 5 in AS 7.0 to 33 in AS 7.1.

 

These quickstarts cover a broad range of technologies all setup to run on AS 7.1 and all follows more or less the same structure:

 

  • contains a README.html/.md with explanation of what the example does
  • a pom.xml following good best practices when building projects that uses JEE & JBoss API
  • is importable into JBoss Tools and Developer Studio

 

Mind you that because of the last two points (pom.xml + importable into tools) you should see that it is just as usable in other IDE’s that support import of Maven projects such as Netbeans, Intellij and others.

 

That is the power of Maven - no matter how much we all love to complain about Maven’s shortcomings as a build tool, the fact it is prevalant, has all major dependencies available and works from both command line and IDE’s is a huge win.

 

Migrating from Community and Product

JBoss AS 7 and EAP 6 is the first release of JBoss which are built primarily with Maven. This change also makes it possible to finally easily use proper dependency managemment when building applications using JBoss AS 7 and EAP.

 

We’ve even gone so far to make sure that it is easier to move from AS 7 to EAP 6 - for plain applications it should just be a matter to adjust the Bill-Of-Materials (BOM) POM used in your <dependencyManagement> section in your pom.xml.

 

To do this presented a challenge since EAP 6 as the productized rebuilt version of AS 7 would get an overlap of Maven Group/Artifact/Version-identifiers (GAV) if not done properly. If you’ve used build systems with dependency management you know overlapping Maven GAV's presents a problem of possibly ambigious dependencies when doing builds. Especially with Maven which caches and stores all its artifacts in one location, namely ~/.m2/repository. Imagine what happens if you first built against Maven central/JBoss.org repositories and then later used an EAP Maven repository where GAV were the same but the actual artifacts behind them were not. Such setup will be catastrophic for any software release, no matter if mission critical or just for fun.

 

Therefore we have taken this into account and JBoss EAP build team ensures that no GAV “overlapping” occurs by adding the -redhat-<number> qualifier to anything that is part of an EAP based product such as JBoss EAP 6.

 

This ensures continuity for developers using AS 7 and wanting to test and go to production against EAP 6 and doing this change is illustrated well when looking at the difference between quickstarts in JBoss AS 7 and those bundled with EAP 6.

 

Here is a snippet from the dependency management part of AS 7.1 quickstart:

<dependency>
    <groupId>org.jboss.spec</groupId>
    <artifactId>jboss-javaee-6.0</artifactId>
    <version>3.0.0.Beta1</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

And here is the same from an EAP 6 quickstart:

<dependency>
    <groupId>org.jboss.spec</groupId>
    <artifactId>jboss-javaee-6.0</artifactId>
    <version>3.0.0.Beta1-redhat-1</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

Notice, the difference ? The only difference is ‘-redhat–1’ in the version tag.

 

This small change ensures that your build now will use EAP 6 supported productized binaries instead of the community bits as long as you do not list the explicit version of your specific dependencies and let the BOM POM be the "manager" of the versions.

 

It is a subtle difference with great potential.

 

This means that users applications can be built targeting community releases early on and when relevant start targeting productized versions with an easy change of the BOM.

 

And as a sideeffect it also becomes easy for you to try out experimental new features in future community releases of JBoss AS 7, 8, etc. by just picking the right version in the dependency management section.

 

Note: as productized versions stabilizes, gets security and bug fixes some differences will occur which might require some other changes but with the conventions of the -redhat qualifier and usage of so called Maven Bill-Of-Material(BOM)-pom’s it becomes easy migrate and there is a central place and format to outline the build differences that applies to you as a user of JBoss AS and EAP.

JBoss Tools and Quickstarts

There are two easy ways to get started with quickstarts from within JBoss Tools.

 

The first one is simply to open JBoss Central and pick one of the Quickstarts listed in the project example section:

jbosscentralquickstarts.png

 

When starting such example you get a short description plus option to download any missing plugins or server runtimes (such as AS 7.1).

Note: at time of writing the current M5 release of JBoss Tools targets AS 7.0, AS 7.1 will be targeted in upcoming JBoss Tools release.

 

projectexamplefirstpage.png

 

This makes it easy to get started - the only thing you need is to download JBoss Tools or Developer Studio and it will help you get the remaining dependencies.

 

Alternatively if you prefer to download everything manually and have access to all quickstarts in on go then simply Download the quickstarts and use the ‘Existing Maven Projects’ Import wizard.

 

mavenimport.png

 

In this wizard you can import a subset or all quickstarts as you see fit. After that JBoss Tools will with help of m2eclipse and m2e-wtp import the projects and you can start trying out JBoss AS 7 or EAP 6.

 

And as a final touch if you target AS 7 the examples will be setup to use community binaries but if you target EAP 6 we will enable the enterprise flag for the archetypes which will make the created project target EAP productized binaries instead via the usage of the -redhat qualifiers instead.

What if I don’t want to use Maven ?

 

For easy distribution of quickstarts and making sure it works in the many different environments users work in it is the best option available today.

 

We do though understand and realize not everyone likes to use Maven for their projects and for this we’ve added a feature in JBoss Tools which allows you to convert a Maven Eclipse project to a “plain” Eclipse project.

 

The feature is available via right click on any classpath library such as “Maven Dependencies” and is called “Materialize Library”

materializelibrarymenu.png

 

This feature materializes (i.e. copy) the Maven classpath libraries from being located in ~/.m2/repository to a directory into your project + disabling the Maven Nature and thus you end up with a “Maven free” project.

 

materializelibrarydialog.png

 

This means you can use the Maven based quickstarts, import it, apply “Materialize Library” and end up with a project that has no dependency to Maven builds and you can create a build in your favorite alternative build tool.

 

Everybody wins.

 

The End

This brings to the end of my blog series concerning the main three features in AS 7 I get excited about: Deployable datasources, Developer Friendly Security and finally the Quickstart Frenzy.

 

Of course there are plenty of other features in AS 7.0 and 7.1 to get excited about, things like the ~1–4 second startup time, the scritable management API, domain multi node setup, unfied configuration files and more.

 

But the ones that excites me this time around are the ones that I found to be most helpful for developers and makes tooling integration easier/better.

 

I’ve told you what excites me in AS 7.1, now I would love to hear what feature of AS 7.1 excites you ?

I’m posting about three features which I have had a personal interest in making it into AS 7.1 and the upcoming JBoss Enterprise Application Platform (EAP) 6.

 

Today the topic is how AS 7 is secured but still stays developer friendly by default.

Developer Friendly Security

Security is one of those things you know is important but also knows it risk ending up making your and your user life miserable to get started with your product.

 

One of the big challenges AS have had over the years is that while it tried to be developer friendly out of the box by not being secured by default, developers forgot or simply did not know how to actually ensure the server was secured for proper production deployments.

 

This previous default out of the box behavior have led to several security issues for AS. Which if you are using an older AS version in production should go and verify you are not unknowingly exposed to.

 

All of these security defaults was mostly fixed by using EAP which is secured by default, but then as sideeffect needed additional configuration to be usable for development.

 

In AS 7.1 things are different. Here the server is now by default not exposed on external interfaces and there are simply no users registered that can login remotely.

 

But does this mean you now have to go and add a user before being able to use the server ? Do you have to configure the examples to use this new user and type in a password for doing deployments ?

No - you don’t have to! AS 7.1 has this great trick that when you connect to the management services the server will send a “secret key” challenge to the client which it can only answer if it has physical direct access to the filesystem with the same permissions as the user that is running the server.

 

default_as7_security.png

This means that if you as a developer run AS 7.1 and want to do some local management operations on it you do not have to setup any users nor configure your examples or tools to use the server - it will just work out of the box in the development scenario and if you go and deploy the server into production “as-is” it will not be exposing any internals unless. Big win for security and for developer usability!

Setting up a user

There are though one case where you have to setup an user as a developer. To access the web-based admin console (http://localhost:8080/console) you are using a browser and this goes on over HTTP within a browser which cannot (safely and portable) get access to the local secret key AS 7.1 generates.

 

Luckily adding a user is easy todo and if you try and access the web console AS 7 will even tell you how to do it, but let me repeat it here for completeness.

 

To add a auser you go into your AS 7 installation and run bin/add-user.sh. For the default case you can accept the default choices by pressing enter twice and just enter username/password and verify the username is correct.

 

It should look something like this:

$ cd jboss-as-7.1.0.Final
$ bin/add-user.sh

What type of user do you wish to add? 
a) Management User (mgmt-users.properties) 
b) Application User (application-users.properties)
(a): 

Enter the details of the new user to add.
Realm (ManagementRealm) : 

Enter the details of the new user to add.
Realm (ManagementRealm) : 
Username : max
Password : ******
Re-enter Password : ***** 
About to add user 'max' for realm 'ManagementRealm'
Is this correct yes/no? yes
Added user 'max' to file '/Users/max/runtimes/jboss-as-7.1.0.Final/standalone/configuration/mgmt-users.properties'
Added user 'max' to file '/Users/max/runtimes/jboss-as-7.1.0.Final/domain/configuration/mgmt-users.properties'

The two lines reveals what this add-user.sh actually does: update the mgmt-users.properties files found in the standalone and domain mode configuration.

If you wanted to you could update these property files manually since it is just pairs of username and a hashed password - but using bin/add-user.sh is by far the simplest approach.

Now with this user added the remote running tools can connect to AS 7 as long as they provide the username and password.

 

JBoss Tools and Security

By default JBoss Tools server adapter will use the local secret key generated by AS 7.1, but in case you are running remotely you will need to tell JBoss Tools which username and password to use.

This is done by double-clicking the server in the server view which will open the server editor. In here there is a “Management Login Credentials” section.

managementlogincredentials.png

Now if AS 7.1 requires a username/password JBoss Tools will be able to login to the server remotely to perform management operations.

 

Tomorrow

 

Tomorrow the topic is on how AS 7.1 comes with a large set of Quickstarts which runs out-of-the-box from command line, JBoss Tools or your second-favorite IDE.

I’m posting about three features which I have had a personal interest in making it into AS 7.1 and the upcoming JBoss Enterprise Application Platform (EAP) 6.

 

Today the topic is Deployable datasources.

Deployable datasources

Deployable file based datasources (named -ds.xml) have been a feature of JBoss for ages but in the redesign and release of AS 7.0 they did not make it in. Making it an unfortunate requirement for users to have their server running and use either the raw management API or the Admin Console to setup even the simplest datasource. You could do tricks like use @DatasourceDefinition annotations but it is not nice having to compile Java code to just wire up a datasource.

 

AS 7.1 finally fixes this issue and brings back -ds.xml and even include support for deploying JMS destinations via a -jms.xml file too, but that will be for another blog.

 

How does such a -ds.xml look like then ? Here is a simple one for a hsqldb running on localhost:

<?xml version="1.0" encoding="UTF-8"?>
<datasources xmlns="http://www.jboss.org/ironjacamar/schema">
    <datasource 
        jndi-name="java:jboss/datasources/employeedb" 
        enabled="true" 
        use-java-context="true" pool-name="employeedb">
        <connection-url>jdbc:hsqldb:hsql://localhost:1701</connection-url>
        <driver>hsqldb.jar</driver>
        <pool></pool>
        <security>
            <user-name>sa</user-name>
            <password></password>
        </security>
    </datasource>
</datasources>

The XML tags does what you think it does - configure a datasource with the proper JDBC connection url, username, password and so forth.

 

If you want to know all the details about this file format you can see the IronJacamar documentation for all the options available such as pool sizes.

 

Armed with this -ds.xml + a matching driver jar, which in this case is named hsqldb.jar you can copy the two files to the deployments folder of AS 7.1 and from then on the datasource named java:jboss/datasources/employeedb can be used by any application running on the server.

Creating -ds.xml with JBoss Tools

I actually did not manually type up that -ds.xml file for my local running hsqldb database, nor did I manually deploy the driver.jar. I used a new wizard that are coming in JBoss Tools 3.3 Beta1 which takes the connection information I already have setup in Eclipse, create the right files for me and if I update the files it will also update the deployments.

jbosstools_ds_wizard.png

Once this wizard have run I simply right click the -ds.xml + driver.jar and select ‘Mark as Deployable’ on them. This deploys them to my server and if I make changes to the -ds.xml the changes gets copied over directly and AS will pick up the changes shortly after.

datasource_markasdeployable.png

 

I find it exciting that we now not only have a file format for defining datasources, but also that they are separate deployable resources together with a driver jar which both can be easily shared on a team.

 

The fine print

A few caveats/tricks for this approach are:

  • I prefer deploying datasources independent of my application, but you can put the -ds.xml inside your application META-INF or WEB-INF directory and it will be deployed together with the application. 
  • The JDBC driver needs to be JDBC 4 compatible to be deployable out of the deployment directory. In the rare case your driver is not JDBC 4 compatible then you will need to deploy it as a module in AS 7.
  • The datasource can not be modified/managed via the Admin Console since it is a deployed resource and not part of the managed API of AS 7 - if you wish full admin control you will have to configure the datasource via the management API or admin console. As I understand it over time the admin console is set to include support for at least a read-only view of these file based datasources.
  • If you wanted to connect to a h2 database you would not need to copy the driver jar, but simply refer to <driver>h2</driver> instead and you it pickup the default embedded h2 database driver in AS 7.

Tomorrow

Tomorrow the topic is on how AS 7.1 is secured by default but is still developer friendly.

Filter Blog

By date:
By tag: