Skip navigation
1 2 3 4 5 6 Previous Next

JBoss Tools

121 posts

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.

The AS 7 team did a phenomal job with AS 7.0.

 

Rewiring and improving the core of the application server, making it a lean mean machine of isolated modules, concurrent loading and all out greatness. On top of that they took in the best of breed components from JBoss.org and other Java middleware communities and created the best Java EE Web Profile compatible server I’ve used.

 

But the team did not stand still - since AS 7.0 they have been working on improving the server and just last week released AS 7.1.

 

Listening to all of the community feedback that have been given, fixing bugs and implementing features that just did not make it into AS 7.0.

 

The next three days I’ll post a blog a day about each of 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: Deployable datasources, Developer Friendly Security & Quickstarts Frenzy!

 

AS 7.1 and JBoss Tools M5

But before I do then just let me say that if you are using JBoss Tools 3.3 M5 then it will work with AS 7.1 just fine except for one small caveat.

 

If you open the server editor for a server configured to work with AS 7.1 it will complain about a missing server port. This happens because AS 7.1 introduced using a system property default value instead of a concrete port number in its XML configuration which M5 does not parse correctly. It will thus show an empty field and mark it is an error.

 

failedport.png

The server will happily still start/stop etc. if you are using defaults, but if you don’t like to see the error in the server editor or are using non-default values then to fix this simply uncheck “Automatically Detect” and type in the port value manually (i.e. 9999).

 

fixport.png

 

This glitch is fixed in the nightly builds of JBoss Tools 3.3 Beta1 which we are working on making stable and available anytime soon.

 

Until then, see you tomorrow to hear about Deployable datasources.

Latest OpenShift enabled port-forwarding for your OpenShift applications.

 

This enables you to use a debugger for your JBoss application and it allows you to connect to the database directly and use tools like Eclipse Database Browser instead of only using phpsqlmyadmin.

Of course once you have these things setup in your Eclipse you can use things like reverse engineering and even run your local app against the remote database.

 

It all works by setting up an ssh tunnel that exposes the internal remote ports running on OpenShift servers on your local machine - this does require some manual steps which i'm outlining in this blog

together with how to configure the database setup in Eclipse and how to remote debug JBoss running on OpenShift.

 

In future releases of JBoss Tools we'll be looking at simplifying these steps, but for now here are the fully manual steps.

Setting up port forward

The simplest way to do this is to use the rhc command line tools.

 

Make sure you got the latest version - how to install/update these for various platforms is documented here.

 

Once you have those run rhc-port-forward -a <appname>.

 

I have an app called ‘fonk’ of type ‘jboss-as7’ and with ‘mysql’ cartridge enabled. For such a setup you should see something like this:

rhc-port-forward -a fonk 
Password: 
Checking available ports...

Binding httpd -> 127.1.255.130:8080...
Binding java -> 127.1.255.129:8080...
Binding mysqld -> 127.1.255.129:3306...

Use ctl + c to stop

OSX gotcha

In case you get an error print out similar to this:

bind: Can't assign requested address
channel_setup_fwd_listener: cannot listen to port: 3306
bind: Can't assign requested address
channel_setup_fwd_listener: cannot listen to port: 8080
bind: Can't assign requested address
channel_setup_fwd_listener: cannot listen to port: 8080
Could not request local forwarding.

You are most likely running OS X which unfortunately(?) does not automatically allow you to have all 127.x.x.x IP’s setup with a so called loopback alias.

 

To fix this you need to add such alias manually for each IP you want to connect to.

 

