Turbo Eclipse
These days I started a new Eclipse Project: Turbo Eclipse
The idea behind turbo eclipse is to provide a small and easy to use eclipse distribution for maven developers based on Eclipse Ganymede.
The goals of Turbo Eclipse are
- minimum amount of Plugins
- Full Maven support using Maven IDE Plugin
- Full Subversion support using subclipse
- Facelets Support using the Eclipse Facelets Project
The Project is hosted at dev.java.net:
https://turbo-eclipse.dev.java.net/
Feedback and Tips are welcome. If you would like to join the project contact me or request a project role on dev.java.net
Posted at 11:19AM Aug 23, 2008
Posted by: Ralph
Category: General
Eclipse Ganymede - Maven2 - Facelets
I invested a lot of hours to find out how to configure Eclipse Ganymede in a way where it works well in a JEE Facelets Project. Currently development of Facelets Web apps is not supported by the Eclipse IDE and WebToolPlattform (WTP). I am not sure but maybe the Eclipse WTP Team did not like Facelets developers. It is not easy to get things like code completion for xhtml files to run out of the box.
So this is my story how I configure a Eclipse Workspace to work with a JEE facelets web project.
I am using Eclipse Ganymede, Glassfish V2 and Maven2. These are the steps I go through:
1.) Install the Eclipse Facelets Plugin
The Eclipse Facelets Plugin is the key to develop xhtml files in eclipse. But it is brand new and - in the moment - not available trough the eclipse update manager.
The Plugin allows you to work in xhtml files like in JSP files. You got code completion and also some nice template wizzards. This plugin is very useful if you want to develop a JEE Web Facelets Application.
If you are interessted in the project - this is the project homepage:
http://wiki.eclipse.org/JSF_Facelets_Tools_Project
And in this webinar you can see the cool features of the plugin:
http://live.eclipse.org/node/225
But in the moment it is very difficult to get the plugin. If you are not familiar with plugin development, checkout plugin source code from eclipse, compile and export plugins it become very hard.... :-(
So I download the sources and compiled the plugin code with the eclipse IDE. If you don't want to go this way you can download the plugin from here.
Extract the file and copy the jars into your /plugin folder of your Eclipse Ganymede. Next restart Eclipse!
2.) Setup Workplace for JSF Support
Now you need to do some configurations to support Eclipse with the necessary Server Environment and JSF Libraries. This is not a project specific configuration but a workspace specific! So if you start in a new Workspace you need to repeat these steps.
First add your Glassfish Server to the Server list. Switch to the Server View and add a Glassfish V2 Server. You need this server environment (target runtime) later in your web project.
Next stp is to add the JSF Implementation form Glassfish to your Web JSF Configuration. This is explained also by Cay Horstmann's Blog:
http://weblogs.java.net/blog/cayhorstmann/archive/2007/07/jsf_support_in.html
So open the Eclipse preferences dialog and go to Web->JavaServer Faces->Libraries.
Create a new JSF library and name the library "GlassfishJSF-impl". Add only the jsf-impl.jar file. This file is located in the /glassfish/lib folder from your glassfish installation.
Now Restart you Eclipse! (I beleve this is a important step).
3.) Setup your Web Project
Now this is the most critical part. And I am not sure if every step is really necessary but it seems to work for me.
So open your Web Project (or create a new one) and open the project properties. Go to "Project Facets".
Here you can now add the "JSF 1.2" and also the new "Facelets 1.0" support:
You will see a link "Further configuration required". Click on it and configure the dialog like this using the server configuration from Glassfish:

You will not see this configuration page again after you close the property dialog! So be carefull. The only way is to disable the Faclets and JSP Support - apply the settings - and re enable the settings again! (It seems to me that this is a plan from the WTP Developers to craze JEE Developers)
Next check the "Java Build Path" settings of your Web Project. You need to add two libraries to your project.
The Server Runtime Library of Glassfish (automatical created during adding the Glassish Server to the Server list before)
Click "Add Library..." and select "Server Runtime"

Choose the Glassfish Server from the Server Runime list. Click finish.
Next you need to add the JSF Library created before. So click again "Add library..." and add a JSF Library and select you GlassfishJSF-Impl created before:

