Red Hat

In Relation To JBoss Tools

In Relation To JBoss Tools

Seam Podcast up on DZone

Posted by    |       |    Tagged as CDI JBoss Tools Seam

DZone just posted an interview with me about Seam.

We spoke for a few minutes about Seam, and some of the features of Seam 2. Then we moved on to talk about the upcoming Seam 2.1, how it will support other view layers, and where JSF is going. Finally we spent a few minutes talking about Web Beans, and what it will mean for Seam users.

The site has both a transcript, and the audio.

JBoss Tools 2.1.2 and other news

Posted by    |       |    Tagged as Eclipse JBoss Tools

I noticed that there have been a lot of JBoss Tools related news going on while I were on vacation (maybe I should stay on vacation ?)

First off we got JBoss Tools 2.1.2 out which has some important bug fixes. Don't forget to use our patch to WTP to get proper JEE behavior when deploying ejb3 jars, see details here.

And No, this version is not for Eclipse 3.4/Ganymede - it is for Eclipse 3.3/Europa. JBoss Tools 3.0 will target Ganymede; I'll blog about that version later.

[Download] [Update Site] [What's'New] [Documentation] [Forums] [JIRA]

JBDS 1.1.0.GA which includes JBoss Tools 2.1.2 is also available now.

Other News

Max Katz's from Exadel got his Using JBoss Richfaces with JBoss Developer Studio from JavaOne posted on DZone.

DZone also posted a podcast interview (audio and transcript) with me talking about JBoss Developer Studio

Edem Morny posted instructions on how to get Tomcat 6 working with the Seam support in JBoss Tools on his blog.

Finall, Snjezana Peco from JBoss (JBoss Tools) is working on enabling Profile action for our JBoss AS adapters in JBoss Tools 3, but if you want to know how to do it with any version of JBoss Tools then take a look at this forum post where Snejana explains the steps for enabling TPTP profiling.

JBoss Tools 2.1.0.GA is here!

Posted by    |       |    Tagged as Eclipse JBoss Tools

Today we are releasing JBoss Tools 2.1.0.GA.

[Download] [Update Site] [What's'New] [Documentation] [Forums] [JIRA]

About JBoss Tools

JBoss Tools is a set of plugins that enhances and adds support in Eclipse for JBoss.org projects and related technologies such as JBoss AS, Hibernate, JPA, Seam, jBPM, JSF and more.

News

Version 2.1 has over 350 fixes, improvements and new features which include faster startup, faster Visual Page Editor, Find references/declarations for Seam EL, flexible project layouts (e.g. a WTP project is not a requirement anymore), 64-bit Linux support and more.

Read the full details in the New and Noteworthy.

Upgrading

Most users should be able to upgrade without any problems to this version. It is just a drop-in replacement.

It is though required to upgrade to Eclipse 3.3.2 and WTP 2.0.2 to use this release since it includes a set of fixes in the core Eclipse platform.

One known caveat is though that users of Seam 1.x or other projects that has JEE5 jars without descriptors (Seam 2 works fine) it is necessary to use our patch to WTP 2.0.2 if you want WTP deployment to work correctly. See the details here.

Feedback

I encourage everyone to try out JBoss Tools 2.1 and give us any feedback and contributions on our jira and forum. Your feedback is what will help us improve and extend the next version of JBoss Tools.

Have fun!

JBoss Tools 2.1.0.CR1 Released

Posted by    |       |    Tagged as Eclipse JBoss Tools

While everyone else is having fun at JavaOne we uploaded the candidate release of JBoss Tools 2.1.0 at sourceforge and via the development update site.

This release is mainly 100+ bugfixes/enhancements based on QA and feedback from the last release.

A few new features did make it into 2.1.x and you can see those at new and noteworthy.

To upgrade safely to this release please read the following.

Existing Seam projects

Existing Seam projects will work fine in this new release, except EAR projects with an application.xml should be updated to have something like the following modules:

<module>
 <web>
  <web-uri>myprj.war</web-uri>
  <context-root>/myprj</context-root>
 </web>
</module>

<module>
 <ejb>myprj-ejb.jar</ejb>
</module>

<module>
 <ejb>jboss-seam.jar</ejb>
</module>

..and nothing else. The <java> elements we generated previously are unnecessary and breaks WTP 2.0.2. The details about why that is are in the following.

Less rigid WTP 2.0.2

We are now targeting WTP 2.0.2+Patches to get some of its important bugfixes.

Unfortunately WTP 2.0.2 introduced a bad regression bug concerning deployment and another bug which makes WTP 2.0.2 very rigid about deploying jar's listed in application.xml via <java> or <ejb> tags unless they have xml descriptors (which is not required in JEE 5).

