<?xml version="1.0" encoding='utf-8'?>
<?xml-stylesheet type="text/xsl" href="http://www.imixs.org/roller/roller-ui/styles/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom">
    <title type="html">Ralph&apos;s Java Blog</title>
    <subtitle type="html">my Blog about Java technology</subtitle>
    <id>http://www.imixs.org/roller/ralphsjavablog/feed/entries/atom</id>
            <link rel="self" type="application/atom+xml" href="http://www.imixs.org/roller/ralphsjavablog/feed/entries/atom" />
        <link rel="alternate" type="text/html" href="http://www.imixs.org/roller/ralphsjavablog/" />
        <updated>2013-06-13T18:03:19+02:00</updated>
    <generator uri="http://roller.apache.org" version="4.0.1 (20090102102238:dave)">Apache Roller (incubating)</generator>
        <entry>
        <id>http://www.imixs.org/roller/ralphsjavablog/entry/how_to_use_jquery_dialog</id>
        <title type="html">How to use a jQuery Dialog in JSF 2.0</title>
        <author><name>Ralph</name></author>
        <link rel="alternate" type="text/html" href="http://www.imixs.org/roller/ralphsjavablog/entry/how_to_use_jquery_dialog"/>
        <published>2013-05-08T19:04:07+02:00</published>
        <updated>2013-05-09T22:52:49+02:00</updated> 
        <category term="/General" label="General" />
        <category term="ajax" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jsf" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jquery" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">&lt;p&gt;Combining JSF 2.0 and jQuery / jQuery-UI is in my opinion the best 
choice to build modern web applications. Your JSF web application 
becomes much smaller as using one of the JSF component libraries. Also 
with jQuery you got a lot of flexibility designing your pages. &lt;/p&gt;&lt;p&gt;But
 things become interesting when you try to integrate a jQuery Dialog box
 with JSF 2.0. I am talking here about a Dialog Box which contains a JSF
 form with input elements to be submitted - independent from the current
 page flow. For example: you have a normal jsf form with input 
