Web Services and XML
Recently a user in GlassFish forum asked about developing JAX-WS web service in an OSGi bundle. Here is a complete sample demonstrating a JAX-WS web service invoking an OSGi service via OSGi service registry. You can download it from here. The diagram below hopefully explains the organisation of the sample:
As the above diagram shows, we have three components, viz:
on Apr 8, 2010
I've extended the declarative hyperlinking module to support the HTTP Link header. It works similarly to the @Link annotation I described earlier except you annotate the response entity class with @LinkHeader (or @LinkHeaders if you need more than one Link header) instead of annotating response entity fields with @Link. Here's a complete example that shows both annotations in action:
on Mar 18, 2010
I've spent some time fleshing out the code in the experimental declarative hyperlinking module I blogged about earlier. In that earlier entry I showed how you could use the new @Link annotation with existing URI templates either explicitly like this:
or by referencing a resource class @Path annotation value like this:
on Mar 17, 2010
One of the areas I'm keen to improve in the next version of JAX-RS is link creation. JAX-RS already offers UriBuilder but I think an annotation driven approach could save a lot of repetitive coding.
I've been experimenting with a couple of annotations that I think would be useful and I just checked in an experimental extension that partially implements what I have in mind. Suppose you have a...
on Mar 10, 2010
I will wrap up my experience at eclipsecon. This was my first time at eclipsecon. Folks who had been here earlier told me that this year there was a lot of topics around eclipse runtime projects – so the focus has shifted from tools to runtime. Overall I liked eclipsecon.
My topic, OSGi & Java EE in GlassFish, was also of the same type. The slides of my talk are...
on Mar 30, 2010
As promised earlier, I am going to quickly go over the key points I gathered from the talks I attended at eclipsecon and I also want to brief you about my topic at the conference. Because of a migrane attack earlier today which I firmly believe was caused by severe jat lag, I could not attend as much on day #2 as I had earlier decided to, and that's the very reason why I will keep...
on Mar 24, 2010
Have you ever got into the situation where you feel like you need to stretch the limits of HTTP form processing?
Sometimes when developing complex web applications you end up with a form that has just too many features on it. This situation is particularly common when the application uses Ajax forms, as these forms often end up accumulating an enormous amount of funcionality - different actions...
on Mar 30, 2010
Have you got magnolia-4.3? Setup multiple sites? All right, you are all done. The only thing left is to observe the load on the server and how many requests you can serve. You might have noticed that after activating the content, load on the public is bit higher even though there is no increase in traffic.
Why? Simply because after activating the piece of content, cache on the public...
on Mar 26, 2010
Last bunch of the entries have been all about the code. Today let's try something different. Partly because at the time of writing I'm just 34 thousand feet above Atlantic and really don't feel like coding anything, but partly also because i have been thinking about the problem I'm going to describe for while already.
I'm sure most of you have seen similar issue in the past as well or are...
on Mar 20, 2010
I wrote about Magnolia cache few times already since it have been re-implemented for Magnolia 3.6. And it seems like with Sprint 4 of Magnolia 4.3 it came back to bite me.
There was a bunch of tickets related to various aspects of the cache. Most of it was related to the fact that the default cache key (only URI) was not enough for many installations which were...
on Mar 11, 2010
Last time we looked at writing command and shortening the URLs using simple TinyURL API. This time, lets try to take this one step furter and generate URLs that are mobile-users friendly, i.e. URLs that can be easily recognized and processed by various mobile devices. Such are urls in QCode or DataMatrix scan codes.
I'm sure almost everybody have seen those somewhere already, be it on printouts...
on Mar 7, 2010
At the very beginning of my full time programmer career, when I worked at Silicon Graphics, Larry Wall and Randal Schwartz gave a brown bag session about their now legendary camel book. Naturally, I had them sign my copy, the front page of which I proudly display at left. Notice the “There’s More Than One Way To Do It!” stamp at the top. For better or worse, Perl is famous...
on Mar 3, 2010
During implementation of the NTLM authentication into our application, I wanted to achieve failover to standard login page (html form) if NTLM authentication fail.
on Mar 25, 2010
Spring framework is one of the biggest and the most comprehensive frameworks Java Community can utilize to cover most of the end to end requirement of a software system when it come to implementation.
Spring Security and Spring Remoting are two important parts of the framework which covers security in a descriptive way and let us have remote invocation of a spring bean methods using a local...
on Mar 18, 2010
Meeting with OSGi Experts
Although I had interacted with a number of active members of OSGi  expert group, last week I had the opportunity to meet some of these experts at an OSGi Enterprise Expert Group face2face event held at LinkedIn's Mountain View office. This is also the first time I met Richard S. Hall, the Felix guy (don't confuse with a very active Felix ...
on Mar 22, 2010
I woke up the other day and realized its 2010. When I was a kid, year 2000 was far, far away (well not quite, but hey when you are 7 years old 13 years is a long time).
In 2001 we were supposed to be colonyzing the moon. In 2010, Jupiter would be within our reach. And there are reliable reports indicating that 9 years from now flying cars and aritificial life forms...
on Mar 1, 2010
My last blog
entry about JSR-314-OPEN@JCP.ORG was over a year ago. This list is the official Expert Group (EG) mailing list on which the development of the JSR-314 specification (JSF 2.0) is discussed. The
information on how to subscribe/unsubscribe to this list changed in June
2010, but I haven't updated any existing information or blogged any new
information about it. This is the overdue...
on Mar 19, 2010
A big part of my current company work is related to managing infrastructure hosted in cloud computing environments. I have recently released an open source project (Rain Toolkit) to help ease the management of Amazon EC2 objects. It is a set of command-line tools for performing day-to-day administration tasks.
Since Rain Toolkit deals with the management of EC2 resources, it seemed only...
on Mar 16, 2010
There are several ways to enable user authentication for web based applications, like .htaccess files, plain tekst files, databases, LDAP, etc. They all have their pros and cons. In case a central, flexible solution is needed, either a database or LDAP solution can be used.
I chose for an LDAP solution since it can be reused by many web and application servers and the applications that run on...
on Mar 15, 2010
Install OCCAS 4.0 under directory /opt/oracle (here in after referred to as OCCAS_HOME), and configure a domain by running OCCAS_HOME/wlserver_10.3/common/bin/config.sh (with all default options). With that, you will have a domain created at OCCAS_HOME/user_projects/domains/base_domain
Installing CAFE on OCCAS
Get the latest CAFE promoted build from here. Unzip the downloaded...
on Feb 26, 2010