Finaly your project library settings should look like this (Maven Dependencies is only visible if you work in Maven2 project as I do)

Next check the Order of the Libs! This seems also to be very important:

Make sure that the Maven Entry is at the end of the list!
Now restart your Eclipse! If you are lucky you can now edit xhtml files with code completion support :-)
If it did not work...
But! When you work with Maven2 Projects and your xhtml files did not support code completion you need to check some things. I did not know while the project settings will not work after first configuration. I followed these additional steps:
1.) update you maven configuration of your web project
->maven->update project configuration
2.) check the order of the libraries
3.) check if you have added the a target runtime for glassfish and also the glassfish JSF-Impl. You can select the glassfish Server as your project target.
3.) Restart Eclipse and wait as long as all background jobs are finished before you test you xhtml editor.
So I hope this will helpe someones - every comments are wellcome!
Posted at 11:08AM Aug 16, 2008
Posted by: Ralph
Category: General
Eclipse Ganymede - UML2 Tools
Eclipse Ganymede supports the "UML2 Tools" which allows you to create UML diagrams. The Plugins are a contribution form Borland to the Eclipse community and they are very nice.
A good article about the UML2 Tools can be found here:
http://www.vogella.de/articles/UML/article.html
A problem for me was the installation of these plugins. If you follow the instructions :
http://wiki.eclipse.org/MDT-UML2Tools#How_can_I_start_with_UML2Tools.3F
you maybe can not see the new diagram types in your New-File wizzard.