components and a link to open another form (in my case a user-profile 
dialog) also with data which can be submitted. It takes me some time to 
figure out the best way to manage this. But with JSF 2.0 and ajax 
support things are not so difficult. &lt;/p&gt;</summary>
        <content type="html">&lt;p&gt;Combining JSF 2.0 and jQuery / jQuery-UI is in my opinion the best choice to build modern web applications. Your JSF web application becomes much smaller as using one of the JSF component libraries. Also with jQuery you got a lot of flexibility designing your pages. &lt;/p&gt;&lt;p&gt;But things become interesting when you try to integrate a jQuery Dialog box with JSF 2.0. I am talking here about a Dialog Box which contains a JSF form with input elements to be submitted - independent from the current page flow. For example: you have a normal jsf form with input components and a link to open another form (in my case a user-profile dialog) also with data which can be submitted. It takes me some time to figure out the best way to manage this. But with JSF 2.0 and ajax support things are not so difficult. &lt;/p&gt;&lt;p&gt;So here is my Solution: &lt;br /&gt;&lt;/p&gt;&lt;h2&gt;The Dialog Form&lt;/h2&gt;&lt;p&gt;I put my Dialog into a JSF faclet to separate all the dialog stuff in one xhtml element which can be included in the main pages. The interesting thing is here the JSF validation which is also supported. The dialog will not close if a validation error occurs. There for I check the #{facesContext.validationFailed} and save the state in a JavaScript variable. The ajax method &apos;processCompleteEvent&apos; checks if a validation exception was thrown. In that case the dialog stays open, otherwise it will be closed after submit. The command button triggers a JSF 2.0 ajax request to avoid any changes on the main page behind the dialog.&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&amp;lt;ui:composition xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&lt;br /&gt;	xmlns:ui=&amp;quot;http://java.sun.com/jsf/facelets&amp;quot;&lt;br /&gt;	xmlns:f=&amp;quot;http://java.sun.com/jsf/core&amp;quot;&lt;br /&gt;	xmlns:h=&amp;quot;http://java.sun.com/jsf/html&amp;quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;	&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;		/*&amp;lt;![CDATA[*/&lt;br /&gt;		$(document).ready(function() {&lt;br /&gt;			// setup dialog&lt;br /&gt;			$(&amp;quot;#dialog-myprofile&amp;quot;).dialog({&lt;br /&gt;				resizable : false,&lt;br /&gt;				width : 530,&lt;br /&gt;				modal : true,&lt;br /&gt;				autoOpen : false&lt;br /&gt;			});&lt;br /&gt;		});&lt;br /&gt;		&lt;br /&gt;		// auto close dialog and check validation... &lt;br /&gt;		var validationError=false;&lt;br /&gt;		function processCompleteEvent(e) {&lt;br /&gt;	          if (e.status == &apos;success&apos;) {&lt;br /&gt;	        	if (!validationError) {&lt;br /&gt;	        	 	$(&amp;quot;#dialog-myprofile&amp;quot;).dialog(&amp;quot;close&amp;quot;);&lt;br /&gt;	       	 	}&lt;br /&gt;	          }&lt;br /&gt;	        }&lt;br /&gt;		// open dialog&lt;br /&gt;	 	function openMyProfile() {&lt;br /&gt;			$(&amp;quot;#dialog-myprofile&amp;quot;).show();&lt;br /&gt;			$(&amp;quot;#dialog-myprofile&amp;quot;).dialog(&amp;quot;open&amp;quot;);			&lt;br /&gt;	    	}&lt;br /&gt;		/*]]&amp;gt;*/&lt;br /&gt;	&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;	&amp;lt;div id=&amp;quot;myprofile_view&amp;quot;&amp;gt;&lt;br /&gt;		&amp;lt;!-- Dialog Box --&amp;gt;&lt;br /&gt;		&amp;lt;div id=&amp;quot;dialog-myprofile&amp;quot; title=&amp;quot;#{message[&apos;profile.title&apos;]}&amp;quot;&amp;gt;&lt;br /&gt;			&amp;lt;h:form id=&amp;quot;dialog-myprofile-form&amp;quot;&amp;gt;&lt;br /&gt;				&amp;lt;ui:include src=&amp;quot;/pages/error_message.xhtml&amp;quot; /&amp;gt;&lt;br /&gt;				&amp;lt;script&amp;gt;validationError=#{facesContext.validationFailed};&amp;lt;/script&amp;gt;&lt;br /&gt;				&amp;lt;h:inputText&lt;br /&gt;					value=&amp;quot;#{userController.workitem.item[&apos;txtusername&apos;]}&amp;quot;&lt;br /&gt;					style=&amp;quot;width: 260px;&amp;quot; /&amp;gt;&lt;br /&gt;					&lt;br /&gt;				&amp;lt;!-- Save Action --&amp;gt;&lt;br /&gt;				&amp;lt;h:commandButton actionListener=&amp;quot;#{userController.doProcess}&amp;quot;&lt;br /&gt;					 value=&amp;quot;#{message.save}&amp;quot;&amp;gt;					&lt;br /&gt;					&amp;lt;f:ajax execute=&amp;quot;@form&amp;quot; render=&amp;quot;@form&amp;quot;&lt;br /&gt;						onevent=&amp;quot;processCompleteEvent&amp;quot;&amp;gt;&lt;br /&gt;					&amp;lt;/f:ajax&amp;gt;&lt;br /&gt;				&amp;lt;/h:commandButton&amp;gt;&lt;br /&gt;				&amp;lt;input type=&amp;quot;button&amp;quot;&lt;br /&gt;					onclick=&amp;quot;$(&apos;#dialog-myprofile&apos;).dialog(&apos;close&apos;);&amp;quot;&lt;br /&gt;					value=&amp;quot;#{message.close}&amp;quot; /&amp;gt;&lt;br /&gt;			&amp;lt;/h:form&amp;gt;&lt;br /&gt;		&amp;lt;/div&amp;gt;&lt;br /&gt;	&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/ui:composition&amp;gt; &lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h2&gt;How to open the Dialog from the main page&lt;/h2&gt;&lt;p&gt; To open the Dialog from my main template I use a h:commandLink with an onclick event to open the jQuery dialog. See the following code snippet:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&lt;br /&gt;	xmlns:ui=&amp;quot;http://java.sun.com/jsf/facelets&amp;quot;&lt;br /&gt;	xmlns:h=&amp;quot;http://java.sun.com/jsf/html&amp;quot;&lt;br /&gt;	xmlns:c=&amp;quot;http://java.sun.com/jsp/jstl/core&amp;quot;&lt;br /&gt;	xmlns:f=&amp;quot;http://java.sun.com/jsf/core&amp;quot;&lt;br /&gt;&amp;lt;h:head&amp;gt;&lt;br /&gt;.....&lt;br /&gt;	&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;../jquery-ui-1.10.0.custom.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;	&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;../jquery-1.9.0.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;.....&lt;br /&gt;&amp;lt;/h:head&amp;gt;&lt;br /&gt;&amp;lt;h:body&amp;gt;&lt;br /&gt;   &amp;lt;f:view id=&amp;quot;main_view&amp;quot;&amp;gt;&lt;br /&gt;.....&lt;br /&gt;	&amp;lt;h:form id=&amp;quot;main_form&amp;quot;&amp;gt;&lt;br /&gt;...&lt;br /&gt;		&amp;lt;h:commandLink onclick=&amp;quot;openMyProfile();&amp;quot;&amp;gt;&lt;br /&gt;			&amp;lt;h:outputText id=&amp;quot;profile_userlink&amp;quot;&lt;br /&gt;				value=&amp;quot;#{message.open_profile}&amp;quot; /&amp;gt;&lt;br /&gt;			&amp;lt;f:ajax render=&amp;quot;:dialog-myprofile-form&amp;quot; /&amp;gt;&lt;br /&gt;		&amp;lt;/h:commandLink&amp;gt; &lt;br /&gt;	&amp;lt;/h:form&amp;gt;&lt;br /&gt;...&lt;br /&gt;	&amp;lt;ui:include src=&amp;quot;/pages/profile/myprofile_dialog.xhtml&amp;quot; /&amp;gt;&lt;br /&gt;   &amp;lt;/f:view&amp;gt;&lt;br /&gt;&amp;lt;/h:body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;The trick here is again the ajax integration of the commandLink.&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&amp;lt;f:ajax render=&amp;quot;:dialog-myprofile-form&amp;quot; /&amp;gt; &lt;br /&gt;&lt;/pre&gt;&lt;p&gt;The f:ajax tag will rerender the dialog form. This is an important part of this solution, because you need to reset the old data of the dialog when the dialog is reopened. For example when the user opens the dialog, types in some data and close the dialog without submitting the data. In this scenario it is necessary to reload the dialog form data. This is done by the ajax render command. &lt;/p&gt;&lt;p&gt;So that&apos;s it. I hope this will help someone.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>http://www.imixs.org/roller/ralphsjavablog/entry/using_multipartconfig_in_a_servlet</id>
        <title type="html">using @MultipartConfig in a servlet in GlassFish 3.2.2</title>
        <author><name>Ralph</name></author>
        <link rel="alternate" type="text/html" href="http://www.imixs.org/roller/ralphsjavablog/entry/using_multipartconfig_in_a_servlet"/>
        <published>2013-04-26T15:52:44+02:00</published>
        <updated>2013-04-26T15:53:22+02:00</updated> 
        <category term="/General" label="General" />
        <content type="html">&lt;p&gt;Today I run into a problem with a custom JSF component using the @MultipartConfig. Trying to use my FileUpload Bean (http://www.imixs.org/jsf/fileupload.html) results in the following error message:&amp;nbsp;
&lt;/p&gt;&lt;pre&gt;[#|2013-04-26T15:37:21.769+0200|WARNING|glassfish3.1.2|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=20;_ThreadName=Thread-2;|StandardWrapperValve[Faces Servlet]: PWC1406: Servlet.service() for servlet Faces Servlet threw exception&lt;br /&gt;java.lang.IllegalStateException: PWC4016: Request.getParts is called without multipart configuration.  Either add a @MultipartConfig to the servlet, or a multipart-config element to web.xml &lt;br /&gt;&lt;/pre&gt;&lt;p&gt;It seems that this error did not be thrown on a GlassFish 3.2.1 server.&amp;nbsp; &lt;/p&gt;&lt;p&gt;Finally I was able to fix the problem when adding the following servlet configuration into the web.xml file for my Faces Servlet.&lt;/p&gt;&lt;pre&gt;&amp;nbsp;...&lt;br /&gt;	&amp;lt;!-- Facelets --&amp;gt;&lt;br /&gt;	&amp;lt;servlet&amp;gt;&lt;br /&gt;		&amp;lt;servlet-name&amp;gt;Faces Servlet&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;		&amp;lt;servlet-class&amp;gt;javax.faces.webapp.FacesServlet&amp;lt;/servlet-class&amp;gt;&lt;br /&gt;		&amp;lt;load-on-startup&amp;gt;0&amp;lt;/load-on-startup&amp;gt;		&lt;br /&gt;		&amp;lt;multipart-config&amp;gt;&lt;br /&gt;	    	  &amp;lt;location&amp;gt;/tmp&amp;lt;/location&amp;gt;&lt;br /&gt;	    	  &amp;lt;max-file-size&amp;gt;20848820&amp;lt;/max-file-size&amp;gt;&lt;br /&gt;	    	  &amp;lt;max-request-size&amp;gt;418018841&amp;lt;/max-request-size&amp;gt;&lt;br /&gt;	    	  &amp;lt;file-size-threshold&amp;gt;1048576&amp;lt;/file-size-threshold&amp;gt;&lt;br /&gt;		&amp;lt;/multipart-config&amp;gt;&lt;br /&gt;        &amp;lt;/servlet&amp;gt;&lt;br /&gt;.....&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>http://www.imixs.org/roller/ralphsjavablog/entry/eclipse_juno_4_2_for</id>
        <title type="html">Eclipse Juno (4.2) for Maven Developers</title>
        <author><name>Ralph</name></author>
        <link rel="alternate" type="text/html" href="http://www.imixs.org/roller/ralphsjavablog/entry/eclipse_juno_4_2_for"/>
        <published>2013-04-01T11:16:37+02:00</published>
        <updated>2013-04-01T11:16:37+02:00</updated> 
        <category term="/General" label="General" />
        <content type="html">&lt;p&gt;
Since last year the new Eclipse IDE 4.2 is available. Version 4.2 comes with a new architecture and so I thought it was time for me to leave the 3.x version. I mainly develop JEE projects and I am using maven in most of my projects, but I also develop some Eclipse plugins. So the big question is what Version of Eclipse fits best my needs? When you take a look at the &lt;a href=&quot;http://www.eclipse.org/downloads/&quot;&gt;Eclipse Download Page&lt;/a&gt; you will see a list of different Eclipse Bundles. One of the largest and most downloaded version is &amp;quot;Eclipse IDE for Java EE Developers&amp;quot;. So I thought that would be the best choice for me... &lt;/p&gt;&lt;p&gt;I worked with the &amp;quot;Eclipse IDE for Java EE Developers&amp;quot; version 4.2 for 3 months, and it was driving me crazy. In most cases it was very slow because of a large list of validators which are doing a lot of obscure things in background. But one of the most serious bug is the &lt;a href=&quot;http://stackoverflow.com/questions/11631371/why-is-eclipse-juno-4-2-running-jpa-java-change-event-handler-processes&quot;&gt;JPA plugin problem&lt;/a&gt; which makes it for me impossible to work &apos;normal&apos;. Also when you updated SP2 this bug is still not fixed. &lt;/p&gt;&lt;p&gt;One additional interesting detail of the &amp;quot;Eclipse IDE for Java EE Developers&amp;quot; is the missing Maven support. I don&apos;t know why, but after all I think the reason why maven (m2e) is not included in this eclipse version are problems from some plugins to handle maven projects correctly. &lt;/p&gt;&lt;p&gt;So after all I came to the solution that for me the best choice is the eclipse bundle &amp;quot;&lt;b&gt;Eclipse IDE for Java Developers&lt;/b&gt;&amp;quot;. This bundle is much more&amp;nbsp; smaller, stable and faster than the JEE bundle. And it includes Maven support out of the box! If you are happy with the &amp;quot;Eclipse IDE for Java EE Developers&amp;quot;, stick with it. However, if you also run into problems, I recommend to use &amp;quot;Eclipse IDE for Java Developers&amp;quot;. I also want to point out that I am running Eclipse on a Linux 64bit system. May be that things run different on this OS. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;In the following section I will explain which plugins I have installed additional after I downloaded the &amp;quot;Eclipse IDE for Java Developers&amp;quot;.&lt;/p&gt;&lt;h2&gt;SVN Team support&lt;/h2&gt;&lt;p&gt; Eclipse 4.2 is still missing SVN Team support out of the box. The only reason I can found is the fact that there are two SVN plugins available (subclipse and subversive). I am using subersive. You can select install the &amp;quot;Subversive SVN Team Provider&amp;quot; from the Juno download site (http://download.eclipse.org/releases/juno). After restarting Eclipse you should be automatically asked to install the SVN Connectors. For linux users I recommend the svnKit 1.7.8. &lt;/p&gt;&lt;p&gt;Finally you can add the svn maven support. The m2e team providers for subversive can be selected from the eclipse marketplace. This feature is useful to get the option to checkout a maven project directly from a svn repository. &lt;br /&gt;&lt;/p&gt;&lt;h3&gt;Manual installation&lt;/h3&gt;&lt;p&gt;For some reason in my case the connectors where not offered automatically. I think this happens because I opened a old workspace with svn connections before I installed subversive. I recommend to use an empty workspace when you install new plugins. So it was necessary to me to upate subersive plugin directly from:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;http://download.eclipse.org/technology/subversive/1.0/update-site-1.0.1/&lt;/pre&gt;&lt;p&gt;and then install the connectors via the update manager from: &lt;br /&gt;&lt;/p&gt;&lt;pre&gt;http://www.polarion.org/projects/subversive/download/eclipse/2.0/update-site/&lt;/pre&gt;&lt;p&gt;Also I was able to install the m2e team provider &apos;m2e-subversive&apos; directly from: &lt;/p&gt;&lt;pre&gt;http://www.polarion.org/projects/subversive/download/eclipse/2.0/update-site/&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;The J2EE Server Tools&lt;/h2&gt;&lt;p&gt;The J2EE Server Tools providing a comfortable way to integrate the 
Java EE Servers (e.g. GlassFish) into the Eclipse IDE. In &amp;quot;Eclipse IDE for Java Developers&amp;quot; these tools are not included so you need to install them manually. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;First
 you need to install the JST plugin via menu &amp;quot;Help&amp;gt;install new 
Software&amp;quot; and search for &amp;quot;server&amp;quot;. Select the &amp;quot;JST Server Adapters&amp;quot; and 
install it. For GlassFish server support you need to add a extra update site to install the latest GlassFish adapters. Add the followin Update Site URL:&lt;/p&gt;&lt;pre&gt;http://download.java.net/glassfish/eclipse/juno&lt;/pre&gt;&lt;p&gt;Read also the &lt;a href=&quot;https://blogs.oracle.com/vkraemer/entry/internal_3_1_2_runtime&quot;&gt;blog from Vince Kreamer&lt;/a&gt; for deails.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h2&gt;BPMN and Imixs Plugins&lt;/h2&gt;&lt;p&gt; As you may know I am project lead of the open source project &lt;a href=&quot;http://www.imixs.org&quot;&gt;Imixs Workflow&lt;/a&gt;. This is the reason why I also install a BPMN and the Imixs Modeler Plugin to manage my workflow projects. The Imixs Modeller can be installed from : &lt;br /&gt;&lt;/p&gt;&lt;pre&gt;http://www.imixs.org/org.imixs.eclipse.updatesite &lt;br /&gt;&lt;/pre&gt;&lt;p&gt;To install the BPMN Plugin see &lt;a href=&quot;http://eclipse.org/bpmn2-modeler/downloads.php&quot;&gt;BPMN2 Download page&lt;/a&gt; and check for the latest milestone or nightly build &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>http://www.imixs.org/roller/ralphsjavablog/entry/jquery_dialog_submit_form_with</id>
        <title type="html">jQuery Dialog - Submit form with ajax</title>
        <author><name>Ralph</name></author>
        <link rel="alternate" type="text/html" href="http://www.imixs.org/roller/ralphsjavablog/entry/jquery_dialog_submit_form_with"/>
        <published>2013-02-16T14:17:20+01:00</published>
        <updated>2013-05-09T22:55:42+02:00</updated> 
        <category term="/General" label="General" />
        <category term="ajax" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jquery" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">&lt;p&gt;Today I searched for a solution to submit a form embedded into a jQuery dialog with ajax. &lt;/p&gt;&lt;p&gt;My
 situation is the following: I use a jQuery UI Dialog to display a 
feedback-form in my web application. The feedback form should not change
 the state of the page the user worked before.When the form was submitted the jQuery Dialog should close automatically.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Using jQuery makes the solution very easy.... &lt;br /&gt;&lt;/p&gt;</summary>
        <content type="html">&lt;p&gt;Today I searched for a solution to submit a form embedded into a jQuery dialog with ajax. &lt;/p&gt;&lt;p&gt;My situation is the following: I use a jQuery UI Dialog to display a feedback-form in my web application. The feedback form should not change the state of the page the user worked before. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;So my first approach was to change my form post action into a ajax post action. This can be done easily during the initialisation of the dialog. See the following code snippet: &lt;/p&gt;&lt;pre&gt;/**&lt;br /&gt;&amp;nbsp;* Method to initialize the feedback dalog.&lt;br /&gt;&amp;nbsp;* @see contact_dialog.xhtml&lt;br /&gt;&amp;nbsp;*/&lt;br /&gt;function initContactDialog() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // set default settings for profile dialog&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(&amp;quot;#dialog-contact&amp;quot;).dialog({&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; resizable : false,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; height : 530,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; width : 550,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; modal : true,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; autoOpen : false&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // hide contact dialog per default&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(&amp;quot;#dialog-contact&amp;quot;).hide();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // the following method modifies the submit request into a ajax request&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // So the dialog will be closed after the submit was successfull without&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // affects to the main page.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(&apos;#dialog-contact-form&apos;).submit(function() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // show up waiting panel&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $(&amp;quot;.ajax-wait-panel&amp;quot;).addClass(&amp;quot;ajax-waiting&amp;quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $.ajax({&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type: &amp;quot;POST&amp;quot;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url: &amp;quot;http://localhost:8080/myrestservice&amp;quot;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data: $(&amp;quot;#dialog-contact-form&amp;quot;).serialize(), // serializes the form&apos;s elements.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; success: function(data)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; $(&amp;quot;.ajax-wait-panel&amp;quot;).removeClass(&amp;quot;ajax-waiting&amp;quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(&amp;quot;#dialog-contact&amp;quot;).dialog(&amp;quot;close&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error: function(data)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alert(&apos;An error occured. Could not send data!&apos;); // show response from post.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(&amp;quot;.ajax-wait-panel&amp;quot;).removeClass(&amp;quot;ajax-waiting&amp;quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return false; // avoid to execute the actual submit of the form.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;}&lt;/pre&gt;&lt;p&gt;With the initContactDialog() method I initialize the dialog and bind a function to the submit event of my form. The function changes the submit into a ajax call and closes the dialog after the ajax request was finished.&amp;nbsp; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;This is quite easy and the dialog will automatically close when the Ajax submit was finished.&amp;nbsp; &lt;/p&gt;&lt;p&gt;Here is the html part of my dialog form: &lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Dialog Box --&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div id=&amp;quot;dialog-contact&amp;quot;&amp;nbsp; title=&amp;quot;#{global.contact_title}&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;form id=&amp;quot;dialog-contact-form&amp;quot; method=&amp;quot;post&amp;quot; name=&amp;quot;contact_form&amp;quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h:panelGrid columns=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h:panelGroup&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dl&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dt&amp;gt;#{global.contact_firstname}:&amp;lt;/dt&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dd&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;txtfirstname&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/dd&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/dl&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/h:panelGroup&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h:panelGroup&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dl style=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dt&amp;gt;#{global.contact_lastname}:&amp;lt;/dt&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dd&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;txtlastname&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/dd&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/dl&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/h:panelGroup&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h:panelGroup&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dl style=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dt&amp;gt;#{global.contact_email}:&amp;lt;/dt&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dd&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;txtemail&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/dd&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/dl&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/h:panelGroup&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/h:panelGrid&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dl style=&amp;quot;margin: 0 0 0 0px;&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dt&amp;gt;#{global.contact_message}:&amp;lt;/dt&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dd&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;textarea style=&amp;quot;width: 450px; height: 80px;&amp;quot; name=&amp;quot;_description&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/dd&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/dl&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;send&amp;quot; /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/form&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div class=&amp;quot;ajax-wait-panel&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h2&amp;gt;#{global.please_wait}&amp;lt;/h2&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/div&amp;gt; &lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&amp;nbsp;I open the dialog with the following JavaScript function:&lt;/p&gt;&lt;pre&gt;&amp;nbsp;/**&lt;br /&gt; * helper method to open the contact dialog. &lt;br /&gt;&amp;nbsp;* The method creates a new empty contact workitem.&lt;br /&gt; */&lt;br /&gt;function openContact() {&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;   $(&amp;quot;#dialog-contact&amp;quot;).show();&lt;br /&gt;&amp;nbsp; &amp;nbsp;$(&amp;quot;#dialog-contact&amp;quot;).dialog(&amp;quot;open&amp;quot;);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;Ajax &apos;Wait-Panel&apos; &lt;br /&gt;&lt;/h2&gt;&lt;p&gt;As you can see in my script and in the html snippet I have added a div section with the class &apos;ajax-wait-panel&apos;. This div overlays the form of my dialog when the ajax call is started. So the user will see a &apos;Please wait&apos; message until the ajax request is finished. I simply add the class &apos;ajax-waiting&apos; to the div section in the moment the request starts and remove the class when the submit was finished. So this is the css part of my solution:&lt;/p&gt;&lt;pre&gt;/* Ajax-wait-panel can be useded in jquery dialogs&lt;br /&gt;&amp;nbsp;&amp;nbsp; for long runnign ajax request.&lt;br /&gt;&amp;nbsp;&amp;nbsp; Start by setting display:none to make this hidden.&lt;br /&gt;&amp;nbsp;&amp;nbsp; Background we set to 80% white with&lt;br /&gt;&amp;nbsp;&amp;nbsp; our animation centered, and no-repeating */&lt;br /&gt; .ajax-wait-panel {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; display:&amp;nbsp;&amp;nbsp;&amp;nbsp; none;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; position:&amp;nbsp;&amp;nbsp; absolute;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; z-index:&amp;nbsp;&amp;nbsp;&amp;nbsp; 1000;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; top:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; left:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; height:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 100%;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; width:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 100%;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; background: rgba( 255, 255, 255, .6 ) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url(&apos;ajax-loader.gif&apos;) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 50% 50% &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; no-repeat;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cursor: wait;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;.ajax-wait-panel&amp;nbsp; h2 {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;position: absolute;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;top: 50%;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;margin-top: -80px;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;color: #666;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;text-align: center;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;width: 100%;&lt;br /&gt;}&lt;br /&gt;/* Class to be added when ajax wait panel should &lt;br /&gt;&amp;nbsp;&amp;nbsp; be displayed */&lt;br /&gt;.ajax-waiting {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; display: block;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;</content>
    </entry>
    <entry>
        <id>http://www.imixs.org/roller/ralphsjavablog/entry/bootstrap_and_jquery_ui</id>
        <title type="html">Bootstrap and jQuery UI</title>
        <author><name>Ralph</name></author>
        <link rel="alternate" type="text/html" href="http://www.imixs.org/roller/ralphsjavablog/entry/bootstrap_and_jquery_ui"/>
        <published>2013-02-02T10:14:14+01:00</published>
        <updated>2013-02-16T14:18:20+01:00</updated> 
        <category term="/General" label="General" />
        <summary type="html">&lt;a target=&quot;_blank&quot; href=&quot;http://twitter.github.com/bootstrap/index.html&quot;&gt;Bootstrap&lt;/a&gt; and &lt;a target=&quot;_blank&quot; href=&quot;http://jqueryui.com/&quot;&gt;jQuery UI&lt;/a&gt;
 are both web frameworks. Both frameworks support web developers 
designing&amp;nbsp; web pages. Where Bootstrap is mainly supporting the design of
 a web site in general jQuery UI is more focusing on the development of 
programmatic design an the development of more complex requirements like
 in applications. Both frameworks are based on css and the java script 
framework jQuery. There is no reason why not to combine both frameworks 
for your development.&lt;br /&gt;But there are subtle differences in both frameworks that you have to realize before you begin working.&amp;nbsp;</summary>
        <content type="html">&lt;a target=&quot;_blank&quot; href=&quot;http://twitter.github.com/bootstrap/index.html&quot;&gt;Bootstrap&lt;/a&gt; and &lt;a target=&quot;_blank&quot; href=&quot;http://jqueryui.com/&quot;&gt;jQuery UI&lt;/a&gt; are both web frameworks. Both frameworks support web developers designing&amp;nbsp; web pages. Where Bootstrap is mainly supporting the design of a web site in general jQuery UI is more focusing on the development of programmatic design an the development of more complex requirements like in applications. Both frameworks are based on css and the java script framework jQuery. There is no reason why not to combine both frameworks for your development.&lt;br /&gt;But there are subtle differences in both frameworks that you have to realize before you begin working.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;The first differnet is the CSS support. Bootstrap provides you with a rich set of css classes do design a web site or application. The framework includes concepts for scaffolding and grouping layout regions in a page design. For that reason you can use Bootstrap for any page desing and there is no need at all to use the Bootstrap JavaScrip libraries. If you use the bootstrap class names you can layout a page quickly. &lt;br /&gt;&lt;pre&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;&amp;lt;html lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;link href=&amp;quot;../assets/css/bootstrap.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot;&amp;gt; &amp;lt;/head&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;div class=&amp;quot;container&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h1&amp;gt;Bootstrap starter template&amp;lt;/h1&amp;gt;&lt;br /&gt;&amp;lt;div class=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;div class=&amp;quot;span4&amp;quot;&amp;gt;Simple Example&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;div class=&amp;quot;span8&amp;quot;&amp;gt;with two columns&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;button type=&amp;quot;button&amp;quot; class=&amp;quot;btn btn-primary&amp;quot;&amp;gt;Primary&amp;lt;/button&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt; &lt;br /&gt;&amp;lt;!-- /container --&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;/pre&gt;&lt;br /&gt;jQuery UI also provides css classes. But in differents to Bootstrap the css design of jQuery UI is only used for the widgets provided by this frameworks. So you have no general design like in Bootstrap. &lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;&amp;lt;html lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;link href=&amp;quot;css/ui-lightness/jquery-ui-1.10.0.custom.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot;&amp;gt; &amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;body&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h1&amp;gt;jQury UI starter template&amp;lt;/h1&amp;gt;&lt;br /&gt;&amp;lt;p&amp;gt;Simple Example with jQuery UI&amp;lt;/p&amp;gt;&lt;br /&gt;&amp;lt;form&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div class=&amp;quot;ui-widget&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;label&amp;gt;Input: &amp;lt;/label&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input class=&amp;quot;&amp;quot;&amp;nbsp; role=&amp;quot;textbox&amp;quot; &amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type=&amp;quot;button&amp;quot; value=&amp;quot;Input Button&amp;quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; class=&amp;quot;ui-button ui-widget ui-state-default ui-corner-all&amp;quot; role=&amp;quot;button&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/input&amp;gt;&lt;br /&gt;    &amp;lt;button id=&amp;quot;btnDemo1&amp;quot; class=&amp;quot;ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary&amp;quot; &lt;br /&gt;           role=&amp;quot;button&amp;quot; aria-disabled=&amp;quot;false&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;ui-button-icon-primary ui-icon ui-icon-closethick&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;        &amp;lt;span class=&amp;quot;ui-button-text&amp;quot;&amp;gt;Close&amp;lt;/span&amp;gt;&amp;lt;/button&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt; &amp;lt;!-- /container --&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;How to combine both frameworks?&lt;/h2&gt;&lt;p&gt;As you can see in the examples the class names differ from Bootstrap and jQueryUI. So there is no problem to load both css files in one page.&lt;/p&gt;&lt;p&gt;But what is about the JavaScript libraries? jQuery-UI provides methods to autostyle widgets like buttons or input fields. This can be done with a script:&lt;/p&gt;&lt;pre&gt;....&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;....&lt;br /&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;../js/jquery-1.7.1.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; src=&amp;quot;../js/jquery-ui-1.8.17.custom.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(function() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $(&amp;quot;input:button,input:submit&amp;quot;).button();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;......&lt;br /&gt;&amp;lt;input type=&amp;quot;button&amp;quot; value=&amp;quot;test&amp;quot; /&amp;gt;&lt;br /&gt;....&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt; This will result in the same design like if you add the classes manually. But jQuery-UI did not know about Bootstrap so a auto designed button will not have the same style classes like a button manually designed with bootstrap style. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;A &lt;span lang=&quot;en&quot; class=&quot;short_text&quot; id=&quot;result_box&quot;&gt;&lt;span class=&quot;hps&quot;&gt;problem arises&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;when&lt;/span&gt;&lt;/span&gt; you mix both class styles. In this case the design of a Bootstrap button can differ from a jQuery-UI button. Using jQuery you can add a function to set class names explicit for different elements. The following script will remove all style classes assigned to input buttons and add only the Bootstrap class: &lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&lt;span lang=&quot;en&quot; class=&quot;short_text&quot; id=&quot;result_box&quot;&gt;&lt;span class=&quot;hps&quot;&gt;&amp;lt;script&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(function() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $(&amp;quot;button,input:button,input:submit&amp;quot;).removeClass().addClass(&amp;quot;btn&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;Now all buttons will become the same design. But all other widgets provided by jQuery-UI will appear still in the jQuery theme.&amp;nbsp; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;To solve this situation you need to provide a jQuery-UI theme with an equal design like Bootstrap. The &lt;a target=&quot;_blank&quot; href=&quot;http://addyosmani.github.com/jquery-ui-bootstrap/&quot;&gt;project &apos;jQuery UI Bootstrap&apos;&lt;/a&gt; provides such a theme. Your page setup can then look like this: &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;pre&gt;&amp;lt;head&amp;gt;&lt;br /&gt;.....&lt;br /&gt;&amp;lt;!-- CSS --&amp;gt;&lt;br /&gt;&amp;lt;link href=&amp;quot;/layout/bootstrap/css/bootstrap.min.css&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rel=&amp;quot;stylesheet&amp;quot; media=&amp;quot;screen&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;lt;link type=&amp;quot;text/css&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; href=&amp;quot;/layout/themes/bootstrap/jquery-ui-1.10.0.custom.css&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rel=&amp;quot;stylesheet&amp;quot; /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;link href=&amp;quot;/layout/bootstrap/css/bootstrap-responsive.css&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rel=&amp;quot;stylesheet&amp;quot; /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!--Scripts --&amp;gt;&lt;br /&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;/js/jquery-1.9.0.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script src=&amp;quot;/layout/bootstrap/js/bootstrap.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;/js/jquery-ui-1.10.0.custom.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;....&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;/pre&gt;&lt;p&gt;&lt;b&gt;Note&lt;/b&gt; that I have reorganized the location of the different css and JavaScript files a little bit from the file structure provided by the &apos;jQuery UI Bootstrap&apos; project.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>http://www.imixs.org/roller/ralphsjavablog/entry/jsf_f_ajax_how_to</id>
        <title type="html">JSF f:ajax - how to locate components outside the current context</title>
        <author><name>Ralph</name></author>
        <link rel="alternate" type="text/html" href="http://www.imixs.org/roller/ralphsjavablog/entry/jsf_f_ajax_how_to"/>
        <published>2013-01-27T11:51:54+01:00</published>
        <updated>2013-05-11T13:22:58+02:00</updated> 
        <category term="/General" label="General" />
        <category term="jsf" scheme="http://roller.apache.org/ns/tags/" />
        <category term="ajax" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">&lt;p&gt;Using f:ajax in JSF 2.0 simplifies web design. Using the render and 
execute tags allows to update components in an ajax context.&amp;nbsp;&lt;/p&gt;&lt;p&gt;But I
 run often into problems when I try to update a component outside my 
current context. For example in a table row of a h:datatable I want to 
update the table content after special actions.&amp;nbsp; &lt;/p&gt;&lt;p&gt;You typically see log messages like this one:&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Arial,&apos;Liberation Sans&apos;,&apos;DejaVu Sans&apos;,sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 18px; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; background-color: rgb(238, 238, 238); display: inline ! important; float: none;&quot;&gt;f:ajax contains an unknown id &apos;j_idt90:painelTabela&apos; - cannot locate it in the context of the component j_idt75&lt;/span&gt;&lt;/p&gt;To
 solve such context problems you could bind the component to a view and 
reference its UIComponent#getClientId() in the ajax context...</summary>
        <content type="html">&lt;p&gt;Using JSF 2.0 and Ajax simplifies the web design and provides a lot of cool tricks to extend the user experience. With the render and execute tags form the f:ajax tag it is use to update components dynamically.&amp;nbsp;&lt;/p&gt;&lt;p&gt;But in the past I run often into problems when trying to update a component outside the current ui context. For example when you try to update a part of your form for a single row in h:datatable component you will typically see log messages like this one:&lt;/p&gt;&lt;pre&gt;f:ajax contains an unknown id &apos;j_idt90:painelTabela&apos; - cannot locate it in the context of the component j_idt75 &lt;br /&gt;&lt;/pre&gt;&lt;p&gt;To solve such kind of problems you need to specify the full component id to be rendered or executed. This is not always as easy at it sounds. When your component is nested in a complex component tree the component id can be prafixed with a long list of parent component ids. This happens typically in h:datatables, ui:repeats or c:forEach sections. &lt;/p&gt;&lt;p&gt;One solution is to navigate back in the tree to the correct ui node and get the componentID using an EL syntax like this: &lt;/p&gt;&lt;pre&gt;&amp;lt;f:ajax render=&amp;quot;:#{component.parent.parent.parent.parent.clientId}:new-minute-panel:&amp;quot; /&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;This looks not really nice and it creates new problems when you redesign or move your ui components into a new structure on your jsf page.&lt;/p&gt;&lt;p&gt; A simple trick to solve the problem is to bind the component which need to be rendered into a ui param. So you can reference its full clientId in the ajax context. See the following example: &lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&amp;lt;h:panelGroup layout=&amp;quot;block&amp;quot; id=&amp;quot;mylist&amp;quot; binding=&amp;quot;#{myListComponent}&amp;quot;&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;ui:repeat var=&amp;quot;attachment&amp;quot; value=&amp;quot;#{myController.myList}&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;      ....&lt;br /&gt;       &amp;lt;!-- some ajax functionality... --&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;f:ajax render=&amp;quot;:#{myListComponent.clientId}&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;     &amp;lt;h:commandLink actionListener=&amp;quot;#{myController.soSomething}&amp;quot;&amp;gt;click me&amp;lt;/h:commandLink&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;/f:ajax&amp;gt;&lt;br /&gt; ...&lt;br /&gt;   &amp;lt;/ui:repeat&amp;gt;&lt;br /&gt;....&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;In this example I use the binding tag to bind the panelGroup to a param named &apos;myListComponent&apos;. Inside the ui:repeat I can now access the outer component and render the component fom my f:ajax element accessing the clientId&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&amp;lt;f:ajax render=&amp;quot;:#{myListComponent.clientId}&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;As a result the ajax component no longer depends on the position in my page and I can reuse it in any part of my jsf page. &lt;br /&gt;&lt;/p&gt;&lt;h2&gt;Transfer clientIDs to subforms &lt;br /&gt;&lt;/h2&gt;&lt;p&gt; Another solution using the binding is to transfer a component into a subform. See the following example:&lt;/p&gt;&lt;pre&gt; &amp;lt;h:panelGroup id=&amp;quot;my_panel&amp;quot; binding=&amp;quot;#{myListComponent}&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h:dataTable id=&amp;quot;mydatatable&amp;quot; value=&amp;quot;#{myController.myList}&amp;quot; var=&amp;quot;child&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;      .....&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ui:include src=&amp;quot;/forms/sub_myeditor.xhtml&amp;quot; &amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ui:param name=&amp;quot;myPanel&amp;quot; value=&amp;quot;#{myListComponent}&amp;quot; /&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ui:include&amp;gt;&lt;br /&gt;       .....&lt;br /&gt;     &amp;lt;/h:dataTable&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;In this example I transfer the ui:component containing my h:datatable to a subpage &apos;sub_myeditor.xhtml&apos;&amp;nbsp; which is included inside the table. Now I can access the panelGroup inside my subpage and render it after an ajax event:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&amp;lt;h:commandButton ....&amp;nbsp; &amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;f:ajax render=&amp;quot;:#{myListComponent.clientId}&amp;quot; &lt;br /&gt;&amp;nbsp;   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; execute=&amp;quot;:#{myListComponent.clientId}&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/h:commandButton&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt; Also in this example the component in the ajax tag is addressed with its absolute path.&lt;br /&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>http://www.imixs.org/roller/ralphsjavablog/entry/ubuntu_r_e_i_s</id>
        <title type="html">Ubuntu - R-E-I-S-U-B: Reboot Even If System Utterly Broken</title>
        <author><name>Ralph</name></author>
        <link rel="alternate" type="text/html" href="http://www.imixs.org/roller/ralphsjavablog/entry/ubuntu_r_e_i_s"/>
        <published>2012-12-13T23:32:51+01:00</published>
        <updated>2012-12-13T23:39:50+01:00</updated> 
        <category term="/General" label="General" />
        <content type="html">&lt;p&gt;If your linux freezes and become entirely unresponsive (what should not happen after all) there exists a magic key sequence to perform a secure reboot:&lt;/p&gt;&lt;p&gt;&lt;i&gt;While holding down ALT+SysRq, press R-E-I-S-U-B &lt;/i&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;See also: &lt;a href=&quot;http://en.wikipedia.org/wiki/Magic_SysRq_key&quot;&gt;http://en.wikipedia.org/wiki/Magic_SysRq_key&lt;/a&gt;&lt;/p&gt;&lt;p&gt;But since Ubuntu 10.10 maverick this keys has been disabled . To re-enable it you have to modify the respective kernel parameter like this:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;echo 1 | sudo tee /proc/sys/kernel/sysrq &lt;/pre&gt;&lt;p&gt;As you can not enter this command in a frozen situation you should re-enable it every time at startup. So add the above line to crontab:&lt;/p&gt;&lt;pre&gt;@reboot echo 1 | sudo tee /proc/sys/kernel/sysrq&amp;nbsp; &lt;/pre&gt;&lt;p&gt;To edit chrontab use :&lt;/p&gt;&lt;pre&gt;sudo crontab -e&lt;/pre&gt;&lt;p&gt;To force linux to check your partition during the next boot use the following command:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;sudo touch /forcefsck &lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>http://www.imixs.org/roller/ralphsjavablog/entry/wortmann_terra_mobile_1450_ii</id>
        <title type="html">Wortmann Terra Mobile 1450 II running Ubuntu!</title>
        <author><name>Ralph</name></author>
        <link rel="alternate" type="text/html" href="http://www.imixs.org/roller/ralphsjavablog/entry/wortmann_terra_mobile_1450_ii"/>
        <published>2012-12-11T20:43:18+01:00</published>
        <updated>2012-12-19T13:08:52+01:00</updated> 
        <category term="/General" label="General" />
        <category term="ubuntu" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;Today I got my new ultrabook &apos;Wortmann Terra Mobile 1450 II&apos; with Intel i7-3517U, 8GB and 240GB SSD. This is a great ultrabook!&amp;nbsp;&lt;/p&gt;&lt;p&gt;I installed Ubuntu 12.10 64bit. Works great out of the box. Only one issue concerning the missing TouchPad functionality. As &lt;a href=&quot;http://forum.novatech.co.uk/showthread.php?25330-nfinity-i5-laptop-how-can-I-get-the-touchpad-and-wireless-working-with-Ubuntu&amp;amp;p=329630&amp;amp;viewfull=1#post329630&quot; target=&quot;_blank&quot;&gt;explained in this forum&lt;/a&gt; this problem can be easily fixed with the following changes of linux kernel options. (Please note that you should have already worked with Linux before you change your configuration - If it goes wrong you can make a refresh install ;-).&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;make a copy of the grub boot loader configuration &apos;/etc/default/grub&apos;&lt;/li&gt;&lt;li&gt;edit the configuration file &apos;/etc/default/grub&apos;&lt;br /&gt;for example from a terminal with the command:&lt;br /&gt;&lt;pre&gt;&amp;gt;sudo vim /etc/default/grub&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;change line GRUB_CMDLINE_LINUX=&amp;quot;&amp;quot; into GRUB_CMDLINE_LINUX=&amp;quot;i8042.noloop&amp;quot;&lt;/li&gt;&lt;li&gt;save your changes&lt;/li&gt;&lt;li&gt;from a terminal run the command: &lt;br /&gt;&lt;pre&gt;&amp;gt;sudo update-grub&amp;nbsp;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;finally reboot your system&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Now the touchpad should work. You can enable/disable it also with key &apos;Fn+Esc&apos;&lt;/p&gt;&lt;h2&gt;Optimize the SSD&lt;/h2&gt;&lt;p&gt;In addition I changed the settings of my SSD in the &apos;/etc/fstab&apos;. If you edit this file you can add the options &apos;noatime,nodiratime&apos;. For example the mountpoint can look like this:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;UUID=[ID] /&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ext4&amp;nbsp;&amp;nbsp;&amp;nbsp; errors=remount-ro,noatime,nodiratime 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/pre&gt;&lt;p&gt;Note that &apos;[ID]&apos; means here your! partition-id - don&apos;t change it!&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;hr /&gt;&lt;h2&gt;Update 19.12.2012&lt;/h2&gt;&lt;p&gt;After I had some randomly system freezes, I installed manually the kernel version 3.6.10. &lt;br /&gt;With this kernel the system runs now stable. I think the kernel update is mandatory.&lt;br /&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>http://www.imixs.org/roller/ralphsjavablog/entry/the_imixs_workflow_project</id>
        <title type="html">The Imixs Workflow project</title>
        <author><name>Ralph</name></author>
        <link rel="alternate" type="text/html" href="http://www.imixs.org/roller/ralphsjavablog/entry/the_imixs_workflow_project"/>
        <published>2012-11-19T22:28:13+01:00</published>
        <updated>2012-11-19T22:28:13+01:00</updated> 
        <category term="/General" label="General" />
        <category term="imixs" scheme="http://roller.apache.org/ns/tags/" />
        <category term="workflow" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;Today I want to talk about the &lt;a href=&quot;http://www.imixs.org&quot;&gt;Imixs workflow project&lt;/a&gt; which is under development for more than 5 years. Since the project is based on the Java Enterprise Edition 5 it becomes more stable, flexible and serious. Version 3.0.x based on GlassFish 3 and JEE6 makes the project very powerful and robust. There were a number of simplifications which had made it much more easy to integrate the imixs workflow engine into JEE projects.&lt;/p&gt;&lt;p&gt;Now I am working on version 3.1.0 which is available in a snapshot-release. This new version has some improvements in the Imixs Workflow engine which is the core of the project. But also in this new version, I try to figure out a way to develop JEE web applications in a leaner way without heavy JSF libraries like RichFaces (which is really great stuff). My idea for now is to work with JSF 2.0 in its reference implementation. As this version provides ajax support in a standardized way I believe that rich web applications can be implemented with more usage of javascript - after all jQuery. &lt;/p&gt;&lt;p&gt;So for now everything looks pretty cool in the new version 3.1.0 which is also used in the next version of the &lt;a href=&quot;http://java.net/projects/imixs-workflow-marty&quot;&gt;Marty&lt;/a&gt; framework. Marty is a general workflow framework to simplify the development of business applications based on the imixs workflow project. The result of all this work can be seen in the &lt;a href=&quot;http://www.office-workflow.de&quot;&gt;Imixs Office Workflow project&lt;/a&gt;. This project site is only available in german language, but I plan also to provide an international home page. &lt;/p&gt;&lt;p&gt;In the future I will post the status of the current development on this blog.&lt;br /&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>http://www.imixs.org/roller/ralphsjavablog/entry/eclipse_juno_slow</id>
        <title type="html">Eclipse Juno - slow....</title>
        <author><name>Ralph</name></author>
        <link rel="alternate" type="text/html" href="http://www.imixs.org/roller/ralphsjavablog/entry/eclipse_juno_slow"/>
        <published>2012-11-10T11:19:09+01:00</published>
        <updated>2012-11-10T11:19:09+01:00</updated> 
        <category term="/General" label="General" />
        <content type="html">&lt;p&gt;With the current Eclipse Release 4.2 I am running in the currently discussed performance issue (&lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=385272&quot;&gt;https://bugs.eclipse.org/bugs/show_bug.cgi?id=385272&lt;/a&gt;)&lt;/p&gt;&lt;p&gt;For now the best solution for me is to delete the workbench.xmi file.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Navigate into your workspace sub folder .metadata/.plugins/.org.eclipse.e4.workbench&lt;/li&gt;&lt;li&gt;Remove or rename the file workbench.xmi.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Restart the Eclipse IDE &lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;This works for me. After a while you need to remove the workbench.xmi again.&lt;br /&gt;</content>
    </entry>
    <entry>
        <id>http://www.imixs.org/roller/ralphsjavablog/entry/glassfish_active_directory</id>
        <title type="html">GlassFish - Active Directory</title>
        <author><name>Ralph</name></author>
        <link rel="alternate" type="text/html" href="http://www.imixs.org/roller/ralphsjavablog/entry/glassfish_active_directory"/>
        <published>2012-10-12T17:17:43+02:00</published>
        <updated>2012-10-12T17:18:22+02:00</updated> 
        <category term="/General" label="General" />
        <category term="ad" scheme="http://roller.apache.org/ns/tags/" />
        <category term="glassfish" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;Running JEE Applications on Glassfish can be easily connected to an existing Microsoft Active Directory Structure.&amp;nbsp;&lt;/p&gt;&lt;p&gt;To authenticate a JEE application against Active Directory (AD) you can setup a LDAPRealm in Glassfish. Use the folowing example settings:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&amp;nbsp;JAAS Context: &apos;ldapRealm&apos;&lt;/li&gt;&lt;li&gt;Direcotry : ldap://your-ad-server:389&lt;/li&gt;&lt;li&gt;Base DN: &apos;DC=mycompany,DC=local&apos;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Additional to these standard connection settings (you should use your own environment configuration) you need to add the following additioanl Properties:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;search-filter = (&amp;amp;(objectClass=user)(sAMAccountName=%s))&lt;/li&gt;&lt;li&gt;group-search-filter = (&amp;amp;(objectClass=group)(member=%d))&lt;/li&gt;&lt;li&gt;search-bind-dn = some-technical-account (do not use distinguished name)&lt;/li&gt;&lt;li&gt;search-bind-password = your-technical-account-password&lt;/li&gt;&lt;li&gt;java.naming.referral = follow&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The property &apos;java.naming.referral = follow&apos; is necessary in most cases to avoid internal exceptions during a search request.&lt;/p&gt;&lt;p&gt;Thats it.&lt;/p&gt;&lt;h2&gt;How to configure an&amp;nbsp; external JNDI Resource&lt;/h2&gt;&lt;p&gt;You can also use the AD to lookup additional ldap attributes from you application code. There for you need to add a external JNDI Resource which can be configured from the GlassFish console. Use the following example settings:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;JNDI Name : you-custom-resource-name&lt;/li&gt;&lt;li&gt;Resource Type: javax.naming.ldap.LdapContext&lt;/li&gt;&lt;li&gt;Factory CLass: com.sun.jndi.ldap.LdapCtxFactory&lt;/li&gt;&lt;li&gt;JNDI Lookup: &apos;DC=mycompany,DC=local&apos;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Also here you should add some additional properties:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;java.naming.provider.url = ldap://your-ad-server:389&lt;/li&gt;&lt;li&gt;java.naming.security.authentication = simple&lt;br /&gt;&lt;/li&gt;&lt;li&gt;java.naming.security.principal = some-technical-account (do not use distinguished name)&lt;/li&gt;&lt;li&gt;java.naming.security.credentials = your-technical-account-password&lt;/li&gt;&lt;li&gt;java.naming.referral = follow&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The property &apos;java.naming.referral = follow&apos; again is important here.&lt;/p&gt;&lt;p&gt;To lookup the external resource from your application you can use the either a annotation:&lt;/p&gt;&lt;pre&gt;@Resource(name = &amp;quot;you-custom-resource-name&amp;quot;)
private DirContext ldapConn; &lt;br /&gt;&lt;/pre&gt;&lt;p&gt;You can also do a programatic lookup like this:&lt;/p&gt;&lt;pre&gt;Context initCtx = new InitialContext();&lt;br /&gt;ldapCtx = (LdapContext) initCtx.lookup(&amp;quot;you-custom-resource-name&amp;quot;);&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>http://www.imixs.org/roller/ralphsjavablog/entry/jsf_2_0_ajax_suggestion</id>
        <title type="html">JSF 2.0 - Ajax Suggestion Box</title>
        <author><name>Ralph</name></author>
        <link rel="alternate" type="text/html" href="http://www.imixs.org/roller/ralphsjavablog/entry/jsf_2_0_ajax_suggestion"/>
        <published>2012-10-04T22:09:41+02:00</published>
        <updated>2012-10-06T19:40:32+02:00</updated> 
        <category term="/General" label="General" />
        <category term="render=text" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">Since JSF 2.0 has introduced the ajax support it is quite simple to implement functional widgets like a suggestion input box. The following short tutorial shows how to build your own suggestion widget using JSF 2.0 and it&apos;s ajax capabilities.&amp;nbsp;</summary>
        <content type="html">&lt;p&gt;
Since JSF 2.0 has introduced the ajax support it is quite simple to implement functional widgets like a suggestion input box. The following short tutorial shows how to build your own suggestion widget using JSF 2.0 and it&apos;s ajax capabilities.&amp;nbsp;&lt;/p&gt;&lt;h2&gt; 1. The html form&lt;/h2&gt;&lt;p&gt;First you need a simple input field where the user can type in a search phrase. This can be done wit the h:inputText element. After the user typed in some character a suggestion widget should start a backend search and provide the user with a list of suggestions (you can see this behaviour when searching for something on google.com). To connect your inputText element with a backend component you can use the new build-in ajax feature provided by JSF 2.0. So your input element looks something like this: &lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&amp;lt;h:panelGroup layout=&amp;quot;block&amp;quot; style=&amp;quot;margin-bottom:5px;&amp;quot;&amp;gt;&lt;br /&gt;     &amp;lt;h:inputText value=&amp;quot;#{suggestController.input}&amp;quot; class=&amp;quot;suggestinput&amp;quot;&amp;gt;&lt;br /&gt;        &amp;lt;f:ajax event=&amp;quot;keyup&amp;quot;  render=&amp;quot;suggest_box&amp;quot; /&amp;gt; &lt;br /&gt;     &amp;lt;/h:inputText&amp;gt;&lt;br /&gt;&amp;lt;/h:panelGroup&amp;gt; &lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;2. Define the suggest box &lt;/h2&gt;&lt;p&gt;With the &apos;render&apos; attribute of the f:ajax tag you specify which part of 
your page should be rerendered after the ajax event was fired. In this case an element with the ID &apos;suggest_box&apos; will be updated. This is the part where you can display the results of your backend search:&lt;/p&gt;&lt;pre&gt;&amp;lt;h:panelGroup id=&amp;quot;suggest_box&amp;quot;&amp;gt;&lt;br /&gt;	&amp;lt;ul&amp;gt;&lt;br /&gt;		&amp;lt;ui:repeat var=&amp;quot;entry&amp;quot; value=&amp;quot;#{suggestController.result}&amp;quot;&amp;gt;&lt;br /&gt;			&amp;lt;li&amp;gt;#{entry}&amp;lt;/li&amp;gt;&lt;br /&gt;		&amp;lt;/ui:repeat&amp;gt;&lt;br /&gt;	&amp;lt;/ul&amp;gt;&lt;br /&gt;&amp;lt;/h:panelGroup&amp;gt; &lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;To bind you backend component (suggestController) to the event just use the listener tag: &lt;/p&gt;&lt;pre&gt;&amp;nbsp;&amp;lt;f:ajax event=&amp;quot;keyup&amp;quot; render=&amp;quot;suggest_box&amp;quot;&lt;br /&gt;	listener=&amp;quot;#{suggestController.search}&amp;quot; &amp;gt;&lt;br /&gt;&amp;lt;/f:ajax&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;Your suggest controller implementation can look like this:&lt;/p&gt;&lt;pre&gt;....&lt;br /&gt;public void search(AjaxBehaviorEvent event) {&lt;br /&gt;	....&lt;br /&gt;	result=new ArrayList&amp;lt;String&amp;gt;();&lt;br /&gt;	....&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public List&amp;lt;String&amp;gt; getResult() {&lt;br /&gt;	return result;&lt;br /&gt;} &lt;br /&gt;&lt;/pre&gt;&lt;p&gt;If you are working with EL 2.2 support (GlassFish 3.1) you can also pass params as method arguments:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&amp;lt;f:ajax event=&amp;quot;keyup&amp;quot; render=&amp;quot;suggest_box&amp;quot;&lt;br /&gt;	listener=&amp;quot;#{suggestController.search(&apos;abc&apos;)}&amp;quot; &amp;gt;&lt;br /&gt;&amp;lt;/f:ajax&amp;gt;&lt;br /&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;public void search(String param) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; ..&lt;br /&gt;} &lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h2&gt;3) Layout&lt;/h2&gt;&lt;p&gt;Now you can do some layout stuff. Typically the suggestion box should only be displayed with a user typed in a search phrase. And the suggestion box should hidden if the focus is lost. This can be done with some css definition:&lt;/p&gt;&lt;pre&gt;.suggestbox {&lt;br /&gt;	position: relative;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;.suggestbox .resultlist {&lt;br /&gt;	display: block;&lt;br /&gt;	position: absolute;&lt;br /&gt;	z-index: 1;&lt;br /&gt;	left: 2px;&lt;br /&gt;	top: 22px;&lt;br /&gt;	border: 1px solid #CCC;&lt;br /&gt;	background-color: #EEE;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;To hide the resultlist you can use the f:ajax event &apos;blur&apos;&lt;/p&gt;&lt;pre&gt;&amp;nbsp;&amp;lt;f:ajax event=&amp;quot;blur&amp;quot; render=&amp;quot;suggest_box&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;listener=&amp;quot;#{suggestController.reset}&amp;quot; /&amp;gt;&lt;/pre&gt;&lt;p&gt;The listener is bound to a backend method which resets the result list. So you can display the complete box in order of the current result. This is the complete code:&lt;/p&gt;&lt;h3&gt;JSF Code: &lt;br /&gt;&lt;/h3&gt;&lt;pre&gt;&amp;lt;h:panelGroup layout=&amp;quot;block&amp;quot; class=&amp;quot;suggestbox&amp;quot;&amp;gt;&lt;br /&gt;	&amp;lt;!-- Process references --&amp;gt;&lt;br /&gt;	&amp;lt;h:panelGroup layout=&amp;quot;block&amp;quot; style=&amp;quot;margin-bottom:5px;&amp;quot;&amp;gt;&lt;br /&gt;		&amp;lt;h:inputText value=&amp;quot;#{suggestController.input}&amp;quot; class=&amp;quot;suggestinput&amp;quot;&amp;gt;&lt;br /&gt;			&amp;lt;f:ajax event=&amp;quot;keyup&amp;quot; render=&amp;quot;suggest_box&amp;quot;&lt;br /&gt;				listener=&amp;quot;#{suggestController.search(&apos;&apos;)}&amp;quot; /&amp;gt;&lt;br /&gt;			&amp;lt;f:ajax event=&amp;quot;blur&amp;quot; render=&amp;quot;suggest_box&amp;quot;&lt;br /&gt;				listener=&amp;quot;#{suggestController.reset}&amp;quot; /&amp;gt;&lt;br /&gt;		&amp;lt;/h:inputText&amp;gt;&lt;br /&gt;	&amp;lt;/h:panelGroup&amp;gt;&lt;br /&gt;	&amp;lt;h:panelGroup id=&amp;quot;suggest_box&amp;quot;&amp;gt;&lt;br /&gt;		&amp;lt;h:panelGroup id=&amp;quot;suggest_resultlist&amp;quot; class=&amp;quot;resultlist&amp;quot;&lt;br /&gt;			rendered=&amp;quot;#{! empty suggestController.result}&amp;quot;&amp;gt;&lt;br /&gt;			&amp;lt;ul&amp;gt;&lt;br /&gt;				&amp;lt;ui:repeat var=&amp;quot;entry&amp;quot; value=&amp;quot;#{suggestController.result}&amp;quot;&amp;gt;&lt;br /&gt;					&amp;lt;li&amp;gt;#{entry}&amp;lt;/li&amp;gt;&lt;br /&gt;				&amp;lt;/ui:repeat&amp;gt;&lt;br /&gt;			&amp;lt;/ul&amp;gt;&lt;br /&gt;		&amp;lt;/h:panelGroup&amp;gt;&lt;br /&gt;	&amp;lt;/h:panelGroup&amp;gt;&lt;br /&gt;&amp;lt;/h:panelGroup&amp;gt; &lt;br /&gt;&lt;/pre&gt;&lt;h3&gt;&amp;nbsp;SuggestController:&lt;/h3&gt;&lt;pre&gt;@Named(&amp;quot;suggestController&amp;quot;)&lt;br /&gt;@RequestScoped&lt;br /&gt;public class SuggestController implements Serializable {&lt;br /&gt;&lt;br /&gt;	private static final long serialVersionUID = 1L;&lt;br /&gt;	private List&amp;lt;String&amp;gt; result=null;&lt;br /&gt;	private String query = null;&lt;br /&gt;	private String input =null;&lt;br /&gt;	&lt;br /&gt;	public SuggestController() {&lt;br /&gt;		super();&lt;br /&gt;		result = new ArrayList&amp;lt;String&amp;gt;();&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public String getQuery() {&lt;br /&gt;		return query;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void setQuery(String query) {&lt;br /&gt;		this.query = query;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public String getInput() {&lt;br /&gt;		return input;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void setInput(String input) {&lt;br /&gt;		this.input = input;&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;	public void reset(AjaxBehaviorEvent event) {&lt;br /&gt;		 result=new ArrayList&amp;lt;String&amp;gt;();&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;	public void search(String query) {&lt;br /&gt;    	result=new ArrayList&amp;lt;String&amp;gt;();&lt;br /&gt;		result.add(&amp;quot;Hallo &amp;quot;  + System.currentTimeMillis());&lt;br /&gt;		result.add(&amp;quot;World &amp;quot;+ + System.currentTimeMillis());&lt;br /&gt;&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;	public List&amp;lt;String&amp;gt; getResult() {&lt;br /&gt;		return result;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt; 4) Delay ajax events&lt;/h2&gt;&lt;p&gt;Maybe you run into a problem with the onblur ajax call to hide your overlay section. If the section contains h:command links or buttons the action and actionListeners will not be called because the ajax blur event hides the overlay to early. &lt;/p&gt;&lt;p&gt;With a &lt;a href=&quot;http://stackoverflow.com/questions/12677179/delay-a-jsf-ajax-listener-for-checkbox-group&quot; target=&quot;_blank&quot;&gt;trick from BalusC&lt;/a&gt; you can delay the blur event a little bit. So just add the following jQuery code into your page:&lt;/p&gt;&lt;pre&gt;$(document).ready(function() {&lt;br /&gt;	$(&amp;quot;.suggestinput&amp;quot;).each(function(index, input) {&lt;br /&gt;	    var onblur = input.onblur;&lt;br /&gt;	    input.onblur = null;&lt;br /&gt;	&lt;br /&gt;	    $(input).on(&amp;quot;blur&amp;quot;, function(event) {&lt;br /&gt;	        delay(function() { onblur.call(input, event); }, 300);&lt;br /&gt;	    });&lt;br /&gt;	    // turn autocomplete of&lt;br /&gt;	    $(this).attr(&apos;autocomplete&apos;,&apos;off&apos;);&lt;br /&gt;	});&lt;br /&gt;&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;var delay = (function() {&lt;br /&gt;    var timer = 0;&lt;br /&gt;&lt;br /&gt;    return function(callback, timeout) {&lt;br /&gt;        clearTimeout(timer);&lt;br /&gt;        timer = setTimeout(callback, timeout);&lt;br /&gt;    };&lt;br /&gt;})(); &lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>http://www.imixs.org/roller/ralphsjavablog/entry/speedup_eclipse_juno</id>
        <title type="html">Speedup Eclipse Juno</title>
        <author><name>Ralph</name></author>
        <link rel="alternate" type="text/html" href="http://www.imixs.org/roller/ralphsjavablog/entry/speedup_eclipse_juno"/>
        <published>2012-09-19T19:02:03+02:00</published>
        <updated>2012-09-19T19:02:04+02:00</updated> 
        <category term="/General" label="General" />
        <category term="juno" scheme="http://roller.apache.org/ns/tags/" />
        <category term="eclipse" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;To my mind, the new Eclipse release 4.2 (Juno) is a little bit slower than Eclipse Indego.&lt;/p&gt;&lt;p&gt; To make it faster I changed the following things:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;disable validators&lt;br /&gt;I disabled all Validators until &apos;Classpath Dependency Validator&apos;, &apos;Facelet HTML Vlvalidator&apos; and &apos;HTML Syntax Validator&apos;&lt;/li&gt;&lt;li&gt;disable maven index update&lt;br /&gt;I disabled also the maven plugin feature &apos;Download repository index updates on startup&apos;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>http://www.imixs.org/roller/ralphsjavablog/entry/jee6_and_packaging_an_ear1</id>
        <title type="html">JEE6 and packaging an ear - part II</title>
        <author><name>Ralph</name></author>
        <link rel="alternate" type="text/html" href="http://www.imixs.org/roller/ralphsjavablog/entry/jee6_and_packaging_an_ear1"/>
        <published>2012-09-18T23:02:57+02:00</published>
        <updated>2013-02-16T14:21:31+01:00</updated> 
        <category term="/General" label="General" />
        <category term="deployment" scheme="http://roller.apache.org/ns/tags/" />
        <category term="glassfish" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">&lt;p&gt;As I explained in my previous blog entry about &lt;a href=&quot;http://www.imixs.org/roller/ralphsjavablog/entry/jee6_and_packaging_an_ear&quot;&gt;JEE6 ear packaging&lt;/a&gt;, there is a flexible and powerful way to deploy EARs containing JEE component libraries. &amp;nbsp;&lt;/p&gt;&lt;p&gt;Using
 maven makes it much easy to build such ear deployment units. The 
interessting part of the pom.xml of the ear module looks something like 
this....&lt;/p&gt;</summary>
        <content type="html">&lt;p&gt;As I explained in my previous blog entry about &lt;a href=&quot;http://www.imixs.org/roller/ralphsjavablog/entry/jee6_and_packaging_an_ear&quot;&gt;JEE6 ear packaging&lt;/a&gt;, there is a flexible and powerful way to deploy EARs containing JEE component libraries. &amp;nbsp;&lt;/p&gt;&lt;p&gt;Using maven makes it much easy to build such ear deployment units. The interessting part of the pom.xml of the ear module looks something like this:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;pre&gt;&amp;lt;build&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;plugins&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;plugin&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;groupId&amp;gt;org.apache.maven.plugins&amp;lt;/groupId&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;artifactId&amp;gt;maven-ear-plugin&amp;lt;/artifactId&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;version&amp;gt;2.6&amp;lt;/version&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;configuration&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;version&amp;gt;6&amp;lt;/version&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;modules&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;webModule&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;groupId&amp;gt;myweb&amp;lt;/groupId&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;artifactId&amp;gt;imixs-web&amp;lt;/artifactId&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;contextRoot&amp;gt;/test&amp;lt;/contextRoot&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/webModule&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ejbModule&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;groupId&amp;gt;myejb&amp;lt;/groupId&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;artifactId&amp;gt;imixs-ejb&amp;lt;/artifactId&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ejbModule&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;JarModule&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;groupId&amp;gt;org.imixs.workflow&amp;lt;/groupId&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;artifactId&amp;gt;imixs-workflow-engine&amp;lt;/artifactId&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bundleDir&amp;gt;/&amp;lt;/bundleDir&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/JarModule&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/modules&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/configuration&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/plugin&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/plugins&amp;gt;&lt;br /&gt; ....&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;In this example the artefact &apos;imixs-workflow-engine&apos; is a component library containingg EJBs. You can refere to those libraries from your ejb module (in this example &apos;myejb&apos;) by using the &apos;manifestEntries&apos; tag in your maven ejb module configuration. This is what I explained &lt;a href=&quot;http://www.imixs.org/roller/ralphsjavablog/entry/jee6_and_packaging_an_ear&quot;&gt;here&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;But what if you need some more additional external libraries containing non-jee-components (simple pojo&apos;s like for example apache commons-xx.jars) ?&lt;/p&gt;&lt;p&gt;You can add those dependencies to your ear pom.xml - so these jars will also become part of the ear root directory. But now you need to add them again to the manifest file of your ejb module if you need access to these libraries. And this will result in a strange situation because indirect dependencies will make it impossible for you to manage your manifest file manually.&amp;nbsp;&lt;/p&gt;&lt;p&gt; I run in this situation when a need the apache fop-1.0 library in one of my ejb components. &lt;/p&gt;&lt;p&gt;But the solution is again quite simple when using maven and the ear-plugin. The plugin provides a configuration tag named &apos;defaultLibBundleDir&apos;. And you simply need to the the value to &apos;lib&apos; to get all your libraries moved in the default lib directory of an ear:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&amp;lt;plugin&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;groupId&amp;gt;org.apache.maven.plugins&amp;lt;/groupId&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;artifactId&amp;gt;maven-ear-plugin&amp;lt;/artifactId&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;version&amp;gt;2.6&amp;lt;/version&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;configuration&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;version&amp;gt;6&amp;lt;/version&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;defaultLibBundleDir&amp;gt;lib&amp;lt;/defaultLibBundleDir&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;modules&amp;gt; &lt;br /&gt;         .....&lt;br /&gt;  ....&lt;br /&gt;&amp;lt;/plugin&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;But you need to be careful because also your jee-component libraries will be moved into that location if you did not overwrite the default behaviour now.&amp;nbsp; You can do this by declaring each of your jee component libraries as a &apos;JarModule&apos; where you specifiy the &apos;bundleDir&apos; with &apos;/&apos;:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;....&lt;br /&gt;&amp;lt;module&amp;gt;&lt;br /&gt; ....&lt;br /&gt;  &amp;lt;JarModule&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;groupId&amp;gt;org.imixs.workflow&amp;lt;/groupId&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;artifactId&amp;gt;imixs-workflow-core&amp;lt;/artifactId&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bundleDir&amp;gt;/&amp;lt;/bundleDir&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/JarModule&amp;gt;&lt;br /&gt;&amp;lt;/module&amp;gt;&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;This will result in a ear structure where your own jee-components will become part of the root of your ear, and all other library dependencies will be moved to the /lib directory of your ear. So any libary can be seen from your ejb, web and component modules. And you jee-component.jars will still be parsed for JEE annotations during deployment.&lt;/p&gt;&lt;p&gt;I hope this helps you to build you own custom enterprise applications using all the strength of JEE.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>http://www.imixs.org/roller/ralphsjavablog/entry/jsf_2_0_action_event</id>
        <title type="html">JSF 2.0 - Action event model</title>
        <author><name>Ralph</name></author>
        <link rel="alternate" type="text/html" href="http://www.imixs.org/roller/ralphsjavablog/entry/jsf_2_0_action_event"/>
        <published>2012-07-29T23:51:23+02:00</published>
        <updated>2012-07-29T23:52:38+02:00</updated> 
        <category term="/General" label="General" />
        <category term="jsf" scheme="http://roller.apache.org/ns/tags/" />
        <category term="cdi" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;If you are working with JSF 2.0 there are different ways to interact with backend methods and passing params to action methods. A useful link for this topic can also seen &lt;a href=&quot;http://www.mkyong.com/jsf2/4-ways-to-pass-parameter-from-jsf-page-to-backing-bean/&quot;&gt;here&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;&lt;p&gt;So for example if you have a JSF page with the following command link you use different ways to bound your backing bean:&lt;/p&gt;&lt;pre&gt;&amp;lt;h:commandLink action=&amp;quot;#{workflowController.editAction(workitem)}&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; actionListener=&amp;quot;#{workflowController.doEdit}&amp;quot;&amp;gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h:outputText value=&amp;quot;click me&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;       &amp;lt;f:setPropertyActionListener&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; target=&amp;quot;#{workflowController.workitem}&amp;quot; value=&amp;quot;#{workitem}&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/h:commandLink&amp;gt; &lt;br /&gt;&lt;/pre&gt;&lt;p&gt;The important thing here is the order which the jsf framework will trigger the differnt methods of the backingBean &apos;worklfowController&apos;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;The actionListener method will be called &lt;br /&gt;&lt;/li&gt;&lt;li&gt;The setPropertyActionListener will trigger the setter method of the property &apos;workitem&apos;&lt;/li&gt;&lt;li&gt;The action method with a custom param will be called&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&amp;nbsp;So in this case you backingBean can look something like this - note that there are two different ways to pass a param:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;pre&gt;&amp;nbsp;&amp;nbsp; // first the actionListener method will be called&amp;nbsp;&amp;nbsp; &lt;br /&gt;   public void doEdit(ActionEvent event) throws Exception {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // do something...&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; .....&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;   // next the setter for the property will be called&lt;br /&gt;&amp;nbsp;&amp;nbsp; public void setWorkitem(Data aworkitem) {&lt;br /&gt;        // do something&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   // last the action method will be called&lt;br /&gt;   public String editAction(String action) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // do something&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return action;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>http://www.imixs.org/roller/ralphsjavablog/entry/jsf_2_0_could_not</id>
        <title type="html">JSF 2.0 - could not find Factory...</title>
        <author><name>Ralph</name></author>
        <link rel="alternate" type="text/html" href="http://www.imixs.org/roller/ralphsjavablog/entry/jsf_2_0_could_not"/>
        <published>2012-07-29T12:21:24+02:00</published>
        <updated>2012-07-29T12:22:42+02:00</updated> 
        <category term="/General" label="General" />
        <category term="jsf" scheme="http://roller.apache.org/ns/tags/" />
        <category term="2.0" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">Today I notice that when I deploy my JSF 2 webapp on GlassFish 3.1, i have this error :&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;To avoid this error message it you should add the listener &amp;quot;com.sun.faces.config.ConfigureListener&amp;quot; into the web.xml. &lt;br /&gt;But you will still see the error message again if your FacesServlet has the load-on-startup option &amp;quot;1&amp;quot;. &lt;br /&gt;This option will avoid that the ConfigureListern is loaded before the FacesServlet starts. &lt;br /&gt;&lt;br /&gt;So use the following setup for your web.xml file (3.0):&lt;/p&gt;&lt;pre&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;web-app xmlns=&amp;quot;http://java.sun.com/xml/ns/javaee&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;br /&gt;    xsi:schemaLocation=&amp;quot;http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd&amp;quot;&lt;br /&gt;    version=&amp;quot;3.0&amp;quot;&amp;gt;&lt;br /&gt;....&lt;br /&gt;    &amp;lt;!-- ============== Configuration Listener ============== --&amp;gt;&lt;br /&gt;    &amp;lt;!--&lt;br /&gt;      This ServletContextListener initializes the runtime environment&lt;br /&gt;      of the JavaServer Faces Reference Implementation when a web&lt;br /&gt;      application including it is initialized by the container.&lt;br /&gt;    --&amp;gt;&lt;br /&gt;     &amp;lt;listener&amp;gt;&lt;br /&gt;        &amp;lt;listener-class&amp;gt;&lt;br /&gt;            com.sun.faces.config.ConfigureListener&lt;br /&gt;        &amp;lt;/listener-class&amp;gt;&lt;br /&gt;    &amp;lt;/listener&amp;gt;&lt;br /&gt;....&lt;br /&gt;&amp;lt;!-- Facelets --&amp;gt;&lt;br /&gt;    &amp;lt;servlet&amp;gt;&lt;br /&gt;        &amp;lt;servlet-name&amp;gt;Faces Servlet&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;        &amp;lt;servlet-class&amp;gt;javax.faces.webapp.FacesServlet&amp;lt;/servlet-class&amp;gt;&lt;br /&gt;        &amp;lt;load-on-startup&amp;gt;0&amp;lt;/load-on-startup&amp;gt;&lt;br /&gt;    &amp;lt;/servlet&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;servlet-mapping&amp;gt;&lt;br /&gt;        &amp;lt;servlet-name&amp;gt;Faces Servlet&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;        &amp;lt;url-pattern&amp;gt;*.jsf&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;    &amp;lt;/servlet-mapping&amp;gt;&lt;br /&gt;    &amp;lt;servlet-mapping&amp;gt;&lt;br /&gt;        &amp;lt;servlet-name&amp;gt;Faces Servlet&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;        &amp;lt;url-pattern&amp;gt;*.xhtml&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;    &amp;lt;/servlet-mapping&amp;gt;&lt;br /&gt;......&lt;br /&gt;&lt;br /&gt;&amp;gt; &lt;br /&gt;&lt;/pre&gt;&lt;p&gt;It is important to set the load-on-startup setting to 0&lt;br /&gt;&lt;a href=&quot;%20http://stackoverflow.com/questions/7886035/could-not-find-factory-javax-faces-context-facescontextfactory%20&quot;&gt;See also further Information here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>http://www.imixs.org/roller/ralphsjavablog/entry/canging_from_managedbean_to_named</id>
        <title type="html">Canging from @ManagedBean to @Named @Inject</title>
        <author><name>Ralph</name></author>
        <link rel="alternate" type="text/html" href="http://www.imixs.org/roller/ralphsjavablog/entry/canging_from_managedbean_to_named"/>
        <published>2012-07-26T19:55:31+02:00</published>
        <updated>2012-07-26T20:15:10+02:00</updated> 
        <category term="/General" label="General" />
        <content type="html">&lt;p&gt;It take me a lot of time playing arround with right usage of the JSF 2.0 annotation @ManagedBean and the Java EE6 annotation @Named.&lt;/p&gt;&lt;p&gt;Both of them can do the same job. I think the @Name/@Inject variant is more powerfull. You can find a usefull link here:&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://weblogs.java.net/blog/cayhorstmann/archive/2009/12/23/javaxfacesbeanmanagedbean-dead-arrival&quot;&gt;http://weblogs.java.net/blog/cayhorstmann/archive/2009/12/23/javaxfacesbeanmanagedbean-dead-arrival&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The main problem for me was that the @Named / @Inject annotation seems not to work. After a long time playing arround with different settings and a lot of frustrating error messages I found that the problem was not the annotation, but the internal state of my GlassFish server (weld implementation).&lt;/p&gt;&lt;p&gt;When you have deployed an application which makes use of the @ManagedBean annotation and you change this into @Named any further deployment will fail with a lot of error messages. The reason for all this seems to be an internal state of the web container not allowing deploying/undeploying the same bean in a different context. &lt;/p&gt;&lt;p&gt;To get things working well it is important that you first undeploy your application using the @ManagedBean, then restart GlassFish and then deploy the new application using the @Named annotation.&lt;/p&gt;&lt;p&gt;Overall if you are working with manged beans and using the @Named, and @Inject annotation take care about the following things:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Your manage bean should implement the Serializable interface&lt;/li&gt;&lt;li&gt;Use the javax.enterprise.context (e.g. javax.enterprise.context.SessionScoped) not ! the javax.faces.bean.SessionScoped&lt;/li&gt;&lt;li&gt;If you @Inject beans take care about providing setter and getter methods for your injected managed Bean&lt;/li&gt;&lt;li&gt;Provide an empty /imixsworkflow/beans.xml file!&lt;/li&gt;&lt;li&gt;Provide an empty faces-config.xml file&lt;/li&gt;&lt;li&gt;Provide a default constructor&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;When you undeploy the old application and shutdown your GlassFish check also the application directory&lt;/p&gt;&lt;pre&gt;/GLASSFISH_DOMAIN/applications &lt;br /&gt;&lt;/pre&gt;&lt;p&gt;for any old application artefacts.&lt;br /&gt;&lt;br /&gt;
&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>http://www.imixs.org/roller/ralphsjavablog/entry/eclipse_juno_maven_support</id>
        <title type="html">Eclipse Juno - Maven support</title>
        <author><name>Ralph</name></author>
        <link rel="alternate" type="text/html" href="http://www.imixs.org/roller/ralphsjavablog/entry/eclipse_juno_maven_support"/>
        <published>2012-07-22T18:09:29+02:00</published>
        <updated>2012-07-22T18:09:29+02:00</updated> 
        <category term="/General" label="General" />
        <category term="eclipse" scheme="http://roller.apache.org/ns/tags/" />
        <category term="juno" scheme="http://roller.apache.org/ns/tags/" />
        <category term="maven" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;The new Eclipse build 4.2 (Eclipse Juno) is out and I started using it for my own Maven based Java EE projects. After playing around with several plugins concerning the maven integration, I came to the conclusion that the Maven-WTP integration in Eclipse is still something you did not need and you should not use. It slows down my complete workspace containing different multi-module maven projects. Maybe its only my IDE installation of Eclipse 4.2, but I recognised a permanent CPU peak as result of a never ending WTP Builder process. After I removed the &amp;quot;Maven Integration for WTP&amp;quot; Eclipse Juno works again very fast.&lt;/p&gt;&lt;p&gt;So here is my recommendation for plugins that you should install in Eclipse 4.2 (Classic) if you are developing Maven based Java EE projects:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;JavaServer Faces Tools (JSF) Project (for JSF/Faclets support - much better than in Eclipse 3.7)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;JST Server Adapters (for GlassFish Server Adapters - &lt;a href=&quot;http://www-02.imixs.com/roller/ralphsjavablog/entry/eclipse_juno_jts_glassfish&quot;&gt;see also my blog about GlassFish 3.2 support&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;m2e - Maven Integration for Eclipse (the general and pure maven integration)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Subversive Integration for the M2Eclipse Project (necessary if you work with SVN - &lt;a href=&quot;http://www-02.imixs.com/roller/ralphsjavablog/entry/eclipse_juno_maven_subversion&quot;&gt;see another blog entry&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;And do not install the &amp;quot;Maven Integration for WTP&amp;quot; plugin.&lt;/p&gt;&lt;p&gt;If you are looking for a simple Hotdeployment Plugin for Eclipse/GlassFish take a look at &lt;a href=&quot;http://code.google.com/p/manik-hot-deploy/&quot;&gt;Manik hot-deploy&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>http://www.imixs.org/roller/ralphsjavablog/entry/why_is_my_jsf_2</id>
        <title type="html">Why is my JSF 2.0 managed Bean not working....</title>
        <author><name>Ralph</name></author>
        <link rel="alternate" type="text/html" href="http://www.imixs.org/roller/ralphsjavablog/entry/why_is_my_jsf_2"/>
        <published>2012-07-22T09:45:36+02:00</published>
        <updated>2012-07-22T14:22:11+02:00</updated> 
        <category term="/General" label="General" />
        <content type="html">&lt;p&gt;Today I run again into a problem when a managed bean was not working in my new JSF 2.0 application. I added the bean into a page element using expression language.&amp;nbsp;&lt;/p&gt;&lt;pre&gt;&amp;lt;h2&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;h:outputText value=&amp;quot;#{loginMB.remoteUser}&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/h2&amp;gt; &lt;br /&gt;&lt;/pre&gt;&lt;p&gt;But my bean was never called. The special part is that in my case the loginMB is part of an jar which was added as a library into the web module. The bean itself is annotated as followed:&lt;/p&gt;&lt;pre&gt;import javax.faces.bean.ManagedBean;&lt;br /&gt;import javax.faces.bean.SessionScoped;&lt;br /&gt;....&lt;br /&gt;@ManagedBean&lt;br /&gt;@SessionScoped&lt;br /&gt;public class LoginMB {&lt;br /&gt; ...&lt;br /&gt;} &lt;br /&gt;&lt;/pre&gt;&lt;p&gt;In this szenario it is necessary to add an empty faces-config.xml descriptor into the META-INF folder of the jar. Otherwise the bean will not be detected by the web container:&lt;/p&gt;&lt;pre&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;faces-config xmlns=&amp;quot;http://java.sun.com/xml/ns/javaee&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xsi:schemaLocation=&amp;quot;http://java.sun.com/xml/ns/javaee&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; version=&amp;quot;2.0&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;/faces-config&amp;gt; &lt;br /&gt;&lt;/pre&gt;&lt;p&gt;In different to the faces-config.xml file an empty bean.xml file is optional.&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;@ManagedProperty&lt;/h2&gt;&lt;p&gt;If your managed bean injects other manged beans uses the annotation @ManagedProperty&lt;/p&gt;&lt;pre&gt;&amp;nbsp;	@ManagedProperty(value = &amp;quot;#{loginMB}&amp;quot;)&lt;br /&gt;	private LoginMB loginMB = null;&lt;br /&gt;&lt;br /&gt;	public LoginMB getLoginMB() {&lt;br /&gt;		return loginMB;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void setLoginMB(LoginMB loginMB) {&lt;br /&gt;		this.loginMB = loginMB;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;In this case a setter and getter method for the field &apos;loginMB&apos; must be provided! &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>http://www.imixs.org/roller/ralphsjavablog/entry/eclipse_juno_jts_glassfish</id>
        <title type="html">Eclipse Juno - JST &amp; Glassfish</title>
        <author><name>Ralph</name></author>
        <link rel="alternate" type="text/html" href="http://www.imixs.org/roller/ralphsjavablog/entry/eclipse_juno_jts_glassfish"/>
        <published>2012-07-21T13:04:29+02:00</published>
        <updated>2012-07-21T13:05:24+02:00</updated> 
        <category term="/General" label="General" />
        <category term="jts" scheme="http://roller.apache.org/ns/tags/" />
        <category term="juno" scheme="http://roller.apache.org/ns/tags/" />
        <category term="glassfish" scheme="http://roller.apache.org/ns/tags/" />
        <category term="elcipse" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;The J2EE Server Tools providing a comfortable way to integrate the Java EE Servers (e.g. GlassFish) into the Eclipse IDE. For the latest release of Eclipse (4.2 - Juno) the integration is a little bit tricky.&amp;nbsp;&lt;/p&gt;&lt;p&gt;First you need to instal the JST plugin via menu &amp;quot;Help&amp;gt;install new Software&amp;quot; and search for &amp;quot;server&amp;quot;. Select the &amp;quot;JST Server Adapters&amp;quot; and install it.&lt;/p&gt;&lt;p&gt;Next you need to add a extra update site to install the latest GlassFish adapters. Add the followin Update Site URL:&lt;/p&gt;&lt;pre&gt;http://download.java.net/glassfish/eclipse/juno&lt;/pre&gt;&lt;p&gt;Read also the following blog from Vince Kreamer for deails:&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://blogs.oracle.com/vkraemer/entry/internal_3_1_2_runtime&quot;&gt;https://blogs.oracle.com/vkraemer/entry/internal_3_1_2_runtime&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>http://www.imixs.org/roller/ralphsjavablog/entry/eclipse_juno_maven_subversion</id>
        <title type="html">Eclipse Juno - Maven &amp; Subversion</title>
        <author><name>Ralph</name></author>
        <link rel="alternate" type="text/html" href="http://www.imixs.org/roller/ralphsjavablog/entry/eclipse_juno_maven_subversion"/>
        <published>2012-07-21T12:42:22+02:00</published>
        <updated>2012-07-21T12:42:22+02:00</updated> 
        <category term="/General" label="General" />
        <category term="maven" scheme="http://roller.apache.org/ns/tags/" />
        <category term="juno" scheme="http://roller.apache.org/ns/tags/" />
        <category term="eclipse" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;The new Eclipse release (4.2) is out and looks great! To run a first IDE test I tried to checkout some&amp;nbsp; maven projects from my svn repository. M2E and the Subversive Plugin are not installed in the Eclipse classic platform (can&apos;t understand why) but can be easily installed manually from the menu &amp;quot;-&amp;gt;Help-&amp;gt;install new Software&amp;quot;&lt;/p&gt;&lt;p&gt;After restarting Eclipse you can start importing your maven project with &amp;quot;-&amp;gt;File-&amp;gt;new-&amp;gt; project-&amp;gt;Checkout Maven Projects form SCM&amp;quot;&lt;/p&gt;&lt;p&gt;&amp;nbsp;The problem here is hat the SVN connector for m2e is missing and can not be installed by the dialog showing up all available maven add ons. To solve this problem go again to install new software manually and add the following update URL:&lt;/p&gt;&lt;pre&gt;http://community.polarion.com/projects/subversive/download/integrations/update-site/&amp;nbsp; &lt;/pre&gt;&lt;p&gt;This updatesite includes the missing svn/m2e connector. After a restart you can checkout your maven project from a SVN repository using the Eclispe subversive plugin.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>http://www.imixs.org/roller/ralphsjavablog/entry/jsf_2_0_and_the</id>
        <title type="html">JSF 2.0 and the xmlns:c</title>
        <author><name>Ralph</name></author>
        <link rel="alternate" type="text/html" href="http://www.imixs.org/roller/ralphsjavablog/entry/jsf_2_0_and_the"/>
        <published>2012-07-20T23:27:45+02:00</published>
        <updated>2012-07-20T23:29:34+02:00</updated> 
        <category term="/General" label="General" />
        <category term="jsf" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;If you are working with JSF 2.0 there is a important change concerning the JSF core tags (&amp;lt;c:....&amp;gt;). These tags will not work if you are using the following namespace declaration:&lt;/p&gt;&lt;pre&gt;&amp;lt;ui:composition xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:ui=&amp;quot;http://java.sun.com/jsf/facelets&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:f=&amp;quot;http://java.sun.com/jsf/core&amp;quot;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:c=&amp;quot;http://java.sun.com/jstl/core&amp;quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:h=&amp;quot;http://java.sun.com/jsf/html&amp;quot;&amp;gt;&lt;/pre&gt;&lt;p&gt;This works in JSF 1.2 but well, but did no longer work in JSF 2.0. The reason is that the namespace uri for the jstl/core has changed. Use the following namespace definition if you are working with jsf 2.0&amp;nbsp; &lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&amp;lt;ui:composition xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:ui=&amp;quot;http://java.sun.com/jsf/facelets&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:f=&amp;quot;http://java.sun.com/jsf/core&amp;quot;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:c=&amp;quot;http://java.sun.com/jsp/jstl/core&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:h=&amp;quot;http://java.sun.com/jsf/html&amp;quot;&amp;gt;&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;</content>
    </entry>
    <entry>
        <id>http://www.imixs.org/roller/ralphsjavablog/entry/glassfish_3_1_x_cdiextension</id>
        <title type="html">Glassfish - 3.1.x - CDIExtension not found</title>
        <author><name>Ralph</name></author>
        <link rel="alternate" type="text/html" href="http://www.imixs.org/roller/ralphsjavablog/entry/glassfish_3_1_x_cdiextension"/>
        <published>2012-07-20T23:04:56+02:00</published>
        <updated>2012-07-20T23:05:59+02:00</updated> 
        <category term="/General" label="General" />
        <category term="glassfish" scheme="http://roller.apache.org/ns/tags/" />
        <category term="cdi" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;Today I run into a problem when trying to deploy a EAR with more than one web modules using CDI. Deploying such a EAR on Glassfish 3.1.1 or 3.1.2 will fail with the following exception:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;Root exception is javax.naming.NameNotFoundException: CDIExtension not found&lt;/pre&gt;&lt;p&gt;As you can read in this posting this is a known bug. &lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.java.net/forum/topic/glassfish/glassfish/gf-311-jdk1716-linux-64bit-application-running-windows-7-does-not-deploy-linux&quot;&gt;http://www.java.net/forum/topic/glassfish/glassfish/gf-311-jdk1716-linux-64bit-application-running-windows-7-does-not-deploy-linux&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://java.net/jira/browse/JERSEY-601&quot;&gt;http://java.net/jira/browse/JERSEY-601&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;You can solve the problem when setting the system-property &amp;quot;com.sun.jersey.server.impl.cdi.lookupExtensionInBeanManager=true&amp;quot;.&lt;/p&gt;&lt;p&gt;This can be done from the GlassFish server console. &lt;/p&gt;&lt;ul&gt;&lt;li&gt; Select the node -&amp;gt;Configuration-&amp;gt;server-config-&amp;gt;JVM Settings&lt;/li&gt;&lt;li&gt;change to the tab &apos;JVM Options&apos;&lt;/li&gt;&lt;li&gt;add a new entry &lt;br /&gt;&lt;pre&gt;-Dcom.sun.jersey.server.impl.cdi.lookupExtensionInBeanManager=true&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;restart your server&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;This will solve the deployment problem.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;

&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>http://www.imixs.org/roller/ralphsjavablog/entry/rest_service_and_the_httpservletrequest</id>
        <title type="html">Rest Service and the HttpServletRequest</title>
        <author><name>Ralph</name></author>
        <link rel="alternate" type="text/html" href="http://www.imixs.org/roller/ralphsjavablog/entry/rest_service_and_the_httpservletrequest"/>
        <published>2012-05-27T12:16:40+02:00</published>
        <updated>2012-05-27T12:17:52+02:00</updated> 
        <category term="/General" label="General" />
        <content type="html">&lt;p&gt;Today I got a strange problem with my REST service which needs a HttpServletRequest object to perform the RemoteUser name.&amp;nbsp;&lt;/p&gt;&lt;p&gt;First I injected the HttpServletRequest as a field into my RestService-Class&lt;/p&gt;&lt;pre&gt;....&lt;br /&gt;@Path(&amp;quot;/&amp;quot;)&lt;br /&gt;@Produces({ &amp;quot;text/html&amp;quot;, &amp;quot;application/xml&amp;quot;, &amp;quot;application/json&amp;quot; })&lt;br /&gt;@Stateless&lt;br /&gt;public class SystemRestService {&lt;br /&gt; ...   &lt;br /&gt;	@javax.ws.rs.core.Context&lt;br /&gt;	private static HttpServletRequest servletRequest;&lt;br /&gt;.....&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;This works fine on my local glassfish server 3.1.1. But after I deployed this into my productive environment (glassfish 3.1) the field &apos;servletRequest&apos; was always null.&lt;/p&gt;&lt;p&gt;The problem here is that injecting the HttpServletRequest into an instance field can become very soon stale. The solution is to annotating a method parameter to assure that the request object is obtained in connection to processing a request. &lt;/p&gt;&lt;pre&gt;...&amp;nbsp;	&lt;br /&gt;@GET&lt;br /&gt;	@Path(&amp;quot;/profile.json&amp;quot;)&lt;br /&gt;	@Produces(&amp;quot;application/json&amp;quot;)&lt;br /&gt;	public String getUserByID(@QueryParam(&amp;quot;uid&amp;quot;) String user,&lt;br /&gt;			@QueryParam(&amp;quot;items&amp;quot;) String items,@Context HttpServletRequest servletRequest) {&lt;br /&gt;.....&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;See also this discussion on the coderanch:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.coderanch.com/t/510941/Web-Services/java/Print-Client-IP#2649412&quot;&gt;http://www.coderanch.com/t/510941/Web-Services/java/Print-Client-IP#2649412&lt;/a&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>http://www.imixs.org/roller/ralphsjavablog/entry/junit_and_glassfish_3_1</id>
        <title type="html">JUnit and Glassfish 3.1.1 - Remote EJB tests</title>
        <author><name>Ralph</name></author>
        <link rel="alternate" type="text/html" href="http://www.imixs.org/roller/ralphsjavablog/entry/junit_and_glassfish_3_1"/>
        <published>2012-05-16T23:08:20+02:00</published>
        <updated>2012-05-17T12:57:03+02:00</updated> 
        <category term="/General" label="General" />
        <content type="html">&lt;p&gt;Trying to run a JUnit Test with remote EJB lookups from a GlassFish server 3.1.1 it is a little bit tricky. It seems to me that it is not possible to get the maven dependencies working. The gf_client.jar can not be included using a dependency, although the artefact can be located using the glassfish repository from java.net :&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .....&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Glassfish --&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;lt;repository&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;id&amp;gt;glassfish-repository&amp;lt;/id&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;Java.net &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Repository for Glassfish&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;url&amp;gt;http://download.java.net/maven/glassfish&amp;lt;/url&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;lt;/repository&amp;gt;&lt;br /&gt;.....&lt;/pre&gt;&lt;p&gt;..and adding a dependecy:&lt;/p&gt;&lt;pre&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;br /&gt; &amp;nbsp;&amp;nbsp; &amp;lt;dependency&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;groupId&amp;gt;org.glassfish.appclient&amp;lt;/groupId&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;artifactId&amp;gt;gf-client&amp;lt;/artifactId&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;version&amp;gt;3.1.1&amp;lt;/version&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/dependency&amp;gt;&lt;br /&gt;....&lt;/pre&gt;&lt;p&gt;But after all this wont work for me. So the best way is to add the gf_client.jar directly into your classpath.&lt;/p&gt;&lt;p&gt;The gf_client.jar is located in your Glassfish Installation at &lt;/p&gt;&lt;p&gt;&lt;span style=&quot;margin: 0px; padding: 0px; color: rgb(0, 0, 0); font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; background-color: rgb(255, 255, 255); font-family: &apos;Courier New&apos;,Courier,monospace;&quot;&gt;$GLASSFISH_HOME/glassfish/lib/gf-client.jar&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; Now you can write a JUnit test with a remot ejb lookup. See the following example for a remote lookup to Imixs Entity Service &lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&amp;nbsp;public class TestEntityService {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;EntityServiceRemote entityService = null;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;@Before&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;public void setup() {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;try {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// set jndi name&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;String ejbName = &amp;quot;java:global/imixs-workflow-web-sample-0.0.5-SNAPSHOT/EntityService!org.imixs.workflow.jee.ejb.EntityServiceRemote&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;InitialContext ic = new InitialContext();&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;entityService = (EntityServiceRemote) ic.lookup(ejbName);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;} catch (Exception e) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;e.printStackTrace();&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;entityService = null;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;@Test&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;@Category(org.imixs.workflow.jee.ejb.EntityServiceRemote.class)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;public void testService() {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Assert.assertNotNull(entityService);&lt;br /&gt;        //....&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/pre&gt;&lt;p&gt;&lt;i&gt;&lt;b&gt;Note:&lt;/b&gt;&lt;/i&gt; To run this JUnit test you have to first deploy your test application. After that you junit test can be run.&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;Testing secured EJBs&lt;/h2&gt;&lt;p&gt;If your remote ejb is annotated with the security annotation @RolesAllowed you need to authenticate your remote lookup.&lt;/p&gt;&lt;p&gt;In GlassFish this can be done using the programmatic Login. To setup a programmatic login in your JUnit test first create a File named &apos;auth.conf&apos;. The content of that file should look like this:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;default {&amp;nbsp;&lt;br style=&quot;color: rgb(0, 0, 0); font-family: verdana,arial,helvetica,sans-serif; font-size: 11px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 18px; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; background-color: rgb(255, 255, 255);&quot; /&gt;com.sun.enterprise.security.auth.login.ClientPasswordLoginModule required debug=false;&amp;nbsp;&lt;br style=&quot;color: rgb(0, 0, 0); font-family: verdana,arial,helvetica,sans-serif; font-size: 11px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 18px; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; background-color: rgb(255, 255, 255);&quot; /&gt;};&lt;span style=&quot;color: rgb(0, 0, 0); font-family: verdana,arial,helvetica,sans-serif; font-size: 11px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 18px; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; background-color: rgb(255, 255, 255); display: inline ! important; float: none;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;Now you can add the programmatic login into your test setup&amp;nbsp; &lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Before&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;public void setup() {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;try {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// set jndi name&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;String ejbName = &amp;quot;java:global/imixs-workflow-web-sample-0.0.5-SNAPSHOT/EntityService!org.imixs.workflow.jee.ejb.EntityServiceRemote&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// setup programmatic login for GlassFish 3&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.setProperty(&amp;quot;java.security.auth.login.config&amp;quot;, &amp;quot;/home/rsoika/eclipse_37/imixs-workflow/imixs-workflow-engine/src/test/resources/auth.conf&amp;quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ProgrammaticLogin programmaticLogin = new ProgrammaticLogin(); &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// set password&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;programmaticLogin.login(&amp;quot;Anna&amp;quot;, &amp;quot;anna&amp;quot;); &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;InitialContext ic = new InitialContext();&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;entityService = (EntityServiceRemote) ic.lookup(ejbName);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;} catch (Exception e) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;e.printStackTrace();&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;entityService = null;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/pre&gt;&lt;p&gt;&lt;b&gt;&lt;i&gt;Note:&lt;/i&gt;&lt;/b&gt; the username/password is defined in this case in a file realm which is the default security realm of my GlassFish &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Here are some helpful links:&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://glassfish.java.net/javaee5/ejb/EJB_FAQ.html#StandaloneRemoteEJB&quot;&gt;http://glassfish.java.net/javaee5/ejb/EJB_FAQ.html#StandaloneRemoteEJB&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.coderanch.com/t/476090/EJB-JEE/java/EJB-Realms-Remote-Clients&quot;&gt;http://www.coderanch.com/t/476090/EJB-JEE/java/EJB-Realms-Remote-Clients&lt;/a&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>http://www.imixs.org/roller/ralphsjavablog/entry/glassfish_heapsize_settings</id>
        <title type="html">GlassFish - HeapSize settings</title>
        <author><name>Ralph</name></author>
        <link rel="alternate" type="text/html" href="http://www.imixs.org/roller/ralphsjavablog/entry/glassfish_heapsize_settings"/>
        <published>2012-05-05T18:32:37+02:00</published>
        <updated>2012-05-05T18:32:37+02:00</updated> 
        <category term="/General" label="General" />
        <category term="glassfish" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;After playing around with some VM settings in my GlassFish 3.1.1 environment (development and productive) I came to a setup which brings up my glassfish server much faster. Here are my settings&amp;nbsp;&lt;/p&gt;&lt;h3&gt;Development (3GB RAM)&lt;/h3&gt;&lt;p&gt; -client&lt;br /&gt;
    -XX:+AggressiveHeap &lt;br /&gt;
    -Xmx1024m &lt;br /&gt;
    -Xms1024m &lt;br /&gt;
    -Xss128k&lt;br /&gt;
    -XX:+DisableExplicitGC&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;Productiv (4GB Ram)&lt;/h3&gt;&lt;p&gt; -server &lt;br /&gt;
    -XX:+AggressiveHeap &lt;br /&gt;
    -Xmx2048m &lt;br /&gt;
    -Xms2048m &lt;br /&gt;
    -Xss128k&lt;br /&gt;
    -XX:+DisableExplicitGC&lt;/p&gt;&lt;p&gt;Here is also a useful link for further performance settings:&lt;/p&gt;&lt;p&gt; &lt;a href=&quot;http://jfarcand.wordpress.com/2009/11/27/putting-glassfish-v3-in-production-essential-surviving-guide/&quot;&gt;http://jfarcand.wordpress.com/2009/11/27/putting-glassfish-v3-in-production-essential-surviving-guide/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>http://www.imixs.org/roller/ralphsjavablog/entry/glassfish_ejb_timer_service_not</id>
        <title type="html">GlassFish - EJB Timer Service not available</title>
        <author><name>Ralph</name></author>
        <link rel="alternate" type="text/html" href="http://www.imixs.org/roller/ralphsjavablog/entry/glassfish_ejb_timer_service_not"/>
        <published>2012-04-23T17:23:45+02:00</published>
        <updated>2012-04-23T17:24:55+02:00</updated> 
        <category term="/General" label="General" />
        <category term="glassfish" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;Today I had a situation where after a hardware crash my GlassFish Server did not work correctly. Specially the timer service did no longer work. The server log shows a lot of errors about&amp;nbsp;&lt;/p&gt;&lt;pre&gt;...EJB Timer Service not available&lt;/pre&gt;&lt;p&gt;In the easiest case the reason why the timer service did not start are old db.lck files.&lt;/p&gt;&lt;p&gt; You can check this by stopping the server and then look for any lock files in the domain folder&lt;/p&gt;&lt;pre&gt;../lib/databases/ejbtimer/ &lt;span style=&quot;font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 18px; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; display: inline ! important; float: none;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;After removing the files&lt;/p&gt;&lt;pre&gt;dbex.lck&amp;nbsp; &lt;br /&gt;db.lck&amp;nbsp; &lt;/pre&gt;&lt;p&gt;you can restart the server and every thing should work again.&lt;/p&gt;&lt;p&gt;See also the following thread if this did not work for you:&lt;/p&gt;&lt;p&gt; &lt;a href=&quot;http://forums.java.net/node/666385&quot;&gt;http://forums.java.net/node/666385&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>http://www.imixs.org/roller/ralphsjavablog/entry/character_encoding_de_de_on</id>
        <title type="html">Character encoding de_DE on Linux Debian</title>
        <author><name>Ralph</name></author>
        <link rel="alternate" type="text/html" href="http://www.imixs.org/roller/ralphsjavablog/entry/character_encoding_de_de_on"/>
        <published>2012-01-23T13:18:51+01:00</published>
        <updated>2012-01-23T13:21:55+01:00</updated> 
        <category term="/General" label="General" />
        <category term="debian" scheme="http://roller.apache.org/ns/tags/" />
        <category term="linux" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;On my debian server today I run into a problem with the encoding of XSL templates running on a GlassFish server. The problem was that German characters where not displayed correctly.&lt;/p&gt;&lt;p&gt;After a long time of searching, I figured out that the reason for that problem was not my MySQL database, nor my GlassFish installation. It was simply the missing German language support on my linux debian. &lt;/p&gt;&lt;p&gt;You can test the installed locales with the following command:&lt;/p&gt;&lt;pre&gt;locale -a&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;In my case only &apos;en_US.utf8&apos; was listed.&lt;/p&gt;&lt;p&gt;In debian you can simply add the german language support by changing the file /etc/locale.gen. Simply uncomment the lines:&lt;/p&gt;&lt;pre&gt;de_DE ISO-8859-1&lt;br /&gt;de_DE.UTF-8 UTF-8&lt;br /&gt;de_DE@euro ISO-8859-15&lt;/pre&gt;&lt;p&gt;and run the command:&lt;/p&gt;&lt;pre&gt;locale-gen&lt;/pre&gt;&lt;p&gt;After restarting my GlassFish server the xsl transformation works fine with german characters. &lt;/p&gt;&lt;p&gt;The command &amp;quot;locale -a&amp;quot; now displays the following locale:&lt;/p&gt;&lt;pre&gt;C&lt;br /&gt;de_DE&lt;br /&gt;de_DE@euro&lt;br /&gt;de_DE.iso88591&lt;br /&gt;de_DE.iso885915@euro&lt;br /&gt;de_DE.utf8&lt;br /&gt;deutsch&lt;br /&gt;en_US.utf8&lt;br /&gt;german&lt;br /&gt;POSIX&lt;/pre&gt;&lt;p&gt;&amp;nbsp; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>http://www.imixs.org/roller/ralphsjavablog/entry/eclipse_and_gnome_shell</id>
        <title type="html">Eclipse and Gnome Shell</title>
        <author><name>Ralph</name></author>
        <link rel="alternate" type="text/html" href="http://www.imixs.org/roller/ralphsjavablog/entry/eclipse_and_gnome_shell"/>
        <published>2012-01-12T19:23:59+01:00</published>
        <updated>2012-01-12T19:47:55+01:00</updated> 
        <category term="/General" label="General" />
        <category term="eclipse" scheme="http://roller.apache.org/ns/tags/" />
        <category term="gnome" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;Today I stumbled into a problem with my eclipse IDE running in Ubuntu 11.04 with Gnome shell. When trying to run the BIRT plugin with external XML resources the popup dialog prompting for username/password did no longer appear and I got a http error message 401. I think similar problems can also appear with other plugins in eclipse or eclipse based applications.&lt;/p&gt;&lt;p&gt;To solve such a problem it is necessary to provide a customized startup script. To create such a script change into the folder were your eclipse is installed and create a new file named &apos;eclipse_gnome&apos;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Next make it executable by running the command&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;chmod +x ~/eclipse_gnome&lt;/pre&gt;&lt;p&gt;Now edit the file with the following lines of code&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;#!/bin/sh&lt;br /&gt;export GDK_NATIVE_WINDOWS=true&lt;br /&gt;./eclipse&lt;/pre&gt;&lt;p&gt;With the GDK_NATIVE_WINDOWS variable eclipse changes the way to handle windows internal. And this will fix difernt problems working with eclipse in Gnome shell.&lt;/p&gt;&lt;p&gt;To start eclipse use the new script.&lt;/p&gt;&lt;p&gt;If you have installed eclipse through the ubuntu software-center then your eclipse executable is located in the folder /usr/lib/eclipse/eclipse. In that case you can change the content of your start script like this:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;#!/bin/sh&lt;br /&gt;export GDK_NATIVE_WINDOWS=true&lt;br /&gt;/usr/lib/eclipse/eclipse&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>http://www.imixs.org/roller/ralphsjavablog/entry/gnome3_anpassen</id>
        <title type="html">Gnome3 - Anpassen</title>
        <author><name>Ralph</name></author>
        <link rel="alternate" type="text/html" href="http://www.imixs.org/roller/ralphsjavablog/entry/gnome3_anpassen"/>
        <published>2011-11-12T10:59:37+01:00</published>
        <updated>2012-03-28T23:12:43+02:00</updated> 
        <category term="/General" label="General" />
        <category term="gnome3" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">Gnome3 - Titelleiste von Anwendungen im maximierten Zustand aublenden&amp;nbsp;</summary>
        <content type="html">&lt;p&gt;Ich bin nun endlich auf Gnome3 (Ubuntu 11.10 / Gnome Shell 3.2) 
umgestiegen - und ich mu&#223; sagen das Gnome3 bzw. die Gnome Shell eine 
hervorragende Desktopoberfl&#228;che ist. Gnome3 ist schnell, sieht klasse 
aus und l&#228;&#223;t sich einfach sch&#246;n bedienen. Warum manche Leute schreiben 
dass mit Gnome3 sozusagen der Untergang von Linux besiegelt sei ist mir 
ein absolutes R&#228;tsel. &lt;/p&gt;&lt;p&gt;Einer der Hauptkritikpunkte an Gnome3 ist 
die Behauptung dass man die Desktopoberfl&#228;che nicht anpassen kann. Das 
ist nat&#252;rlich absoluter Quatsch. Es ist richtig dass es keinen Button 
gibt der &apos;Dr&#252;ck mich und alles sieht so aus wie Du es dir gerade 
vorstellst&apos; heist. Aber den gab es Gnome2 auch nicht. &lt;/p&gt;&lt;p&gt;Es ist 
richtig dass die Gnome3 Entwickler ein bestimmtes Konzept fest vorgeben 
und hier erstmal auch keine &#196;nderungen vorsehen. Dass ist deren gutes 
Recht und man sollte nicht vergessen, dass die Entwicklung 3 Jahre 
gedauert hat und in dieser Zeit wurde vermutlich so ziemlich alles 
diskutiert was heute manchen Benutzer st&#246;rt. Aber aus meiner Sicht macht
 es wirklich keinen Sinn ein Einstellungsmen&#252; anzubieten mit dem man den
 Desktop in 3 Minuten zu Unkenntlichkeit verkonfigurieren kann. &lt;/p&gt;&lt;p&gt;Dazu
 ein kleines Beispiel: Auf den ersten Blick wirkt Gnome3 (Default-Thema 
Adwaita) nicht so sch&#246;n wie Unity - das hat mich selber etwas verbl&#252;fft.
 Was einen zu Beginn st&#246;rt ist das platt-schwarze Panel am oberen 
Bildschirmrand das praktisch kaum Elemente enth&#228;lt. Das sieht bei Unity 
viel sch&#246;ner aus - es gl&#228;nzt und enth&#228;lt viel mehr Dinge. Optisch ist 
aber Gnome3 genau an diesem Punkt einfach genial. Der schwarze Balken 
soll f&#252;r den Benutzer in den Hintergrund treten. Er hat f&#252;r die Arbeit 
in einem bestimmten Programm einfach keine Bedeutung und soll daher 
nicht als zentrale Leiste dem Benutzer auffallen. Und tats&#228;chlich 
verschwindet dieser Balken praktisch mit der Zeit. Man hat einfach das 
Gef&#252;hl das die Anwendung in der man gerade Arbeitet der Zentrale Teil 
ist. Und das ist wirklich sehr angenehm. &lt;/p&gt;&lt;p&gt;Trotzdem kann wer will 
das Aussehen von Gnome3 beinflussen. Das wichtigste Werkzeugt ist 
sicherlich dasGnome-Tweek Tool. Dieses l&#228;&#223;t sich leicht 
nachinstallieren. Einfach im Softwarecenter nach &amp;quot;Gnome&amp;quot; suchen. Man 
erh&#228;lt dann eine kleine Anwendung mit der sich Dinge wie die Darstellung
 von Men&#252;s und Icons anpassen lassen. Aber auch der Button zum 
Minimieren von Fenstern kann damit hergezaubert werden. &#220;ber sogenannte 
Gnome-Extentions lassen sich dann noch ganz wilde Sachen anstellen. 
Diese sind aber nach meiner Meinung nicht erforderlich wenn man einmal 
Vertrauen in Gnome3 gefasst hat.&lt;/p&gt;&lt;p&gt;Was nun aber bei Unity wirklich 
besser gel&#246;st ist, ist das globale Men&#252;. Anwendungsmen&#252;s erscheinen 
immer im obere Panel (ich denke das ist von Mac OS &#252;bernommen). Das ist 
sehr angenehm weil dadurch die Fenster weniger Platz wegnehmen was 
gerade bei modernen Laptops mit breiten Displays sehr angenehm ist. 
Problematisch ist allerdings dass diese Funktion in Unity nicht wirklich 
funktioniert. Beispielsweise versagt der Mechanismu&#223; bei Eclipse 
komplett. Ob man in Gnome3 die Anwendungsmen&#252;s irgendwie in das ober 
Panel bekommt habe ich nicht herausgefunden. Tatsache ist das dieser 
Punkt flei&#223;ig diskutiert wird und mich w&#252;rde es nicht wundern wen in der
 kommenden Gnome3 Version diese M&#246;glichkeit angeboten wird. (Ob da dann 
Eclipse mitspielt mu&#223; man sehen ;-)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Wen man sich nun in Gnome3 aber mal ein maximiertes Fenster ansieht f&#228;llt hier der Nachteil deutlich auf:&lt;/p&gt;&lt;p&gt;&lt;img vspace=&quot;0&quot; border=&quot;0&quot; align=&quot;bottom&quot; hspace=&quot;0&quot; style=&quot;width: 649px; height: 191px; &quot; src=&quot;http://www-02.imixs.com/roller/ralphsblog/resource/gnome/Auswahl_002.png&quot; /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Man
 hat nun unterhalb des scharzen Panels einen sinnlosen Fenstertitel. Der
 hat absolut keinen wirklichen Sinn, au&#223;er dass er Raum wegnimmt. Den 
Dokumententitel und die Schaltfl&#228;chen zum schlie&#223;en und minimieren 
k&#246;nnte hier auch in das ober Panel geschoben werden. Dann h&#228;tte man mehr
 Platz f&#252;r die eigentliche Anwendung. &lt;/p&gt;&lt;p&gt;Auch dieser Punkt wird viel diskutiert. (&lt;a href=&quot;https://bugzilla.gnome.org/show_bug.cgi?id=594879&quot;&gt;https://bugzilla.gnome.org/show_bug.cgi?id=594879&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;Das
 sch&#246;ne ist dass die Titelleiste ausgeblendet werden kann. Analog zu 
Gnome2 kann die Darstellung von Fenstern &#252;ber eine XML Datei beinflu&#223;t 
werden. (&lt;a href=&quot;http://apathyonline.net/archives/420&quot;&gt;http://apathyonline.net/archives/420&lt;/a&gt;)&lt;/p&gt;&lt;p&gt;Zun&#228;chst sollte man sich eine Sicherheitskopie der Datei &lt;/p&gt;&lt;pre&gt;/usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml &lt;br /&gt;&lt;/pre&gt;&lt;p&gt;machen. Danach kann man in dieser Datei den Abschnitt &apos;frame_geometry name=&amp;quot;max&amp;quot;&apos; wie folgt anpassen:&lt;/p&gt;&lt;pre&gt;&amp;lt;frame_geometry name=&amp;quot;max&amp;quot; title_scale=&amp;quot;medium&amp;quot; parent=&amp;quot;normal&amp;quot; rounded_top_left=&amp;quot;false&amp;quot; rounded_top_right=&amp;quot;false&amp;quot; has_title=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;	&amp;lt;distance name=&amp;quot;left_width&amp;quot; value=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;	&amp;lt;distance name=&amp;quot;right_width&amp;quot; value=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;	&amp;lt;distance name=&amp;quot;left_titlebar_edge&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;	&amp;lt;distance name=&amp;quot;right_titlebar_edge&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;	&amp;lt;distance name=&amp;quot;title_vertical_pad&amp;quot; value=&amp;quot;1&amp;quot;/&amp;gt; &amp;lt;!-- &lt;br /&gt;							This needs to be 1 less then the&lt;br /&gt;							title_vertical_pad on normal state&lt;br /&gt;							or you&apos;ll have bigger buttons 								--&amp;gt;&lt;br /&gt;	&amp;lt;border name=&amp;quot;title_border&amp;quot; left=&amp;quot;10&amp;quot; right=&amp;quot;10&amp;quot; top=&amp;quot;1&amp;quot; bottom=&amp;quot;2&amp;quot;/&amp;gt;&lt;br /&gt;	&amp;lt;border name=&amp;quot;button_border&amp;quot; left=&amp;quot;0&amp;quot; right=&amp;quot;0&amp;quot; top=&amp;quot;0&amp;quot; bottom=&amp;quot;2&amp;quot;/&amp;gt;&lt;br /&gt;	&amp;lt;distance name=&amp;quot;bottom_height&amp;quot; value=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/frame_geometry&amp;gt; &lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&#220;ber
 den tag &apos;has_title=&amp;quot;false&amp;quot;&apos; teilt man Gnome3 mit dass bei maximierten 
Fenstern der Titel nicht dargestellt werden soll. &#220;ber den Tag 
&apos;title_vertical_pad&apos; dann man die h&#246;he auf &apos;1&apos; zur&#252;ckdrehen. &lt;/p&gt;&lt;p&gt;Nach dem man die Datei ge&#228;ndert hat kann man die &#196;nderungen &#252;bernehmen in dem man ALT + F2 dr&#252;ckt und dann &apos;r&apos; eingibt. (Oder man meldet sich ab und erneut wieder an&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; &quot;&gt;).&lt;/span&gt;&lt;span style=&quot;color: rgb(85, 85, 85); font-family: Arial, Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20px; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; background-color: rgb(255, 255, 255); &quot; class=&quot;Apple-style-span&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Das wars nun erscheint bei maximierten Fenstern kein unn&#246;tiger Titel mehr:&lt;/p&gt;&lt;p&gt;&lt;img vspace=&quot;0&quot; border=&quot;0&quot; align=&quot;bottom&quot; hspace=&quot;0&quot; style=&quot;width: 650px; height: 222px; &quot; src=&quot;http://www-02.imixs.com/roller/ralphsblog/resource/gnome/Auswahl_001.png&quot; /&gt;&lt;/p&gt;&lt;p&gt;Das
 ganze spielt sich also im Theme ab. Man kann also auch durch die 
Auswahl eines anderen Themes das Aussehen von Gnome3 in so ziemlich 
allen Belangen anpassen. &lt;/p&gt;</content>
    </entry>
</feed>