This affects Seam 1.2 projects and any other projects using binary jars with EJB's in them and projects that uses <java> or <ejb> in application.xml for jars without descriptors which is the case for projects created with previous version of JBoss Tools

To get around these various bugs/features of WTP 2.0.2 we had to do two things:

  1. application.xml in new Seam projects no longer lists jar's in <java> elements to work with WTP 2.0.2. Besides being more correct and standard compliant it also makes the application.xml much smaller so in overall this is a Good thing. Unfortunately existing JBoss Seam projects that uses <java> in application.xml can run into files not being deployed thus we added a EAR validator that will put warnings/errors on offending elements we know can cause problems and with instructions on how to fix it.
  2. We provide a cumulative feature patch to WTP 2.0.2 which removes the rigidness in WTP with respect to JEE jars without descriptors. It is a hack, but it at least allows JEE 5 compliant jars to work instead of causing a exception stacktraces and random behavior in Eclipse.

We had hoped this rigidness could be removed in an update to WTP 2.x, but that does not seem to happen within a decent time frame so we decided to release the patch on our own. Note: WTP 2.0.2+WTP provided patches will work for most users, but we do recommend running with our patch to avoid publishing issues.

Feedback

We plan on going GA within the next few weeks so we encourage you to provide feedback on our forum and jira in case you find something bad or good ;).

p.s. This version of JBoss Tools (sans the experimental parts) will be available in a JBoss Developer Studio 1.1.0.CR1 for JBDS customers soon.

How to create a visual DocBook editor in 10 minutes

Posted by    |       |    Tagged as JBoss Tools

Ever wanted to see how DocBook documents look like rendered without leaving your IDE ? This blog will explain how you can come from this:

to this:

Yes, that is a two-way visual editor for a DocBook document.

Warning: Before you go on please note that this is a work in progress and the API and file format used in this blog might change in future releases until we get it stabilized.

The easy way

Go to JBIDE-1304 and download the attachment which is a plugin you can unzip into your Eclipse plugins directory with JBoss Tools or JBDS pre-installed.

Run Eclipse with JBoss Tools installed and open your DocBook .xml file with the editor by using Open with > Other > JBoss Tools HTML Editor.

The harder way

The following describes the parts in play and how to write the plugin. First we need to understand how the Visual Page Editor works.

Mechanics of the Visual Page Editor

The Visual Page Editor (VPE) in JBoss Tools is actually more than just an editor for html-like languages like (X)HTML, JSP and JSF/Facelets, it is a general editor that can be adapted to edit (almost) any kind of XML based document in a visual editor. As long as you can define a set of transformation rules that gives you a good approximation of the rendering in HTML then using VPE is an option for you.

The VPE consists of two editor panes, a source part which can be any type of XML document and a visual part which is an embedded Mozilla browser which shows an approximation of how the XML source would look like when rendered to HTML.

The transformation works by running the the input tags through a set of templates and output the result which then will be viewed in the visual part.

An example of these templates is:

<vpe:template tag='section'>
  <h3>@text</h3>
</vpe>

This template says if a 'section' tag is found transform it into a 'h3' tag with the text of the section as the title.

Create a DocBook VPE extension

You either create a fresh new plugin or add the following to your existing plugin.

The plugin need to implement one extension point: org.jboss.tools.vpe.templates. You can use the plugin wizard if you want or you can add the following to your plugin.xml file:

 <extension
         point="org.jboss.tools.vpe.templates">
      <templates
            name="DocBook"
            path="templates/docbook.xml"></templates>
   </extension>

This tells VPE to read templates/docbook.vpe and use it for its transformation.

The template file contains the transformation rules and a basic implementation for DocBook would be:

<?xml version="1.0" encoding="UTF-8"?>
<vpe:templates>
 <vpe:tag name="chapter" case-sensitive="yes">
  <vpe:template children="yes" modify="yes">
   <div/>
  </vpe:template>
 </vpe:tag>

 <vpe:tag name="title" case-sensitive="yes">
  <vpe:template children="no" modify="yes">
   <h1>
    <vpe:value expr="{tagtext()}" />
   </h1>
  </vpe:template>
 </vpe:tag>
	
 <vpe:tag name="para" case-sensitive="yes">
  <vpe:template children="yes" modify="yes">
   <p/>
  </vpe:template>
 </vpe:tag>
	
 <vpe:tag name="section" case-sensitive="yes">
  <vpe:template children="yes" modify="yes">
    <div />
   </vpe:template>
  </vpe:tag>

 <vpe:tag name="imagedata" case-sensitive="yes">
  <vpe:template children="yes" modify="yes">
   <img src="{src(@fileref)}" />
  </vpe:template>
 </vpe:tag>