In my case that is 127.1.255.130 and 127.1.255.129 as seen in the first attempt of using rhc-port-forward. These IP’s will be different for each of your app, thus for `fonk’ app I enable loopback aliases by running the following:

sudo ifconfig lo0 alias 127.1.255.130
sudo ifconfig lo0 alias 127.1.255.129

Now when you run rhc-port-forward you should not be seeing any bind: Can't assign requested address. error messages.

 

Note: these alias’es does not survive reboots - if anyone know how to setup global loopback alias or make these persistent between reboots then I would love to hear about that in the comments

Use OpenShift database locally

When port forwarding is enabled you can start using these, for example to setup and connect to MySql database via Eclipse DTP Tools.

 

To do this open the Data Source Explorer:

datasourceexplorer.png

Click on the “New Connection Profile” and choose MySql and give it a name.

newconnectionprofile.png

Click Next and if you do not have an existing driver for MySQL configured you will see an empty list:

emptydriver.png

To add a driver click the + icon and setup a driver:

mysqldrivermissingjar.png

For OpenShift MySQL the 5.1 option is best, and it just needs to be told where the driver is under the “Jar List” tab. Here you click the “Edit JAR/Zip” and point it to your downloaded mysql-connectoer-java-5.1.jar.

editedjarlist.png

Once that is done you just need to fill in the right connection details:

connectiondetails.png

The important part for the connection details is that you set URL to match the pattern:

jdbc:mysql://<forwarded-ip>:3306/<appname>

For my fonk application that would be:

jdbc:mysql://127.1.255.129.3306/fonk

And then set “User Name” to admin and type in your MySql password.

You can use the “Test Connection” button to verify you can connect.

When you press Finish you should be able to browse your remote mysql database hosted on OpenShift:

datasourceexplorerconnected.png

From here on out you can now use this Eclipse dataconnection with any plugin that supports such connections. i.e. Hibernate Tools reverse engineering features.

Debug JBoss AS

To enable debug with JBoss we need to add a enable_jpda marker file to .openshift/markers.

This is done by simply executing the following:

cd git/fonk
touch .openshift/markers/enable_jpda
git add .openshit/markers/enable_jpda
git commit -a -m "enable jpda"
[master 6f7197c] enable jpda
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 .openshift/markers/enable_jpda
git push
<openshift remote build output>

Note: you can of course also do this all from within Eclipse via EGit integration if you prefer that.

When this have been enabled you need to start/restart port-forwarding to get it to pick up the java jpda port.

rhc-port-forward -a fonk 
Password: 
Checking available ports...

Binding httpd -> 127.1.255.130:8080...
Binding java -> 127.1.255.129:8080...
Binding java -> 127.1.255.129:8787...
Binding mysqld -> 127.1.255.129:3306...

Use ctl + c to stop

Notice the Binding java -> 127.1.255.129:8787.... line, that is the jpda ip and port you are going to use.

Now to set this up in Eclipse JDT debugger you need to create a ‘Remote Java Application’ under “Debug Configurations”

debugconfigurations.png

And here you select ‘Remote Java Application’ and fill in the connection details:

setupremotedebug.png

The important pieces here are to set Host: to the ip number (in my case 127.1.255.129) and the port wich for JBoss AS on OpenShift is 8787 by default.

 

The Project part is optional, but its useful to point it to the matching Eclipse project which will allow it to find the proper source and let you place breakpoints.

 

Once you press “Debug” it should go and connect to the running server. It might take a while, it is after all going into the Cloud

 

And if you now set breakpoints and use a browser to trigger them you get something like this:

debugjsp.png

This showing the remote debugger hitting the breapoint in a jsp page named snoop.jsp.

 

Conclusion

I hope I showed you how powerful OpenShift’s latest release with port-forwarding is and how (fairly) easy it is to setup once you get the port-forwarding working.

 

Being able to connect directly to the remote database and debug you JBoss server makes for a whole new world of possibilities and productivity boost with OpenShift.

 

Hope you like it and continues to have fun exploring OpenShift and JBoss Tools.

 

/max

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.

 

Update 08/02/2012 : m2e-wtp 0.15.1 has been released to fix a build related issue, but is strictly identical to 0.15.0 in terms of code/features

 

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

One of the great advantages of working with open source software is the freedom of choice that it provides you. You aren't locked in by vendors or arcane licenses, you can choose the combinations of components that you want to work with. In doing so, however, you will likely have to invest time and effort in integrating these components to work together. Accomplishing these integration tasks can be difficult.

 

But, luckily, with JBoss Developer Studio, this integration work is already done for you. In JBoss Developer Studio, you have access to a rich JEE development environment that leverages JBoss technologies. JBoss Developer Studio provides graphical editors, integrations with source control systems, and  the ability to configure servers and deploy applications to them, all from inside an eclipse-based environment.


 

In the past, managing all these integrations required you to use multiple tools and actions. You could, however, do all these tasks without shutting down or leaving JBoss Developer Studio. That’s an important point to keep in mind as one of the goals of an IDE is to provide you with an environment in which you can perform development without having to exit the IDE to perform other common tasks such as staying up-to-date with new developments affecting the software with which you are working.

 

 

What was missing was a single utility to help you to access and stay up-to-date with JBoss technologies, news, examples and manage the specific plugins that you choose to install and use with JBoss Developer Studio.

 

The recent M5 ("milestone 5") build for JBoss Developer Studio 5 includes an answer to this problem: JBoss Central. 


 

(Note: This post is written from a Developer Studio perspective. JBoss Central, however, is also included in JBoss Tools.)

 

By default, JBoss Central is the first view that is displayed when you open JBoss Developer Studio. (OK, it’s really the second, after you get past a welcome view that has only one option - JBoss Central). But, JBoss Central is more than a welcome screen, it is a full featured "center of gravity" to assist you in both getting started with JBoss Developer Studio and in continuing and expanding your use of JBoss Developer Studio.

 

How is JBoss Central different from a welcome screen? In three important ways:


 

  • First, JBoss Central is dynamic, not static. You can receive updated news and blog content automatically through JBoss Central. In addition to informational content changes, new quickstart examples, and new wizards to create applications are pushed to you without you having to manually update or reconfigure JBoss Developer Studio.


  • Second, JBoss Central is active, not passive. JBoss Central can perform administrative tasks for you such as resolving dependencies and installing necessary plugins and runtimes. 

 

  • And third, unlike a welcome screen that you might only use once and then discard, JBoss Central is a destination. It’s a place that you will return to frequently as you use JBoss Developer Studio to develop, debug, deploy, and test your applications.

 

Let’s take a quick tour of JBoss Central. JBoss Central is divided into two tabs: Getting Started and Software/Update

 

 

The Getting Started tab looks like this:


 

 

and includes these options:


 

  • Create Projects - These wizards walk you through creating new projects.
  • Project Examples - The “quickstarts” are fully functioning applications. The goals of the quickstarts are to both illustrate technologies and features, and to provide you with working code that you can expand on to build your own applications.
  • Settings - These control how JBoss Central itself functions. Right now, there’s only one option here; whether JBoss Central is shown at startup.
  • News - This is a feature that can save you some time, as it enables you to access news from within JBDS and not have to access an external news reader.
  • Blogs - This serves as a good compliment to the News feature in that the combination of the information from these features can keep you up-to-date on new developments related to JBoss projects and technologies.

 

 

The other tab, Software/Update, looks like this:


 

 

As its name implies, Software/Update enables you to install features into JBoss Developer Studio and then update them. By default, JBoss Developer Studio, is configured to enable you to install and update features for source control, testing, and web development. It’s worth noting that while Eclipse does already include features to install software and keep it up-to-date, Software/Update is a more visual and easier to use.

 

 

Now, let’s take a more detailed look at one way JBoss Central is more than a welcome screen. We’ll start by installing one of the quickstarts. We’ll use the simplest quickstart, helloworld:


 

 

And, here’s where JBoss Central becomes an active helper, and not a passive bystander. Instead of failing to install the quickstart because of the lack of an installed server runtime, JBoss Central determines which runtime is missing, and will download and install it for us. Note that these quickstarts illustrate features suported by JBoss’ new AS7 server (http://www.jboss.org/as7).


 

So, let’s be lazy and let JBoss Central downlaod and install the server for us:


 

 

Now, it’s a simple matter to deploy and run the quickstart:


 

 

We’ll do it through Maven:


 

 

Once the quickstart is installed, we start the server, deploy the quickstart, and, in the tradition of all helloworld applications, here’s the minimalist output:


 

 

To sum it up, while it’s still a work in progress, JBoss Central is more than a welcome screen or an “on-ramp,” it’s an active and dynamic center of gravity for JBoss Developer Studio and a place that you will want to return to again and again as you use JBoss Developer Studio.

 

References:

 

http://docs.jboss.org/tools/whatsnew/central/central-news-1.0.0.M4.html

 

https://community.jboss.org/wiki/EasyPluginInstallationFromJBossCentral

 

https://community.jboss.org/community/tools/blog/2011/12/18/learn-java-ee-6-quickly-using-jboss-central

snjeza

JBoss Source Lookup

Posted by snjeza Jan 24, 2012

The JBoss Tools Source Lookup plugin automatically adds a source attachment when debugging JBoss AS servers.

The plugin has been tested with JBoss AS 7.x and JBoss AS 6.1.

 

Installing the JBoss Source Lookup plugin

 

 

Note: Since JBoss Tools 3.3 Beta3 JBoss Source Lookup is available and part of JBoss Tools Maven integration.

No need to install JBoss Source Lookup from the temporary updatesite anymore.

 

  • call Help>Install New Software..., click the Add button and enter the following update site:

https://anonsvn.jboss.org/repos/jbosstools/workspace/snjeza/org.jboss.tools.as.sourcelookup.updatesite/

lookupblog1.png

Install the JBoss Tools Source Lookup category and restart Eclipse.

 

Using the JBoss Source Lookup plugin

 

 

The use and debugging of this plugin is demonstrated in the following screencast: Debugging JBoss AS server.

 

The JBoss Source Lookup plugin enhances source attachment in the following way:

 

  • archive file doesn't have to be in the maven classpath
  • archive file doesn't have to be included in the classpath (jbossweb-*.jar, for instance). The JBoss Source Lookup plugin will find a class within a JBoss AS distribution and, if it is a Maven artifact, the plugin will attach the corresponding source.
  • archive file doesn't have to be in the m2e index (jbossjts-4.16.0.Final.jar, for instance)

 

You don't have to add any JBoss AS Runtime to the classpath. I have added it in order to ensure the classes within the runtime are included in the Java Search and in order to be easier to add a breakpoint.

 

Debugging Apache Tomcat and Glassfish servers

 

The JBoss Source plugin can serve to debug other servers.

If a server includes mavenized archives, the JBoss Source container will find, download, and show source files.
I have tested the Apache Tomcat 7.0.25 and Glassfish 3.1.1.

 

If you want to debug Apache Tomcat and/or Glassfish, you have to do the following:

 

  • create some Apache Tomcat/Glassfish server

    lookupblog3.png

  • open the server editor

    lookupblog4.png

  • click Open launch configuration and select the Source tab

    lookupblog5.png

  • click the Add button and select the JBoss AS Source Container

    lookupblog6.png

  • JBoss AS servers will be automatically recognized and you can choose them by clicking a server
    As to other servers, you need to click the Choose Home button, select all the directories in which the server's archives are placed.

        If you debug Tomcat, you can choose $TOMCAT_HOME/lib.  When debugging Glassfish, you can choose $GLASSFISH_HOME/lib and $GLASSFISH_HOME/modules.
        You can add as many JBoss AS Source containers as you want.

lookupblog7.png

 

  • move a JBoss Source container(s) to the end (optional)

    lookupblog8.png

  • you can add a Server Runtime container to the project's classpath (optional)

    lookupblog9.png

  • start the server in the debug mode

    lookupblog10.png

    StandardWrapper.java is placed in the glassfish's web-core.jar.  
    The Source Lookup plugin finds this archive's source and shows it in the editor.

 

In a similar way you can debug Apache Tomcat server.

lookupblog12.png

The ApplicationFilterChain.java is placed in the Tomcat's catalina.jar archive.

 

 

The Source Lookup plugin finds source for a mavenized archive as follows:

 

  • using the m2e API
  • using the archive's metadata (META-INF/maven)
  • using nexus repositories that can be defined using the Source Lookup preferences page

    lookupblog11.png

 

The Source Lookup preferences page enables you to add/remove, enable/disable and/or change ordering of Nexus repositories.

You can see that the helloworld project I have used in this blog, is not a maven project (it doesn't contain the maven icon).
JBoss Source Lookup plugin can be used to debug any Java project.

 

The plugin doesn't have to be used for debugging only.

It will find, download and open a source file for a mavenized archive included in the classpath when double-clicking a class file in the Package Explorer view, opening it using Navigate>Open Type or some other way.

 

The JBoss Source Lookup plugin can be used for any Java project and any launch configuration.

 

Note: When starting debugging the first time, it could take some time until m2e updates indexes and the JBoss Source lookup plugin scans the container's directory.

While everyone except me is having fun at JUDCon in India I thought it would be nice to let you know that there will be a few talks done by us/related to JBoss Tools in the near future elsewhere.

 

FOSDEM - 4-5. February, 2012, Brussels, Belgium

http://fosdem.org/2012/sites/all/themes/fosdem/images/logofosdem2.jpg

 

First up is FOSDEM in Brussels where there is a whole jboss.org DevRoom track of great talks, especially:

 

"JBoss Forge / Arquillian: Two Missing Links in Enterprise Java Development" by Koen Aers on Saturday, 4th February 2012 at 15:00.

 

Expect Koen to do show magic with his Forge Tooling which makes Forge and Eclipse work for you instead of against you.

 

EclipseCon, 26-29th March, 2012, Richmond Virginia

http://www.eclipsecon.org/2012/sites/all/themes/themes/econ2012/images/logo.png

 

This year EclipseCon is moving from "sunny" California on the west coast to Virginia on the east coast. Looking forward to see how the change of scenery will affect the conference.

 

"What's new in the OSGi Enterprise Release 5.0" by David Bosscheart (Red Hat) and Tim Diekmann (Tibco) on Tuesday, 27th March 2012 at 11:15

 

"Tycho - still good, bad or ugly ?" by Max Rydahl Andersen on Tuesday, 27th March 2012 at 16:15

 

"Ceylon - The language and it's tools" by Max Rydahl Andersen on Thursday, 29th March 2012 at 10:15

 

MOW2012, 18-20th April, 2012, Billund, Denmark

http://mow2012.dk/images/mow2012/images/logo_transparent.png

For the second year Miracle Open World which before was a dominantly "Oracle Database" conference is having tracks that includes other languages and especially Java middelware content. I was there last year and it was awesomely fun, even though very few had realized it was more than a database conference.

 

This year I and a few others from Red Hat will be presenting again so hope more will join in on the fun.

The following are the ones related to JBoss Tools, and titles being self-explanatory:

 

"Ceylon - say more, more clearly" by Max Rydahl Andersen on Thursday, 19th April 2012 at 11:00

 

"Death of the slow: 7 reasons to love AS 7" by Max Rydahl Andersen on Thursday, 19th April 2012 at 15:00

 

"JavaEE on the Cloud with OpenShift Express" by Thomas Heute on Friday, 20th April at 11:00

 

See you out there having fun!

We were quite busy up to the holidays getting JBoss Tools 3 M5 out and as a new year gift we updated our early access site for JBoss Developer Studio with its M5 release.

 

https://community.jboss.org/servlet/JiveServlet/showImage/38-2030-10503/earlyaccess.png

 

JBoss Developer Studio is Red Hat's full fledged Eclipse based IDE which is freely available in its standalone version (i.e. without JBoss Enterprise Application Platform) and

the same goes for this milestone 5 release - it is freely available from http://devstudio.jboss.com/earlyaccess.

 

Noticable changes in JBoss Developer Studio M5 are:

 

Universal Installer

We now provide an universal installer that works on all our supported platforms (and then some). This means you no longer have to consider which of the many OS specific installers we provide. You now just download the universal installer, run it and the installer will figure out which OS you are running and install the OS specific bits as needed.

 

JBoss Central

It is now even easier to get started using Developer Studio with JBoss servers via JBoss Central and if you are interested in latest news JBoss Central will give that too.

 

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

Of course if you do not like it and every startup you can just disable the auto-startup and just open it whenever you wish too via the JBoss icon in the toolbar.

 

You can also use JBoss Central Software/Update page to install additional features and 3rd party plugins such as JRebel, FindBugs, SVN and others.

 

 

OpenShift

You can now create OpenShift applications directly from Developer Studio and get developing with Java EE and other OpenShift technologies in the cloud.

 

 

And more...

We've continued to fix bugs and integrate more of the new features found in JBoss Tools plugin set.

 

You can see more about those here and you can download Developer Studio 5 M5 from here

 

Have fun!

While developping web applications, it's common best practice to minify (and sometimes obfuscate) static resources such as javascript and css files.

Such resource processing can be done either at build time or at run time, depending on the tools you're using.

Surprisingly, tooling and documentation is rather scarce when it comes to web resource optimization in the Eclipse World.

On the other hand, maven has a wide variety of plugins wrapping around well-known 3rd party optimizers. In particular, Web Resource Optimizer for Java, a.k.a WRO4J is a :

 

"Free and Open Source Java project which brings together almost all the modern web tools: JsHint, CssLint, JsMin, 
Google Closure compressor, YUI Compressor, UglifyJs, Dojo Shrinksafe, Css Variables Support, JSON Compression, 
Less, Sass, CoffeeScript and much more. In the same time, the aim is to keep it as simple as possible and as 
extensible as possible in order to be easily adapted to application specific needs."

http://code.google.com/p/wro4j/

 

While WRO4J can be used at runtime, it also provides a maven plugin if you prefer a build time approach : wro4j-maven-plugin,.

 

Since Eclipse WTP allows you to incrementally deploy changed resources in your workspace directly to your prefered application server,

having a way to do on-the-fly resource optimization deployment would be great, wouldn't it?

 

Now, m2e (the Maven Integration for Eclipse plugin) users probably know, or will know soon enough, that m2e doesn't run maven plugins it doesn't know about. So having

 

<plugins>
  <plugin>
    <groupId>ro.isdc.wro4j</groupId>
    <artifactId>wro4j-maven-plugin</artifactId>
    <version>${wro4j.version}</version>
    <executions>
      <execution>
        <phase>compile</phase>
        <goals>
          <goal>run</goal>
        </goals>
      </execution>
    </executions>
    <configuration>
      <targetGroups>all</targetGroups>
      <destinationFolder>${basedir}/src/main/webapp/wro/</destinationFolder>
      <contextFolder>${basedir}/src/main/webapp/</contextFolder>
    </configuration>
  </plugin>
</plugins>

 

would result in the dreaded "plugin execution not covered" error. Indeed, since Eclipse is all about incremental building (i.e. builds modified resources as soon as they're saved),

triggering long-running maven plugin every time a file is changed in the workspace would be a disaster. So m2e requires users to be explicit about what maven plugins should be run and when.

As a consequence, in order for these unknown plugins to be run on incremental builds, users need to modify their project pom.xml (or their parent pom.xml) and add a lifecycle-mapping configuration like (in the case of wro4j) :

 




<pluginManagement>

<plugins>
    <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
    <plugin>
        <groupId>org.eclipse.m2e</groupId>
        <artifactId>lifecycle-mapping</artifactId>
        <version>1.0.0</version>
        <configuration>
            <lifecycleMappingMetadata>
                <pluginExecutions>
                    <pluginExecution>
                        <pluginExecutionFilter>
                            <groupId>ro.isdc.wro4j</groupId>
                            <artifactId>wro4j-maven-plugin</artifactId>
                            <versionRange>[1.0,)</versionRange>
                            <goals>
                                <goal>run</goal>
                            </goals>
                        </pluginExecutionFilter>
                        <action>
                            <execute/>
                        </action>
                    </pluginExecution>
                </pluginExecutions>
            </lifecycleMappingMetadata>
        </configuration>
    </plugin>
    ...
</plugins>

 

Eventually, that lifecycle mapping would execute WRO4J on each and every file change in your project. That's a bit extreme, but the biggest problem is the generated files wouldn't be synchronized with the workspace so wouldn't be deployed automatically on a WTP server.

 

Here comes the m2e-wro4j connector : it's an eclipse plugin (in its early phase) that :

  • doesn't need the extra wro4j-maven-plugin lifecycle mapping
  • allows wro4j-maven-plugin to be invoked when .js, .css, .coffee, .less, .scss files are modified. Modifying the pom.xml also triggers the m2e-wro4j connector.
  • is always invoked on clean builds
  • updates the output folders so the changes can be visible directly in Eclipse and deployed directly via WTP if needed
  • automatically translates ${project.build.directory}/${project.build.finalName}/ output directories to ${project.build.directory}/m2e-wtp/web-resources/ if m2e-wtp is detected
  • Provides a wro4j-maven-plugin template, available on ctrl+space in the pom editor, in the <plugins> section :

wro4j-template.png

Using the above wro4j-maven-plugin configuration, and provided you have an wro.xml descriptor under src/main/webapp/WEB-INF, you can see in the following example the 2 css files are combined and minified into one all.css file under /target/m2e-wtp/web-resources/resources/styles/ and the javascript file is minified under /target/m2e-wtp/web-resources/resources/styles/all.js

wro4j-optimization.png

 

If you're interested in trying m2e-wro4j, you can install it from the following p2 update site : http://download.jboss.org/jbosstools/updates/m2e-wro4j/

 

 

Please be aware this initial version is really in its alpha stage (was coded in a day). Issues can be opened at https://github.com/jbosstools/m2e-wro4j/issues

 

For all your WRO4J or wro4j-maven-plugin specific issues, I strongly encourage you to :

 

Hope it helps.

 

19/01/2012 Important update : the github repo was transfered to the jbosstools organization under https://github.com/jbosstools/m2e-wro4j/. You must manually update your upstream repository url.

 

Fred

…or any other DropBox enabled tablet...

 

I was trying to locate a Git client for iOS to allow easy editing of OpenShift repositories from my iPad but did not manage to find anything but some barebone github viewers.

 

Instead I started playing around with Hazel, DropBox, OpenShift and my iPad and I managed to create a little “Cloud IDE” to enable editing and deployment to OpenShift from my iPad.

 

openshiftonipad.png

 

Note, I use Hazel and an iPad in this blog which unfortunately makes it Mac/OSX specific but you should be able to do this on any OS and tablet as long as you have something similar to Hazel that can execute commands based on changes to a directory and your tablet have an DropBox enabled editor. If you have such a setup on a another OS/tablet combo I would love to hear about it in the comments.

 

Finally, in this blog I assume you already have git installed to be used from your machine. How you setup your OpenShift application, wether with JBoss Tools or command line clients is not relevant for this usecase - only necessary to have git working for this.

Once you have that the remaining steps are as follows:

Setup DropBox

Download and install DropBox - this link is a reference link and both you and I get 250 MB extra bonus space if you are creating a new DropBox account.

 

DropBox should be installed on a machine that is “always” online or at least while you want edits done on your iPad to take effect.

Then git clone your favorite OpenShift application into a sub-directory within your DropBox, i.e. here is what I did to get my app named super into code on my DropBox:

cd ~/DropBox/code
git clone ssh://yourprivateid@super-man.rhcloud.com/~/git/super.git/

If you do not know your git URL you can use rhc-user-info to find it.

 

Once you have the content on DropBox verify that it is possible to deploy to OpenShift from the machine. Edit a file and execute

git commit -a -m "1-2-3 testing"
git push origin

If that completes without errors your DropBox machine is ready to run.

Setup Hazel

Download Hazel on the same machine as you have DropBox setup and running on and add a rule that looks like the following for the directory where you want the script to be executed:

 

hazel_codeexec.png

 

The conditions are:

  • Extension is sh
  • “Date Last Modified” “is after” “Date Last Matched”

 

and when it finds a file matching these criteria then setup an action that does the following:

 

“Run Shell Script ”embedded Script":

touch $1.running
sh $1 &> $1.log
rm $1.running
touch $1.log
exit 0

 

The Hazel rule is straight forward. It executes any updated .sh files on the machine and in the process it creates a temporary ‘.running’ marker file to let you know it process is running and then pipe all the log output to a .log file and finally exit with status 0 since the actual script could fail but that should not be treated by Hazel as an error.

Add ‘short-cut’ scripts

To avoid too much annoying typing on your tablet I suggest you create a commitpublish.sh with the steps necessary to do a commit and push for your OpenShift application.

 

For my super app I created a commitpublish.sh with the following content:

cd super
git commit -a -m "Committing via DropBox"
git push origin

You can also add other useful shortcuts such as an status.sh that gives you latest log for your app:

 

rhc-ctl-app  -c status -a super -p <yourpassword>

Edit & Deploy via iPad

For the actual editing and deployment you should be able to use any DropBox enabled editor such as DropText, PlainText, etc. but I ended up using Koder since it was the only one I could find that had nice syntax highlighting and a good and fully functional DropBox integration.

 

Once you have configured a DropBox project in Koder you cans simply edit the content.

 

editindexxhtml.png

 

Once you are ready to publish it to OpenShift simply edit the commitpublish.sh file and make sure to Upload the file to DropBox and Hazel will take action and get it published.

editcommitpublish.png

 

Once the command and publish have completed you should be able to refresh in Koder and see a ‘commitpublish.sh.log’ file with the output.

 

checklog.png

 

If it completed succesfully you should now be able to see the result in a browser for your OpenShift application.

 

resultinbrowser.png

 

Have fun and do leave a comment if it works out for you or if you got an alternative for the above.

 

Happy New Year!

Just in time for the holidays I'm happy to let you know JBoss Tools 3.3 M5 is available for download.

http://in.relation.to/service/File/10824

3.3 M5

[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.

 

We were planning on this being named Beta, but for this release we got many new features which we thought deserved a (hopefully) final milestone. The new features are JBoss AS 7.1.x support, OpenShift Cartridges, Mobile Browser Simulator, Experimental Hibernate multi-version support, an updated JBoss Central with easy installation of 3rd party plugins and more!

 

Installation

 

As always, get and install Eclipse 3.7.1 (Indigo) JEE bundle - with the 3.7.1 JEE bundle you get majority 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/


JBoss AS 7.1.x Support

Now both AS 7.0 and AS 7.1 is now supported. We include the AS 7.1.b1 client libraries and the AS team just verified their just released AS 7.1.CR1 is compatible and working with this release.

 

I'm especially proud of the AS team's ingenious approach to having AS7 out-of-the-box being secured and locked-down for remote access but still allowing easy developer use of an local AS7. This allows tools like JBoss Tools, Maven, Arquillian etc. running locally under the same user as AS 7 to work seamless without additional security credentials setup - it just works

 

OpenShift

You can now use existing WTP projects when setting up an OpenShift Express Application - making it easier to go from local development and then later into the OpenShift PaaS. How this works is demo'ed in the following screencast:

 

 

We also added support for managing OpenShift cartridges which allows you to easily add things like mysql, mysqladmin, mongo and Jenkins support to your application.

 

http://docs.jboss.org/tools/whatsnew/openshift/images/embed-cartridge.png

You can now also get easy access to log files via the new "Show In > Remote Console" available in the context menu of the server adapter.

 

Finally we adjusted the OpenShift server adapter to be independent of an AS7 runtime, meaning you can use the server adapter without even installing AS7 locally.

 

Note: This change does make it necessary to remove M4 server adapters and add a new one since it required an incompatible change in the server adapter metadata. 

 

JBoss Central

In M4 we introduced JBoss Central, a "hub" for getting easy access to tutorials, 3rd party plugins and news related to JBoss technology.

Project Wizards

In M5 we are adding a set of Project Wizards to JBoss Central which makes it easy to get started with Java EE, HTML5, Richfaces and Spring MVC all tested and working on AS 7 based servers. Furthermore all the projects are following best practices with respect to using JBoss maven dependencies.

 

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

Note, all of these projects are deployable to OpenShift Express as AS 7 applications out-of-the-box.

 

3rd Party Plugin Installation

We've added a set of often used and now tested and verified 3rd party plugins to JBoss Central for easy installation into an Eclipse running JBoss Tools. The current list of plugins for easy installation are:

 

  • Subclipse (without the notorious issue of having to install additional svn connector plugin)
  • JRebel (currently tested to work with AS 7.0)
  • Google GWT Plugin (their license now allows open redistribution)
  • FindBugs
  • PMD
  • SpringIDE
  • TestNG

Mobile Browser Simulator

We've added a browser simulator to allow for easy and basic testing of your application layout when running in a mobile browser.

http://docs.jboss.org/tools/whatsnew/vpe/images/3.3.0.M5/9539.png

Hibernate Multi-Version

Hibernate Tools now support both Hibernate 3.5 and Hibernate 4.0.

http://docs.jboss.org/tools/whatsnew/hibernate/images/console_configuration_hibernate_version.png

Please be aware that this feature is still experimental and not all parts of Hibernate Tools works

smoothly with Hibernate 4. Code generation and query execution should though work

for basic cases. We will be working on this heavily through January thus you should see fast improvements on this area in the nightly builds

getting closer to beta.

 

If you do bump into bugs please let us know in forum or jira making sure we know about your specific Hibernate configuration that is causing problems and can help expaned the list of supported Hibernate 4 setups.

 

And more...

When we return in January I and others will be going into more details about the various many new and awesome features JBoss Tools 3.3.0 has to offer, until then there are additional screenshot and features to browse over at What's New & Noteworthy

 

Leave a comment to let us know what you think!

 

Happy holidays and as always,

Have fun!

The JBoss Central editor includes several quickstarts that provide a quick run-through of Java EE 6 features.

The quickstarts are based on amazing Pete Muir's JBoss AS7 quickstarts - JBoss AS 7.0 - Getting Started Developing Applications Guide

and are adapted to work with Eclipse/JBoss Tools.

This blog guides you how to install JBoss Tools 3.3 and start work with Java EE 6 using these tutorials.

 

Installing JBoss Tools 3.3

 

In order to install JBoss Tools 3.3, you need to perform the following steps:

  • install Eclipse Java EE IDE for Web Developers

      Download the appropriate archive for your OS, unpack it and start Eclipse.  

  •   Call Help>Install New Software..., click the Add button and enter the following update site:

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

jeeblog1.png

 

  • select the Abridged JBoss Tools 3.3 category

    jeeblog2.png

      Click Next, Next, check "I accept the terms of the license agreements" and click Finish.

 

  • Wait for Eclipse to download and install the JBoss Tools 3.3.  
  • Restart Eclipse when required.   

 

You have installed JBoss Tools 3.3.

 

JBoss Quickstarts (JBoss Central)

 

After Eclipse restarts, you will get the JBoss Central editor.

jeeblog3.png

Expand the JBoss Quickstart widget in the Project Examples section

 

jeeblog4.png

The helloworld, numberguess, login and kitchensink quickstarts will guide you through creating a Java EE 6 application.

Here I will describe to you how to create the helloworld application.  The rest of the applications are used in a similar way, but they introduce new concepts as shown in the following figures:

jeeblog5.png

jeeblog6.png

jeeblog7.png

jeeblog8.png

The HTML5 is a template project that doesn't include any cheat sheet.

jeeblogX.png

Helloworld quickstart

 

In order to create the helloworld Java EE 6 application, you have to do the following:

 

  1. click the Helloworld project example in the JBoss Central editor

    jeeblog9.png

  2. JBoss Tools will warn you that you have to install JBoss AS 7.0 or 7.1 in order to create, deploy and run this application.
    If you have already installed and configured JBoss AS 7.x, you won't see any requirement and will be able to skip to the step 3.             

       

    • If you have already downloaded JBoss AS 7.x, you will be able to configure it using the Install button.

      jeeblog10.png

      Add the directory where you downloaded your JBoss AS and JBoss Tools will configure a JBoss AS 7.x server for you.

       

    • If you don't have any JBoss AS 7.x server, click the Download and Install... button and JBoss Tools will, for you, download JBoss AS 7.0.2

       

      jeeblog11.png

      jeeblog12.png

       

  3. When the JBoss AS is installed and configured, you will get the following dialog:

    jeeblog13.png

    Click the Start button.

    The jboss-as-helloworld project will be imported and you will get the helloworld cheat sheet that will help you to review the application.

    jeeblog14.png

    jeeblog15.png

    Read the introduction to learn how the application works and click Click to Begin.

    The following screen will appear:

    jeeblog16.png

    After reading a detailed description, click Click when complete.

    jeeblog17.png

    The HelloWorldServlet.java section explains the HelloWorld servlet in detail.  When clicking the action, the cheat sheet will open the appropriate section of the code.

    jeeblog18.png

    Run or skip all the actions in the HelloWorldServlet.java section. You will get the HelloService.java section.

    jeeblog19.png

    Click Click to perform. The following screen will show up:

    jeeblog20.png

    That's it. You are ready to deploy and run the application on the JBoss AS 7 server you previously installed and configured.
    Click Click to perform

    jeeblog21.png

    Click Next

    jeeblog22.png

    Finally, click the Finish button.

    The cheat sheet will start the server, deploy the application and open it in a browser.

    jeeblog23.png

     

In a similar way, you will be able to create and review the numberguess, login and kitchensink applications. Kitchensink is an especially interesting application. In addition to explaining many Java EE 6 features (CDI, JSF, EJB, JTA, Bean Validation, JAX-RS, Arquillian), it automatically runs an Arquillian test and enables you to create your starting project.
Some advanced Java EE developers might also be interested in reviewing this application.

jeeblog24.png

Yesterday JBoss AS team released JBoss AS 7.1 Beta1 - the best release ever with some great stuff and an out-of-the-box secured server.

 

Note:

Since this blog post was written a new version of AS 7.1 and JBoss Tools have been released which works out-of-the-box.

See details at http://community.jboss.org/community/tools/blog/2011/12/23/jboss-tools-m5-is-coming-to-town

 

We knew that the out-of-the-box secured server would require changes to JBoss Tools to handle it, but it also turns out there is an unforseen incompatibility between the AS 7.1 Beta1 and AS 7.0 Final client jars that we use to talk to the AS server.

 

Thus if you use JBoss AS 7.1 Beta1 with JBoss Tools and start it up without changing anything you will see errors similar to this in the console output of the server:

 

19:40:43,780 ERROR [org.jboss.remoting.remote] (Remoting "greybeard:MANAGEMENT" read-1) JBREM000200: Remote connection failed: java.io.IOException: JBREM000201: Received invalid message on Remoting connection 64726693 to /127.0.0.1:62248
19:40:43,895 ERROR [org.jboss.remoting.remote] (Remoting "greybeard:MANAGEMENT" read-1) JBREM000200: Remote connection failed: java.io.IOException: JBREM000201: Received invalid message on Remoting connection 69123787 to /127.0.0.1:62249
19:40:44,006 ERROR [org.jboss.remoting.remote] (Remoting "greybeard:MANAGEMENT" read-1) JBREM000200: Remote connection failed: java.io.IOException: JBREM000201: Received invalid message on Remoting connection 190a621a to /127.0.0.1:62250

 

These are caused from the server seeing our "ping" to the server trying to get an answer to if the server is ready and launched but because of the incompatiblity bug it is resulting in these errors instead.

 

Eventually JBoss Tools will give up and report an error about the server startup not being detected.

 

To avoid seeing these errors and to be able to work with the server even though you secure it, there is a workaround for JBoss Tools.

 

You simply need to change the "Startup Poller" from "JBoss 7 Manager Service" to use "Web Port" instead and disable the Automatic detection of the management port. The details on that is described below.

 

How to workaround AS 7.1 not being recognized

 

In the "Servers" view double click on the server and it should open up the server editor:

 

Note that since JBoss Tools only know about "JBoss 7.0" that is what the default server will be called if you haven't typed in something else.

 

jbossas7_1oob.png

In here are the settings that need to be changed.

 

  1. Change "Startup Poller" to "Web Port"
  2. Remove the checkmark from "Automatically detect" under "Server Ports/Management"
  3. Type in '9999' into the Management field.
  4. Save (Ctrl+S) the configuration

 

Once you have done that it should look something like this:

 

as7_1_fixed.png

 

Now when you start this server we will no longer use the management API to check if the server is running but instead

just check if http://localhost:8080 is available.

 

I'm sorry for the trouble and we are working hard on getting it fixed and supported in next milestone of JBoss Tools.

 

You can monitor JBIDE-10224 to see the progress on the JBoss Tools side.

 

But do try to still Have Fun,

Max

maxandersen

Three Crazy Weeks

Posted by maxandersen Nov 22, 2011

I’ve been on the road two out of the last three weeks, speaking and attending three conferences: JUDCon London, EclipseCon in Ludwigsburg and finally Devoxx in Antwerp.

JUDCon London

At JUDCon I was co-hosting the third live JBoss Asylum Podcast together with Emmanuel Bernard. The topic was “Polyglot JBoss” with Marek Goldmann and Galder Zamarreno as guests talking about how JBoss supports, extends and develop on multiple languages outside just Java.

The recording of this is available on JBoss Asylum site or iTunes.

 

http://1.bp.blogspot.com/-rnnqJg4dzBQ/TrD6Z1ZWqMI/AAAAAAAAGSc/xOl-FFsU7KM/s200/2011-10-31+19.26.23.jpgImage curtesy Eric D. Schabell.

 

After the panel we got a set of lightning talks done by JBossians and external contributors which I had the pleasure of moderating. Was great fun.

I did the first lightning talk about how you make your examples for your framework/distribution the most accessible to users. Not everyone liked the conclusion, but I got good feedback on the content, thus I re-recorded the audio for this talk.

 

I’ve made the slides available together with the audio on JBoss Tools Vimeo group.

 

 

If  you just want the the slides you can get those from my SlideShare

 

At JUDCon I spent most of my time talking with attendees and colleagoues, but also did find time to attend a few talks. One of those stood out, namely “Hibernate Puzzlers” by Patrycja from @yonlabs. She presented a set of puzzlers and even though I knew all the issues she was presenting on, her puzzlers did caught me being unsure what the right answer was. Well worth watching if you get a chance.

 

EclipseCon

At Eclipsecon Europe they were celebrating it was 10 years since the first release of Eclipse the IDE. I unfortunately missed out on the party and cake since I was sure the celebration would be on the Thursday not Wednesday. Instead I spent that evening having early dinner with Fred Bricon and then we went separate ways to prepare for our talks the next day.

 

Fred did his first public presentation for Red Hat called “Workaround Driven Development: How Maven integrates with Eclipse WTP”. He covered how the m2e-wtp project makes Maven usable in context of Eclipse WTP projects and how it was technically done by bridging Eclipse and Maven’s two different worldviews on projects.

 

All during EclipseCon we got very good feedback from users of m2e-wtp and how it was the piece they were missing to actually be productive within their work on enterprise projects - always good to hear we and especially Fred's work are making a difference.

 

My talk was about the experiences we’ve done with the move to Tycho on the JBoss Tools project. It was hard to boil it down to a 20 minutes presentation but I think I succeded.

 

If you want to see and hear the presentation it is available from EclipseCon’s audio/video recordings under: Tycho - The good, the bad and the ugly

 

http://content.screencast.com/users/max.rydahl.andersen/folders/Jing/media/3e93a526-1828-4b5b-82eb-f68706cce976/00000374.png

 

 

Devoxx

Devoxx also had its 10th anniversary in Antwerp and I had the pleasure to attend and speak again this year. This year with a quickie  on how to “Deploy Java EE Applications to OpenShift”. I also got to reveal the news and do a demo of the new Jenkins support on OpenShift. 

 

https://lh6.googleusercontent.com/-eEBJLVkZcNQ/TsreV-JMRWI/AAAAAAAABPQ/rHSCovQS5mY/s720/DSC_2591.JPG

All in all a good talk but I don’t have a recording of this talk but the OpenShift team released a video covering similar content.

 

 

“Deploying Java Apps to the Cloud with the OpenShift Eclipse Plug-in”

They even made a cartoon over the whole OpenShift release including JBoss Tools called “A Comprehensive Lifecycle for Java Developers in the Cloud with OpenShift

 


 

Devoxx is also the conference in Europe where I get to meet up with many of the JBoss folks speaking there and this year was no exception. What was exceptional this year was though that we had a small booth this year leaving no space for the traditional fussball table. That was no fun. Lincoln, Kabir and I did though find a way have fun since there was beer and helium baloons at the booth:

 

 

AS7 is lightweight and superfast

 

 

Beyond having fun with helium I was also happy to hear that Google finally announced their opensourcing of their GWT Eclipse plugin tools. You can read my thoughts on that in my previous blog entry.

 

The most work was though on helping getting the Ceylon website and Eclipse updatesite ready for the planned launch at the end of Emmanuel Bernard and Stephan’s talk about Ceylon.

 

That turned out to be quite tricky despite Devoxx wifi being the best ever, but we made it through and now everyone can try out David Festal's Ceylon IDE by following the instructions on ceylon-lang.org

 

Pierre-Antoine Gregorie snapped a photo of us hacking away on getting the site in shape:

Hacking on Ceylon

 

All in all three very busy weeks and I here I’m not even covering all the other work that went on, but I’ll hopefully be able to write about the end-results of that in the upcoming weeks and months.

 

Until then, Have fun!

Google today announced they are making “Google Plugin for Eclipse” and "GWT Designer" fully open source and available under the Eclipse Public license.

 

We have many developers using Google’s Eclipse plugin to develop GWT-based applications targeting the JBoss Application Server.

 

With the open sourcing of the plugin we are looking forward to working even more closely with the Google team and the rest of the community on making the developer experience even more productive and an integrated part of Eclipse platform.

 

We are especially interested in seeing the Google Eclipse plugins being able to target multiple runtimes such as the JBoss Enterprise Application Platform and Google App Engine in a uniform way, working more seamlessly with standards-based tools and frameworks.

 

This targeting of multiple runtimes will also help users of JBoss AS, Glassfish, Tomcat and any other server that provides an Eclipse Web Tools compatible server adapter.

JBoss Tools GWT Integration

 

JBoss Tools already provide integration with the previous release of GPE via our experimental JBoss GWT Integration.

 

Our experimental plugin allows you to easily use the Eclipse standard web wizards and projects instead of the Google specific wizards to create and deploy projects.

 

One of the reasons we marked this integration “experimental” was because opposite to what many believe large parts of Google’s plugins for Eclipse was not open sourced. That made the implementation dependent on non-public API and to use it you needed the GPE GWT plugins that was not possible to distribute freely.

 

Those concerns were the reasons I’ve been urging Google to make the GWT plugins open source so we and users could actually distribute and use the plugins freely and at the same time we could start contributing fixes and features and not just bugreports.

 

In the end this should allow for much more stable and uniform user experience. This goes not only for JBoss Tools plugins integration, but for integration across the Eclipse ecosystem such as Eclipse Web Tools Project and m2eclipse.

 

Some of the issues we had, have been fixed in GPE 2.0. Now with Google open sourcing their plugin we and others can help contribute and fix the remaining issues and implement enhancements to make easy usage of Google GWT across multiple platforms from Eclipse a reality.

 

None of this of course happen automatically but the open sourcing of the Google plugins definitely make it much easier and I look forward to see and support the work around these plugins.

 

Thank you Google - now let’s go and have Fun

Filter Blog

By date:
By tag: