Help

Entries Added
Inactive Bloggers
03. Feb 2012, 01:01 CET, by Shane Bryzak

I recently had the pleasure of attending Red Hat's first JUDCon event in APAC, JUDCon India. The conference was hosted by Saltmarch Media in the Nimhans Convention Centre in Bangalore, and ran for 2 days. The sessions were organized into 3 separate tracks:

  • JBoss Application Server 7
  • OpenShift and Cloud
  • Rules, Workflow , SOA and EAI

It was a great opportunity to be able to interact with so many other JBoss developers and users, and with an attendance of around 800 people it was the biggest JUDCon ever. There was a high level of energy in the atmosphere, and most sessions were packed full of people, some with standing room only. It was also great to see so much interest in JBoss technologies - the sessions I attended (and presented) all received a substantial number of questions at their conclusion, sometimes even running into the next session. On the first evening of the conference we held an open Q&A session, allowing the audience to ask whichever questions they liked to a panel of JBoss project leads and experts.

All in all, it was an awesome event. If you are interested in attending a JUDCon, then don't worry, you'll get another chance! The next one will be held in Boston - If you are able to attend, I highly recommend you do as you won't get a better chance to network with the core developers at JBoss.

We'll also be making the videos of the sessions available online, so keep an eye out for them soon!

31. Jan 2012, 18:55 CET, by Jesper Pedersen

I'm happy to announce the 5th developer snapshot of the IronJacamar 1.1 container, which implements the Java EE Connector Architecture 1.6 specification.

Full release notes are here.

Bugs, what bugs ?

This release mainly contains bug fixes that we have found during our testing with IronJacamar inside JBoss Application Server 7.1.

The fixes has of course been included in the upcoming JBoss Application Server 7.1.0.Final release.

Spring cleaning

We have begone our spring cleaning of the project to provide the foundation of the upcoming features of the 1.1 series, which we should start to see really soon now.

If you look at our code repository you should at least get one hint ;)

But more on that later...

JBoss Application Server 7.1.0.CR1b

The JBoss Application Server 7.1.0.CR1b release is out featuring IronJacamar 1.0.7.Final, so give that release a good run and report any issues that you may find. Be sure to check the forums for possible answers first though.

We have fixed additional issues post that release, so feel free to try a nightly snapshot too.

The Road Ahead

We are pushing to get all the remaining JCA and datasources issues fixed before JBoss AS goes Final, so your help is highly valued one way or the other.

For Those About to Rock, We Salute You !

[WebSite] [Download] [Documentation] [JIRA] [Forum]

I’m very happy to announce the creation of AeroGear, the newest project at JBoss! The AeroGear project is all about making mobile development of all kinds as easy as possible with JBoss! This project is focused on three things; education, innovation, and community!

Education

We’ll be covering all aspects of mobile application development! This includes the latest HTML5 technologies used in the mobile web, and in hybrid application frameworks like the Apache Cordova. All the way to JBoss AS based services, mobile RichFaces/JSF2, tooling, and native application support, and prototyping.

To wet your whistle we’ve put together a 5 minute video to show you how easy it is to get from zero to a mobile web application with cloud hosted services on JBoss.

Just in case you missed it at the end, the link to the live hosted demo on Openshift is at http://poh5-aerogear.rhcloud.com.

Assuming that got your interests up, we go a lot deeper. Our step by step guide on building this HTML5 mobile application yourself, including where to fork it on github is available right on our wiki page. There are also guides detailing the specifics on single page applications, HTML5 updates, CSS3, jQuery Mobile, RESTful endpoints, and more here.

Innovation

Our initial focus is on providing excellent examples, tutorials, and techniques for enterprise mobile developers. These will cover mobile web, hybrid, and native applications approaches for working with JBoss and other 3rd party projects. For all you polyglot lovers out there, we’re not limiting ourselves just to Java either, we’ll have pure HTML, and JavaScript demos, TorqueBox and Ruby will make an appearance, and we’ll be looking at other approaches as well.

However, at the same time we'll be developing new mobile[native, hybrid, and web] based frameworks for solving real concerns of enterprise developers. The most immediate of these include offline data synchronization, security, container integration, and support across a broad range of devices.

We’re currently designing and discussing some of these solutions, and want your input! Head over to the AeroGear Developer space for more. We plan on moving pretty fast here and hope to have some real world prototypes up and running soon.

Community