</vpe:templates>

A more complete version can be found in JBIDE-1304.

Notice how the transformations are just simple mappings from DocBook tags to HTML tags and how we use normal xpath expressions to refer to attributes like fileref.

Some tags might require more than just basic transformation, but that must wait for another blog :)

But otherwise that it is it! It is that simple.

Run Eclipse with the plugin

You should now be able to run your Eclipse directly from PDE or standalone with the plugin installed and open any DocBook .xml file with the editor by using Open with > Other > JBoss Tools HTML Editor

Future

The current version is just a prototype and still has some quirks but it functional for most editing of DocBook files.

We plan on putting this into JBoss Tools when we fix some of quirks described at JBIDE-1304.

Let us know what you think about this feature and consider contributing any enhancements you do back to us. If you want to see more example of possible transformations go look for .vpe files in JBoss Tools or JBDS distribution.

Thanks

This is a write up of the 10 minutes short talk I did at EclipseCon 2008 called How to extend the Visual Page Editor in JBoss tools inspired from what Max Katz, Alexey Kazakov and Sergey Vasilyev taught me about the extensions point in VPE.

The DocBook implementation was done by Denis Golovin.

Thanks Guys!

JBoss Tools 2.1.0.Beta released

Posted by    |       |    Tagged as JBoss Tools

Today we are releasing JBoss Tools 2.1.0.Beta. Go download it or use the development update site.

Important: Use Eclipse Europe Fall / WTP 2.0.1, do not use Eclipse Europe Winter / WTP 2.0.2 since it has a regression bug around deployment. We will have that fixed or worked around for 2.1.GA.

In this release we have the usual bug fixes and a good set of new features and improvements.

We compiled a list of the new and noteworthy with screenshots and videos of the new features. The reference documentation is available at docs.jboss.org, and if you want the full Release notes look here.

My favorite new improvements for this release are described below.

Open Seam component, Find References/Declarations

One of my most wanted feature for Seam tooling have been to quickly open Seam components and be able to find which EL expressions that refer to my components. That is now possible with Ctrl+Shift+Z that gives you an Open Seam Component dialog and Ctrl+Shift+G in Java now includes matches found in .xhtml, pages.xml, components.xml etc.

Flexible project structure for Seam projects

This feature is for all the maven, seam-gen-commandline and I want my own project structure-fan users out there.

We now expose all the various folder and project settings in the Seam project preferences to allow you to configure to your favorite project structure and thus still be able to use the Seam artifact wizards such as New Action, New Entity etc.

Safer incremental deployment

We now use JMX calls to suspend and resume JBoss's automatic deployment to ensure the incremental deployments gets fully copied before the files are redeployed by the container.

Big performance and memory usage improvements

Both the Seam Model and the Visual Page Editor have been profiled for hotspots and memory usage. The biggest issues have been fixed in this release. Visual Page editing is now faster and existing Seam projects opens faster.

Experimental 64-bit build

This release includes an experimental build of the tools which includes a 64-bit Linux XULRunner that should allow you to go fully 64-bit. Let us know how that works out.

Experimental JBoss ESB xml editor

We started work on a jboss-esb.xml structured editor similar to what we have done earlier for components.xml. It is still in an early stage, but let us know what you think about it.

Final words

Thanks to the whole JBoss Tools team for making this happen and especially a big thanks to all the feedback and bugreports we received from users!

There is more to this release so go take a look at new and noteworthy and enjoy the beta.

We encourage you to continue to dig into the new features and post your feedback on our forum and jira so we can get even closer to GA.

p.s. These features (sans the experimental parts) will be be available in a JBoss Developer Studio 1.1.0.Beta for JBDS customers soon.

JBoss Tool 2.0.1

Posted by    |       |    Tagged as JBoss Tools Seam

Congratulations to the JBoss Tools team at JBoss and Exadel for getting 2.0.1 out the door!

The last year we have been working full time on JBoss Tools and JBoss Developer Studio. One of the challenges we had were to add support for JBoss Seam in Eclipse. Similar to what the Seam team did for the underlying frameworks (JSF, EJB3, JPA, etc.) we had to do integrate/adjust for the various plugins that exists in the Eclipse family (WTP, JSF, Dali, etc.).

It had its challenges, e.g. WTP not really supporting JEE 5, Dali not liking multiple projects, WTP requiring multiple projects, Eclipse not really having a good way of handling nested projects and the lack of proper library dependency management built into Eclipse.

Fortunately it had its upsides too, e.g. Eclipse's Java 5 support is decent, WTP having a Server API that was usable (but though not perfect), XULRunner being there to realize the visual page editor etc.

