От тази седмицата технологичната секция на този блог претърпява лека промяна. С двама други видни програмисти и архитекти направихме сайта NoSoftSkills. Още не е завършен като външен вид, но за сметка на това започваме да трупаме съдържание. И тъй като езикът на сайта ще е английски и нямам време да превеждам, просто ще препечатвам (т.е. copy-paste-вам) своите неща тук непроменени. Така че вече програмирането на английски, а футбола, екото и другите беге теми – на български.
As far as I can remember, as of JDK 1.4.2 one could declare inside the jar manifest that it contains implementation of certain interfaces and then through an API those implementations could be loaded without the need for the client code to know the exact implementation signature. In Java 6 it was enhanced with the service loader pattern. Now one can declare that certain jar implements certain interface and then a special JDK object is capable of loading the correct implementation.
The author of the above article however has spotted some problems with this approach. Well, again OSGi comes into play to solve those issues. You may read the posting for a detailed information on the service loader problems and how are they solved. Finally the author shares how they combined both approaches in JBoss (apparently JBoss builds on top of OSGi).
The conclusion is also very interesting. You may read there author’s advices about best practices when working with OSGi.
In the above DZone article the author summarizes his thoughts from his previous postings in the architecture area. And his conclusion is Architects Architect Architecture. The article is very interesting in a way that it captures in the above mantra several in-depth articles. Around those, the author tries to elaborate on these three words, which he defines as pillars.
So each of that magical sentence words stays for one pillar of the architecture. Architects are the social pillar – no architecture is good enough without the people who created it. Architecting is the process of creating the thing, including writing diagrams, prototypes and other kind of documents. Architecture is the technology pillar – as far as I see it, it emphasizes on the presence of all the needed artifacts of a good software while doing architecture.
According to the author, one should give attention to all three pillars in order to keep the balance.
IBM developer works site has started a two-part series by J Steven Perry on OpenID. OpenID is a standard on how to use external authentication service for granting access to different people on your web site. A given example is that there are authentication providers (or better said OpenID Providers) like yahoo.com, google.com, which have authentication information about us (received upon our registration on those portals). There are also “explicit” open ID providers. No matter who your provider is, you can use your user name (or ID) and password to request access to a hidden resource.
If you have not well understood my brief introduction, don’t worry. The author of the article explains this in a lot more detail. He elaborates on all the terms in the process of authentication. He then shows some code used for communication between your web site and the authentication provider as well as returning back to your site from provider’s site.
You can download also the source code of the sample application, which above all the openID stuff can teach you how to use Wicket. 🙂
News of the week
Without any doubt the biggest news this week was the Oracle’s webcast, where Larry Ellison and co. disclosed their future plans on what’s going on with Java and all the development around it done so far in Sun.
There were a lot of blog posts summarizing and speculating about this. So I will only do a quick review of the most important statements just for you. There will be a great focus on JavaFX – improve designer tools and put it in all kinds of devices (TVs, phones, etc.). Glassfish will still be the reference implementation of Java EE; WebLogic will be the high end server in this direction. NetBeans will not be killed – it will be the lightweight tool for developing Java EE, Java ME and scripting applications (to me, in all these areas it is better than Eclipse). Hudson will be pushed and will be tightly integrated with JDeveloper (Oracle’s IDE based on Eclipse). Java ME APIs will be merged with Java SE ones. There will be Java One event this year. It will coincide with Oracle’s conference, but anyway, it will keep being oriented towards the Java platform, ecosystem and developers, rather than any particular products offered by the owning company. A good news is that the conference will go traveling to different countries (Brazil, China, Russia and India were mentioned).
The only thing that seems to be de-invested is project Kenai. At least such are the preliminary comments, though you can find some positive news on the its site. Project Kenai is something like sourceforge and the other hosting solutions, but it has better IDE integration, build system and some other great features.
What I like most from Oracle’s statements is that NetBeans is in the game. Having this free IDE will keep the competition on a high level. And the efforts there in the Java EE and ME areas is great. It implements first the coolest features around Java. It also has Matisse and Java FX editor. Pushing Java FX is also a good news. I didn’t hear anything about MySQL, but I’m not sure whether the webcast was at all meant to mention anything in the DB area. I also think that this year Devoxx will be the conference. And the best thing is that Sun’s great developers may now be finally relaxed about the future (however I heard that some of the most significant ones have left for some reason).
Last, but not least, here is a very interesting posting by a fellow Bulgarian blogger. Dimitar Makariev walks us through building an enterprise application using the newest and hottest technologies in the industry.
After downloading the application source code from the Maven repository and after building it, you may see how JSF 2.0 integrates with Spring MVC 3.0 together with Spring Security 3.0. Hibernate Validator 4.0 is also in place. The application can be immediately run on a Google App Engine instance. Of course you can see some other nifty approaches like internationalization, AOP, etc.
The code is perfectly structured and what is best – it is very clean and the most interesting parts are fairly well documented. So it can be a greater starter for a person that has just read some Spring and JSF tutorials, but really needs a working and well explained reference application to get the best practices.
There is also live demo of the application here.