This happens to me. The problem is that the new Eclipse Update Manager dose not show you missing plugins after you select the UML2 Tools from the Update Manager Category
"Ganymede -> Models and Model Development -> UML2 Tools"
As some people suggest it is not necessary to select the hole "Models and Model Development" Category.
In my case I get the UML2 run in Eclipse Ganymede after I added the following plugins form the section "Models and Model Development" :
- EMF - Eclipse Modeling Framework Runtime and Tools
- Graphical Modeling Framework Runtime
- UML2 Diagram Search Features
- UML2 Search
- UML2Tools
After adding these plugins UML2 Tools works fine!
I did not understand the new Update Manager in Eclipse Ganymede. It seems that the Updatemanager exames plugin dependencies but maybe this will not work in all situations.
Posted at 06:42AM Jul 25, 2008
Posted by: Ralph
Category: General
Eclipse Ganymede - Plugin Update Sites
Today I had a very hard campaign against Eclipse trying to provide a new Version of the Imixs IX Modeler Plugin on my Update site in the internet.
As I am using new Eclipse Ganymede Version 3.4 I was unable to update my Plugin after I deployed it on my UpdateSite. I did everything as before using Eclipse Ganymede. I update my Plugins and Features and Build all the Features into my Update Site Project. Everything looks ok but after I uploaded the Plugin Site into my WebServer location, Eclipse Ganymede itself refused to install the new Plugin Version!. After a very long period of frustrating search for the error I found out what have changed:
Eclipse Ganymede Plugin IDE generates two new files inside the UpdateSite Project. These Files are "content.xml" and "atrifactes.xml".
I did not know what this files are good for. BUT !!NEVER!! copy these files into your Website location used by the UpdateManager. Eclipse 3.3 has no problem with these files. But Eclipse 3.4 makes a lot of problems when these files are provided by the update site. New features will possibly not be installed.
After I removed the files from the UpdateSite location the new IX Modeler Plugin installed perfect on my Ganymede.
Posted at 11:45PM Jul 19, 2008
Posted by: Ralph
Category: General
Using Tiny MCE with JSF and Glassfish
If you build a web application using the JSF Framework you can use different widgets using the MyFaces / Tomahawk Components. One of these widgets often used is the t:inputHtml Tag which supports a WYSIWYG Editor. The Editor included in the Tomahawk library is buid from the Kupu Editor. This editor is nice. But if you want to customize this editor you will not found much help. Another WYSIWYG Editor often taken in Web Applications is the TinyMCE Editor. This editor is documented well and you will find a lot of examples how to customize this edior for your web application.
Today I found the following link which explains how to integrate the TinyMCE Editor into a MyFaces application: http://wiki.apache.org/myfaces/WYSIWYG_Editor
I integrated the editor today in my glassfish and replaced my kupu widget with TinyMCE. It was realy simple:
- copy the /tiny_mce directory into the Glassfish root
..[glassfish]/domains/domain1/docroot/ - replace the t:inputHtml Tag inside your jsf page with the following code example:
<script src="/tiny_mce/tiny_mce.js" type="text/javascript"></script>
<script type="text/javascript">
tinyMCE.init({
mode : "textareas",
theme : "advanced",
plugins : "fullscreen",
theme_advanced_buttons1 : "fullscreen,undo,redo,cleanup,|,formatselect,bold,italic,underline,|,justifyleft,justifycenter,justifyright,justifyfull,bullist,numlist,outdent,indent,|,link,unlink,|,forecolor",
theme_advanced_buttons2 : "",
theme_advanced_buttons3 : "",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_statusbar_location : "none",
extended_valid_elements : "a[name|href|target|title|onclick],img[class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name],hr[class|width|size|noshade],font[face|size|color|style],span[class|align|style]",
width : "100%",
height : "260"
});
</script>
<h:inputTextarea id="description_id"
value="#{workitemBean.workitem['htmldetail'][0]}"/>
The result is a nice Editor component which can be customized in a lot of ways.
Posted at 09:02PM Jul 13, 2008
Posted by: Ralph
Category: General
Eclipse Ganymede - Maven & SVN
Hi,
after I installed new Eclipse Ganymede with additional Maven support I started to clean up my Maven Project in my Subversion repository. My fault was that I also versioned eclipse configuration files like the .settings folder or the .project files.
So ervery time I checked out my Maven (Multi-Module) Project I have lot of errors inside the Project as all configurations need to be setup new or justified. Also wen my colleagues checked out the project or checked in there changes our elcipse configuration files become more and more terrible. The best way is to add all these eclipse stuff to the svn:ignore definition.
If you did not this in the past and you stell have checked in your eclipse config files follow these stepps to clear your Eclipse Project.
- make a backup of your current workspace (if something goes wrong ;-)
- delete the concerned projects (also delete all files from filesystem)
- change to your Subversion Perspective and browse into the trunk of your project
- delete all of the following files and folders inside the repository using the delete command
- .project
- .classpath
- .settings/
- bin/
- checkout the project again into your workspace
- synchronize the project with your repository - now subversion propose to add the files deleted before again into the repository. So for each of these files and folders open the context menu command : add to svn:ignore
After that the project should be clean and no eclipse project configuration will be stored into the repository.
Eclipse Maven2 Plugin
When you check out a maven project with the SVN Command "Check out as Maven Project" (you need the additional subversive plugin for maven in Ganymede!) you will see a lot of errors inside the projects.
I am not sure why this is but maybe the Maven 2 Suversive plugin is still not perfect. But you can correct the projects in you Elipse Ganymede IDE very easy.
After you checked out the Maven Projects (also Multi-Modul projects) explore each Project and remove first the generated /bin folder as maven generates class files into the /target folder.
Next run the context menu command "Maven->Update Project configuration"
For me this helps me to get a clean and working project workspace :-)
ix-workflow.dev.java.net
Our actual imixs ix workflow source code projects are still synchronized with the eclipse configuration files. I am sorry for that and we will correct these as soon as possible.
Posted at 05:11PM Jul 10, 2008
Posted by: Ralph
Category: General
Eclipse Ganymede - Maven
Today I installed new Eclipse version Ganymede. The Update Center have changed and I need Subversion Team support and also maven2 for my projects.
So these are the steps I go through plugin installation:
Subversion Team Support
Eclipse supports now subversion integration ”subversive”. You can install this additional plugins using the update manager

Switch to the tab "Available Software" and expand the "Ganymede" section. There you will find the "SVN Team Provider Plugin" under "Collaboration Tools"
http://blog.punchbarrel.com/2008/06/30/using-the-new-subversion-integration-in-eclipse-ganymede/
So I installed the SVNKit 1.1.7 - this works perfect. I don't think that this step is necessary under Windows.
Maven2 Plugin
The next part for me was to add Maven2 Plugin support into my Eclipse.
General Informations about this Plugin can be read here:
http://m2eclipse.codehaus.org/
As the Maven Plugin Repository is not included in the Update Manager per default you need to add the Update Site manually.
So in the Update Manager switch to the tab "Available Software" and add the following Update Site to the Update Manager using the function "Add site"
http://m2eclipse.sonatype.org/update/