I am sure others trying to implement Eclipse tooling support for their web or application framework will have bumped into similar good/bad things in Eclipse and would like to come and talk about it at the BOF at EclipseCon next week called Adding support for Web frameworks in Eclipse. I and Koen Aaers will be there trying to spark the discussion.

On the subject of EclipseCon I will also be doing two small talks:

How to extend JBoss Tools Visual Page Editor for custom tag libraries

JBoss Seam and Eclipse

...and a JBoss Gold sponsored talk:

Eclipse Plugins for Seam, JSF, JBoss AS and more

See you there!

Making Eclipse look good on Linux (revisited)

Posted by    |       |    Tagged as JBoss Tools

This is an updated version of Making Eclipse look good on Linux that integrates the comments and the changes relevant for Fedora 8 (which I finally got around to update to).

I'm still bothered by the clumsy look that Eclipse has on my Fedora box compared to how it looks on Windows and Mac.

Eclipse 3.3 running on Windows XP

Eclipse 3.3 running on Fedora 8 (but looks very similar on other distros)

Notice that the font size is bigger ( 10 vs 8 ) and that there is a lot of extra spacing between elements (The package tree and problem view is much more compact on windows).

I tried changing the GTK themes but the issue prevailed - the themes doesn't seem to adjust the fonts only the component look.

But with some help from my Red Hat friends on our tech-list I got some tips and ended up getting close.

The tweaks

Install Red Hat Liberation fonts if you don't already have them. They are free/liberated Windows fonts available for any OS and readily available in Fedora's repositories so they are very easy to install via /yum/.

After they are installed I ran /gnome-appearance-properties/ (/gnome-font-properties/ in Fedora 6) and used the following settings:

/Application/Document/Desktop font:/ Liberation Sans, size 9
/Window title font:/ Liberation Sans Bold, size 10
/Fixed with font:/ Liberation Mono, 10
/Font rendering:/ Best contrast (the others left weird artifacts)

/Under details:/
/Resolution:/ 97 dpi (to avoid the letters to get too close, need at least 1 px between them ;)
/Smoothing:/ Grayscale

/Hinting:/ Full

Depending on your Eclipse font settings the above will be enough, but if you already have tweaked some settings remember to check your Font settings under Eclipse preferences and verify that you are actually using the System default or the Liberated fonts to get the smoother more compact look. And finally, the above settings are much up to personal taste and they might even be different per distro since I had to use different values for F8 than for F6 to get what I liked.

The last thing is to remove some of that unneeded extra spacing in the tree views. The easiest way I found around that was to create an /~/.gtkrc-2.0/ file with the following content:

style "gtkcompact" {
GtkTreeView::vertical-separator=1
GtkTreeView::horizontal-separator=1
# Makes treeviews less spacy
GtkWidget::focus-line-width=1
GtkWidget::focus_padding=0
}
class "GtkWidget" style "gtkcompact"

Those settings will take effect when you restart Eclipse.

Eclipse 3.3 with Liberation font + tweaks

Much better, but unfortunately GTK still thinks it needs to have 1-2 extra pixels between the text in the tab components. If anyone know which gtkrc setting that can reduce that please leave a comment.

Incremental hot deployment with Seam and JBoss Tools

Posted by    |       |    Tagged as JBoss Tools Seam

I learnt a lot about JBoss Tools whilst writing a quick demo for my talk at Javapolis, and I wanted share a favourite feature with you - hot deploy of Seam components. Now, of course, this works with any seam problems if you set it up right, but JBoss Tools makes it /seamless/ :-). It removes the need for calling out to ant to copy the files to the application server - this makes it so quick you don't even see the progress bar pop up!

So, how do you get this going in your project?

Well, first, create a new WAR project (you can't currently hot-deploy EJB3s - vote for the issue here!)

You can learn more about creating a new project here.

Create a new action called helloworld.

You can learn more about creating a new action here

Now, run your project on the server - you'll need to wait a few seconds while the server boots.

Find out more about deploying your project here.

Finally, add a method (note, we are changing the class signature here!) to one of your actions, and add a <h:commandLink /> to your view to call it. Make sure to save both the class and the facelets.

You are restricted to /action/ classes here - you can't hot deploy model classes (entities).

You'll notice that JBoss Tools also provides EL completion in java class files :-)

Seam tells you it has hot deployed the the component.

Refresh the page in your browser, click the button, and the method is called without having to restart your application - now you need another excuse to get a cup of coffee than I had to restart my application! ;-)

Well, that concludes our quick tour of hot deployment with Seam and JBoss Tools. The JBoss Tools docs are a great place to learn more.

back to top