| Recent Entries |
|
19. Jan 2010
|
|
|
09. Oct 2009
|
|
|
18. Sep 2009
|
|
|
30. Jul 2009
|
|
|
08. Jun 2009
|
|
|
19. May 2009
|
|
|
15. Apr 2009
|
|
|
22. Dec 2008
|
|
|
09. Dec 2008
|
|
|
08. Dec 2008
|
|
|
21. Nov 2008
|
|
|
30. Oct 2008
|
|
|
01. Oct 2008
|
|
|
13. Jun 2008
|
|
|
06. May 2008
|
DZone did a short interview with me to go along with the recently released CDI Refcard. It's a bit on the short side, but it's a good concise overview of CDI for developers who might not get what it's all about yet. Enjoy!
It seams that some users of Selenium, a framework Seam uses for testing, have reported anti-virus software detecting a possible trojan in the Selenium JARs. This specific issue is with the hudsuckr.exe windows executable, and has been confirmed to be a false positive.
If your AV software has started complaining about this file in the selenium JARs used with Seam, please contact the AV software provider for updated definition files. If you need more information about the issue, please see the selenium forums.
If the forums are any indication, there's quite a bit of interest in the Seam community for adding Flex interfaces to Seam applications. Members of the seam community have stepped forward and put together some interesting examples of Seam and Flex working together, and that's been good enough for our more ambitious users. But now it's time to make that integration a bit more formal. So with that, we've added the first round of Flex support to Seam.
We're starting with a simple solution for Flex remoting to Seam applications using BlazeDS. Getting going with Seam involves adding jboss-seam-flex.jar to your application, along with the BlazeDS libraries. The BlazeDS MessageBroker, which responds to requests from the Flex client, is instantiated and managed my the Seam Flex filter:
<flex:flex-filter url-pattern="/messagebroker/*" />
With that, your Flex application can talk to your Seam application. Obviously it wouldn't be wise to expose all your Seam components for remote access automatically. Individual components can be enabled for Flex remoting with a single annotation:
@Name("org.jboss.seam.example.flex.foo")
@FlexRemote(name="foo")
public class Foo
{
public void ping() {
System.out.println("ping!");
}
}
This annotation causes Seam to add a named remoting destination on the default channel, which can immediately be accessed as a \<mx:RemoteObject> in a Flex application. The minimal mxml on the client side would be:
<mx:RemoteObject id="remoteFoo" destination="foo" />
This declares a remote objection. The destination name should match the destination name on the @FlexRemote annotation.
<mx:Button id="button" label="Click Me!" click="remoteFoo.ping()" />
This creates a button, that when pressed calls the remote method. Dealing with results and errors requires a little more code than this, but it works the same as any other Flex remote object.
One of the nice things about Flex remoting is how simple it is to pass complex data structures around. For example, suppose you are writing a Flex client to work with the hotel data in the Seam booking application. If your Seam components had the following:
public List<Hotel> queryAllHotels() {
return entityManager.createQuery("select h from Hotel h").getResultList();
}
Then the entire data set could be loaded into the table quite easily.
<mx:RemoteObject id="remoteFoo" destination="foo" fault="fault(event)">
<mx:method name="queryHotels"
result="hotelTable.dataProvider=ResultEvent(event).result" />
</mx:RemoteObject>
<mx:DataGrid id="hotelTable" />
<mx:Button label="Query Hotels" click="remoteFoo.queryHotels()" />
Note here that the remoting is smart enough to figure out the column names and values to display based on the Java objects returned, with no extra coding. It may not be production ready, but it makes for a great demo.
So, if you want to use Flex and Seam together, how can you give this a try? The Flex module is under development in the Seam22 branch. At this point we only support the basic remoting shown here and don't support conversation or business process scoped components, since the correct mapping of conversations to a rich client is not entirely obvious. If you can live with that, or if you'd like to help contribute to the future development of the Flex module, please jump in on the forums and provide some feedback.
The waiting is over. Seam 2.2 is now officially ready!
Seam 2.2.0.GA is largely a API bump, giving us a chance to upgrade Seam to the latest versions of a few libraries that are core to Seam. The largest is a bump to the entire Hibernate family of APIs - core 3.3.1, tools 3.2.4, entitymanager 3.4.0, annotations 3.4.0 and search 3.1.1. We've also moved our Drools support from Drools 4 to Drools 5. If the great new features of Drools 5 weren't enough, we've added a few new features to the drools integration: decision table support, Seam components as consequence exception handlers and Seam components as Drools event listeners.
If you are a JBoss AS user of Seam, we recommend you use JBoss AS 5.1 to make use of the new libraries. Running a Seam 2.2 on JBoss 4.2 may require adding these newer JARs to your application.
We are seeing some problems with hot-redeployment of Seam on JBoss AS 5.1. Take a look at this FAQ for more. We will update the FAQ and this blog once we have the issues fixed.
We've also put in some serious work towards making Seam work better for applications that deploy over multiple WAR files. If that's something you've been having issues with, we definitely recommend that you give Seam 2.2 a try.
As always, please ask questions in the forums and open issues in JIRA for confirmed bugs.
Thanks to the hard work of the entire Seam community, Seam 2.1.2 is now out and ready to go. Although 2.1.2 is largely about bug fixing, we do have a few new features for you guys. .
- We've added the s:token tag, aimed at fighting cross site request forgery attacks against Seam applications.
- We've also added a few sample apps showing how to use Metawidget in a Seam application
- On the charting side, we added the ability to customize generated charts and charting data sets in Seam components, for those cases when the strictly declarative charting tags are insufficient.
- We now have some basic Guice support.
- And finally, we've been marching seam-gen forward with a number of new features like identity management support and Glassfish-ready project generation.
[Download] [Reference Documentation] [JIRA] [Release Notes] [Migration Guide]
| Showing 1 to 5 of 22 blog entries |
|
|