Whether you are a long time Java EE developer looking to migrate existing applications to mobile clients, or client developers looking for a powerful back-end for your applications this is where you can learn more about both, and become part of the community building it!!

We’ve got team meetings on IRC at #aerogear @ irc.freenode.net, user, and developer forums, all of our code is up on github for sharing, and we’re always looking for motivated developers to step up and join the team! We’ll be speaking at up coming conferences and JUGs around the world, as well as having regular blogs, webinars, and screencasts! Watch this space and our forums for the latest.

Success comes with a strong community, and everyone getting involved however they can! Bring your questions, and opinions, and let's hear from you!!

[AeroGear Project] [GitHub] [Twitter] [User Forums] [Dev Forums]

It has gone some time since I announced the last release of the Hibernate JPA Metamodel Generator. It is time to announce the release of version 1.2.0.CR1. Just as a reminder, JPA Metamodel Generator is an annotation processor which generates the canonical metamodel classes needed for using the strongly typed JPA 2 Criteria queries.

This new release is a maintenance release with a total of 20 enhancements and bug fixes. Most of these issues have been reported by users and many came even with a patch. Thanks!

METAGEN-53, METAGEN-73 and METAGEN-79 are worth mentioning explicitly. METAGEN-53 removes the dependencies to the JPA API. This means that the annotation processor is now a standalone jar without any further dependencies which makes integration of the processor into the build process and into the IDE even easier. METAGEN-73 and METAGEN-79 are about the @Generated annotation. In earlier version you had to explicitly specify the addGeneratedAnnotation option to add the annotation. Now @Generated is added by default and you have to explicitly disable it in case you want Java 5 compliant source files. Also the parameter values of the annotation have changed:

@Generated(value = "org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor", date = "2012-01-25T22:22:54.850+0100")
The value is now the fully qualified classname of the annotation processor as suggested by the documentation of @Generated and you can also add the generation date by providing the processor option addGenerationDate (per default the date is not added).

As usual, you can download the release from the JBoss Maven repo or from SourceForge.

To report any issues use the Hibernate Jira project METAGEN.

Enjoy!

25. Jan 2012, 00:19 CET, by Steve Ebersole

One of the new features in 4.1 will be the addition of an actual API for loading entities by natural id. Yes previous versions had the ability to do natural id loading leveraging criteria queries, but that approach was very limiting. The new API will allow caching at both the Session and SessionFactory level in addition to providing a consistent API. The new approach has been made available for identifier based loading as well, again for consistency.

New methods have been added to the Session contract as a starting point (see source or javadoc for additional discussion):

public IdentifierLoadAccess byId(String entityName);
public IdentifierLoadAccess byId(Class entityClass);

public NaturalIdLoadAccess byNaturalId(String entityName);
public NaturalIdLoadAccess byNaturalId(Class entityClass);

public SimpleNaturalIdLoadAccess bySimpleNaturalId(String entityName);
public SimpleNaturalIdLoadAccess bySimpleNaturalId(Class entityClass);

All of the load access delegates have methods for getting an entity reference (getReference) and loading an entity (load). The distinction is similar to the older get and load methods on Session; getReference on load access delegates equate to Session.load and load on load access delegates equate to Session.get

public interface IdentifierLoadAccess {
    public IdentifierLoadAccess with(LockOptions lockOptions);
    public Object getReference(Serializable id);
    public Object load(Serializable id);
}

public interface NaturalIdLoadAccess {
    public NaturalIdLoadAccess with(LockOptions lockOptions);
    public NaturalIdLoadAccess using(String attributeName, Object value);
    public Object getReference();
    public Object load();
}

public interface SimpleNaturalIdLoadAccess {
    public SimpleNaturalIdLoadAccess with(LockOptions lockOptions);
    public Object getReference(Object naturalIdValue);
    public Object load(Object naturalIdValue);
}

So let's say we have an entity defining a natural id:

@Entity
@Table(name="T_USER")
public class User {
    @Id
    private Long id;
    @NaturalId
    private String username;
    ...
}

we can load instances of that class by natural id as follows:

session.byNaturalId( User.class ).using( "username", "steve" ).load();

That actually makes sure we get back an initialized instance, just like Session.get does. If we just want a possibly uninitialized reference we would use this instead:

session.byNaturalId( User.class ).using( "username", "steve" ).getReference();

Since the natural id here is simple (just a single attribute) we can make this even easier:

session.bySimpleNaturalId( User.class ).load( "steve" );
Showing 1 to 5 of 1014 blog entries