You can now select the following Features from this Update Site:
- Maven Integration
- Maven Integration for Eclipse
- Maven POM XML Edtior
- Maven: The Definitive Guid book
- Maven Project Configurators
- Maven Integration for WTP
- Optional Components
- Nexus index for Centra Maven repository
After that you need a additional plugin to checkout Maven Projects from a Subversion Repository (using the context menu "check out as maven project"). These Subversive Integration is not included in the sonatype upates site. But it can be taken from the following update URL:
http://www.polarion.org/projects/subversive/download/integrations/update-site/
Again you need to add the Update Site manually.
After that you can add the Plugin
- "Subversive Integration for the M2Eclipse Project"
to your eclipse IDE.
After all my new Eclipse Ganymede seems to be very cool. Maven and Subversion works as perfect.
It's a pity that Eclipse Ganymede dos not integrate the Maven Plugin more easily....
Posted at 12:53PM Jul 09, 2008
Posted by: Ralph
Category: General
using JNDI MailSession in Glassfish
Today I played around a long time figuring out how to lookup a Java Mail Session out of a EJB from Glassfish. This is the link which finaly helps me through:
http://forums.java.net/jive/thread.jspa?messageID=260133𿠥
before I read a lot of pages like:
https://glassfish.dev.java.net/javaee5/docs/DG/beaow.html
http://forums.java.net/jive/thread.jspa?messageID=265263񀰯
The problem for me was the lookup like thisone:
Context ic = new InitialContext();
Session session = (Session)ic.lookup("java:comp/env/mail/testSession");
To avoid a :
javax.naming.NameNotFoundException: No object bound to name java:comp/env/mail/testSession
it is importend to add the right name mapping to the ejb-jar.xml and also to the sun-ejb-jar.xml
to the ejb-jar.xml add the following code to that EJB which makes the lookup:
<resource-ref>
<res-ref-name>mail/testSession</res-ref-name>
<res-type>javax.mail.Session</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
And to the sun-ejb-jar.xml file add the following to the same EJB
<resource-ref>
<res-ref-name>mail/testSession</res-ref-name>
<jndi-name>testSession</jndi-name>
</resource-ref>
Notice that this is only necessary to perform a jndi lookup. I think you can save oneself this using dependency injection using annotations (@ressource)
Posted at 12:10PM Jul 06, 2008
Posted by: Ralph
Category: General
t:inputFileUpload UploadedFile returns null
Today I was faced with a problem using the t:inputFileUpload control from MyFaces/Tomahawk.
I implemented a Backing Bean with a UploadedFile Property and include the component into my existing jsf page like this:
<t:inputFileUpload id="myUploadedFile" storage="file" immediate="false"
value="#{workitemLobBean.uploadedFile}">
</t:inputFileUpload>
The problem was that in my backing bean the uploadedFile property never was set. So it was null and I was unable to get the selected file out of my form :-(
After a long time searching I found the following solution:
Do not forget to add the "enctype" attribute to your Form and set this attribute to "multipart/form-data". So your h:form tag should finally look something like this:
<h:form enctype="multipart/form-data">
Posted at 09:09PM Jul 01, 2008
Posted by: Ralph
Category: General
Maven: How to exclude EJB jars from a War Module
It happened to me that when I build my multi-module maven project and deploy it to my glassfish server I receifed server errors like this:
[#|2008-06-28T23:26:31.815+0200|SEVERE|sun-appserver9.1|javax.enterprise.system.tools.deployment|
_ThreadID=14;
_ThreadName=Timer-7;_RequestID=dffabadc-2951-492d-9b98-88ada568fd33;
|Annotations processing failed for
/opt/glassfish/domains/domain1/applications/j2ee-apps/org.imixs.shareyourwork.ear-0.7.3/
org.imixs.shareyourwork.ejb-0.7.3_jar|#]
[#|2008-06-28T23:26:32.218+0200|SEVERE|sun-appserver9.1|javax.enterprise.system.tools.deployment|
_ThreadID=14;_ThreadName=Timer-7;_RequestID=dffabadc-2951-492d-9b98-88ada568fd33;
|Class org.imixs.workflow.jee.ejb.WorkflowServiceManagerImplementation is annotated with
@WebService and @Stateless but is packaged in a WAR. If it is supposed to be an EJB endpoint,
it should be packaged in a JAR; Deployment will continue assuming this class to be just a POJO
used by other classes in the WAR being deployed symbol: javax.jws.WebService
This happens because the EJB modules which are included using a dependency tag in my war module are also added into the WEB-INF/lib directory.
And this is not allowed or necessary because the EJB jars are available in the EAR / EJB modul.
So the solution to avoid this error message was to add the folling tag to the dependency tag of the war module:
<scope>provided</scope>
This means that the JARs of this dependency are not included into the /lib folder of the war module. So the deployment process will proceed without error messages.
Posted at 09:51PM Jun 28, 2008
Posted by: Ralph
Category: Maven
Eclipse - JavaServer Faces - Configuration
In some cases it can happen that your Eclipse Web Project did not support code completion in a JSP or JSF page.
This happens to me in a JSF Project with MyFaces and Facelets Support. I build up the project using Maven so the project build was sucessfull and the project works well on my server but typing code with Eclipse JSP Editor war extreamly annoying as Eclipse did not support my with code completion.
The reason was that the project facets for my project where broken and also MyFaces Support was not added to Eclipse correctly. Indeed it is necessary to configure the myfaces support in Eclipse manually and I am not sure if I was not intelligent enough or the Eclipse WTP is not so easy to use as I should be.
So follow these steps if you run into a similar problem :
- create a MyFaces Folder localy on your computer (e.g: /home/user/myfaces)
- move the MyFaces libs and tomahawk libs into a subfolder lib/ (e.g:/home/user/myfaces/lib)
- commons-beanutils-x.x.x.jar
- commons-codec-x.x.x.jar
- commons-collections-x.x.jar
- commons-digester-x.x.jar
- commons-discovery-x.x.jar
- commons-logging-x.x.x.jar
- myfaces-api-x.x.x.jar
- myfaces-impl-x.x.x.jar
- tomahawk-x.x.x.jar
- move the tld Files for myfaces and tomahawk in a /tlds subfolder (e.g./home/user/myfaces/tlds)
- myfaces-impl-x.x.x-tlddoc.jar
- tomahawk-x.x.x-tlddoc.jar
- Edit the JavaServer Faces LIbraries
- open Window->Preferences
- go to Web and XML > JavaServer Faces Tools > Libraries
- add a new library "MyFaces" with all the jar files moved before to your myfaces/lib folder
- add a new library "MyFacesTLD" with all the jar files moved before to myfaces/tlds folder
- Next edit the Project Facets of your Web Project (Select your project and open >Project Properties > click modify )
- if there is allready available a JavaServerFaces Support - remove JavaServerFaces 1.2
- add JavaServerFaces 1.2. support and press "next" button
- select option "Sever supplied JSF Implemenation" and add the component libraries configured before in the right part of the selection. This is the importend part! And I did not found this dialog after clicking on "finish"
After this stepps code competion works for my JSF Project. Notice that I work with maven and Maven integration in Eclipse is currently not the best. But maybe this instruction will help you...
Posted at 11:29AM Jun 22, 2008
Posted by: Ralph
Category: General
Maven EAR Artefacts - web modul missing
I build a new Maven multi modul project with EJB, WEB and EAR Artifacts.
I was sure that I have added all necessary dependencies to my pom.xml files. But each time I try to install my EAR Artefact I receifed an error like this one:
....
Error message: Missing:
----------
1) org.imixs.myproject.web:jar:1.0.0
----------
1 required artifact is missing.
.....
The reason was that maven searches per default for a .jar artifact even if you try to add a WEB Modul!
So the solution was to change the dependency in my pom.xml of my ear artifact. I just added the <type> tag to the dependency with the value "war".
Also make sure that you add the type "ejb" to each ejb artifact you add to your ear artifact!
Now maven build succeeds :-)
Posted at 12:21PM Jun 21, 2008
Posted by: Ralph
Category: General
Form based authentification using Facelets
Yesterday I found out how to configure my JEE Web Application with form-based login. In general it is not difficulty to secure a JEE Web Application with form based login. This is explained on lot of websites like this one: http://www.developinjava.com/readarticle.php?article_id=6
The problem I stumbled into was that my Web Application uses the facelets framework. So I have a lot of general layout parts like css and images which I wanted to use also in my Login Form and also some help pages which should be accessible without authentification.
To divide the web application into a restricted and a public area (where no authentification is needed) is easy:
in the web.xml you can specify the secured JSP pages separated in a folder e.g:
<security-constraint>
<web-resource-collection>
<web-resource-name>restricted</web-resource-name>
<url-pattern>/faces/pages/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>org.imixs.ACCESSLEVEL.AUTHORACCESS</role-name>
</auth-constraint>
</security-constraint>
The Login.xhtml which I placed outside my secured /pages folder makes use of facelets technology and looks as followed:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:z="http://www.qualcomm.com/jsf/core"
xmlns:c="http://java.sun.com/jstl/core"
xmlns:fn="http://java.sun.com/jsp/jstl/functions">
<ui:composition template="/layout/layout.xhtml">
<ui:define name="content">
<form
method="post"
action="#{facesContext.externalContext.requestContextPath}/j_security_check">
<table>
<tr>
<td>User name:</td>
<td><input type="text" name="j_username" /></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="j_password" /></td>
</tr>
<tr>
<td><input type="submit" value="Login" /></td>
</tr>
</table>
</form>
</ui:define>
</ui:composition>
</html>
/layout/layout.xhtml is accessible without authentification as this page is not placed inside my secured /pages/ folder. So the login.xhtml page looks perfect styled!
The real problem was how to jump into a secured page? I first have had a navigation.jsp page with a lot of jsf command links like:
<h:commandLink actionListener="#{workitemListBean.doRefresh}"
action="show_workitemlist">
My Navigation rule for "show_workitemlist" points to a secured page in the /pages folder.
faces-config.xml:
......
<navigation-case>
<from-outcome>show_worklist</from-outcome>
<to-view-id>/pages/workflow/worklist.jsp</to-view-id>
</navigation-case>
But these commandLinks will not work because the JSF Framework will invoke all backing beans which are connected to the target page behind the navigation rule "show_workitmelist". And all my backing beans invoke a lot of EJBs which are secured using declarative JEE security.
So my command link did not show up the login.xhtml form as expected but throws a lot of "permission denied" exceptions :-(
The trick is to forward the anonymous user direct to the faces/ URL to access the secured page without JSF Navigation Rules. So I replaced my <h:commandLink> with a simple anchor tag:
<a href="#{facesContext.externalContext.requestContextPath}/faces/pages/workflow/worklist.jsp">
<h:outputText value="#{global.login}" /></a>
So the result of these anchor tag is that the non authenticated user requests a secured page from my /faces/pages URL Pattern as defined in the web.xml.
The webContainer will invoke my Login Page, authenticate the user and after a successful login the JSF Framework starts up and builds all the necessary things to view the page with all backing-beans and EJBs. As the user is now authenticated everything works perfect as JSF has all the principal stuff and user informations to invoke my secured EJBs!
So: do not use commandLinks to login an anonymous user in a JSF Application inside a Facelets layouted login page.
Posted at 09:19PM Jun 18, 2008
Posted by: Ralph
Category: General
Wellcome
Hi,
in this blog I will post my personal technical findings in developing java programs. Some things will be helpfully for other folks some things will not. If you find something wrong or you know better solutions do not hesitate to comment here.
I am a member of the Imixs IX Open Source Workflow Project. If you are interesting in workflow technologies based on Java join our project!
As I am using also Linux ubuntu I will post sometimes things arround ubuntu and java.
In general I beleve in free software as preached by the Free Software Foundaition. So sometimes I will publish also my personal thoughts about open source and free software.
Posted at 08:48PM Jun 18, 2008
Posted by: Ralph
Category: General