ok, I found it : it comes from Tomahawk. Jakob, you were right, Tomahawk TagHandlers use com.sun.facelets.* I compiled it from sources and changed the dependency to tomahawk20. Now simple pages work fine !
But now it's the jstl tags that stopped working ! If I'm right, jstl tags support was provided by facelets. But is it supported in MyFaces 2 facelets ? Is there something to do to enable it ? If not, is there a replacement, or a workaround ? I mainly use jstl tags for : populating tr:selectOneChoice (c:forEach), declare default values in components ( c:if / c:set ). There are other use cases in my code, but these 2 are the most important. Regards, Cedric 2010/7/26 Mark Struberg <[email protected]>: > can you please run a > > $> mvn dependency:tree > > and check if you are picking up some sun JSF impl (maybe through a transitive > dependency)? > > LieGrue, > strub > > > > ----- Original Message ---- >> From: Cédric Durmont <[email protected]> >> To: MyFaces Discussion <[email protected]> >> Sent: Mon, July 26, 2010 2:32:22 PM >> Subject: Re: Migrating app to myfaces2/Trinidad2 >> >> Here it is : >> (note : ficho.util.SetCharacterEncodingFilter is part of my app. It >> does what the name implies !) >> >> javax.faces.FacesException: java.lang.NoClassDefFoundError: >> com/sun/facelets/tag/TagHandler >> at >>org.apache.myfaces.shared_impl.context.ExceptionHandlerImpl.wrap(ExceptionHandlerImpl.java:241) >> >> at >>org.apache.myfaces.shared_impl.context.ExceptionHandlerImpl.handle(ExceptionHandlerImpl.java:156) >> >> at >>org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:191) >> at >>org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) >> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189) >> at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) >> at >>org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093) >> >> at >>org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:247) >> >> at >>org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:157) >> >> at >>org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92) >> >> at >>org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) >> >> at >>ficho.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:182) >> >> at >>org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) >> >> at >>org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360) >> at >>org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) >> at >>org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) >> at >>org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726) >> at >> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) >> at >>org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206) >> >> at >>org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) >> at >>org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) >> at org.mortbay.jetty.Server.handle(Server.java:324) >> at > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) >> at >>org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:828) >> >> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514) >> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) >> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) >> at >>org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) >> at >>org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450) >> Caused by: java.lang.NoClassDefFoundError: com/sun/facelets/tag/TagHandler >> at java.lang.ClassLoader.defineClass1(Native Method) >> at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) >> at java.lang.ClassLoader.defineClass(ClassLoader.java:616) >> at > java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) >> at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) >> at java.net.URLClassLoader.access$000(URLClassLoader.java:58) >> at java.net.URLClassLoader$1.run(URLClassLoader.java:197) >> at java.security.AccessController.doPrivileged(Native Method) >> at java.net.URLClassLoader.findClass(URLClassLoader.java:190) >> at >>org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:366) >> at >>org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:337) >> at java.lang.Class.forName0(Native Method) >> at java.lang.Class.forName(Class.java:247) >> at >>org.apache.myfaces.shared_impl.util.ClassUtils.classForName(ClassUtils.java:178) >> at >>org.apache.myfaces.view.facelets.util.ReflectionUtil.forName(ReflectionUtil.java:67) >> >> at >>org.apache.myfaces.view.facelets.compiler.TagLibraryConfig$LibraryHandler.createClass(TagLibraryConfig.java:474) >> >> at >>org.apache.myfaces.view.facelets.compiler.TagLibraryConfig$LibraryHandler.endElement(TagLibraryConfig.java:372) >> >> at >>com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:601) >> >> at >>com.sun.org.apache.xerces.internal.impl.dtd.XMLNSDTDValidator.endNamespaceScope(XMLNSDTDValidator.java:263) >> >> at >>com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleEndElement(XMLDTDValidator.java:2028) >> >> at >>com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.endElement(XMLDTDValidator.java:901) >> >> at >>com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1782) >> >> at >>com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2938) >> >> at >>com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648) >> >> at >>com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140) >> >> at >>com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511) >> >> at >>com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808) >> >> at >>com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737) >> >> at >>com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119) >> at >>com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205) >> >> at >>com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522) >> >> at javax.xml.parsers.SAXParser.parse(SAXParser.java:395) >> at javax.xml.parsers.SAXParser.parse(SAXParser.java:198) >> at >>org.apache.myfaces.view.facelets.compiler.TagLibraryConfig.create(TagLibraryConfig.java:631) >> >> at >>org.apache.myfaces.view.facelets.compiler.TagLibraryConfig.loadImplicit(TagLibraryConfig.java:662) >> >> at >>org.apache.myfaces.view.facelets.compiler.Compiler.initialize(Compiler.java:93) >> at >>org.apache.myfaces.view.facelets.compiler.Compiler.compileViewMetadata(Compiler.java:125) >> >> at >>org.apache.myfaces.view.facelets.impl.DefaultFaceletFactory._createViewMetadataFacelet(DefaultFaceletFactory.java:311) >> >> at >>org.apache.myfaces.view.facelets.impl.DefaultFaceletFactory.getViewMetadataFacelet(DefaultFaceletFactory.java:394) >> >> at >>org.apache.myfaces.view.facelets.impl.DefaultFaceletFactory.getViewMetadataFacelet(DefaultFaceletFactory.java:376) >> >> at >>org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage._getViewMetadataFacelet(FaceletViewDeclarationLanguage.java:1898) >> >> at >>org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.access$000(FaceletViewDeclarationLanguage.java:127) >> >> at >>org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage$FaceletViewMetadata.createMetadataView(FaceletViewDeclarationLanguage.java:2132) >> >> at >>org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:161) >> >> at >>org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:171) >> ... 26 more >> Caused by: java.lang.ClassNotFoundException: com.sun.facelets.tag.TagHandler >> at java.net.URLClassLoader$1.run(URLClassLoader.java:202) >> at java.security.AccessController.doPrivileged(Native Method) >> at java.net.URLClassLoader.findClass(URLClassLoader.java:190) >> at java.lang.ClassLoader.loadClass(ClassLoader.java:307) >> at java.lang.ClassLoader.loadClass(ClassLoader.java:248) >> at >>org.codehaus.plexus.classworlds.realm.ClassRealm.loadRealmClass(ClassRealm.java:174) >> >> at >>org.codehaus.plexus.classworlds.strategy.DefaultStrategy.loadClass(DefaultStrategy.java:67) >> >> at >>org.codehaus.plexus.classworlds.strategy.ForeignStrategy.loadClass(ForeignStrategy.java:39) >> >> at >>org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:201) >> at >>org.codehaus.plexus.classworlds.strategy.DefaultStrategy.loadClass(DefaultStrategy.java:73) >> >> at >>org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:201) >> at >>org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:375) >> at >>org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:337) >> ... 71 more >> >> 2010/7/26 Jakob Korherr <[email protected]>: >> > Nope, this did not change. >> > >> > Can you provide the whole stacktrace for the Exception you're getting? >> > >> > java.lang.NoClassDefFoundError: com/sun/facelets/tag/TagHandler >> > Caused by: >> > java.lang.ClassNotFoundException - com.sun.facelets.tag.TagHandler >> > >> > Regards, >> > Jakob >> > >> > >> > 2010/7/26 Cédric Durmont <[email protected]> >> > >> >> Nope, no imports of com.sun.facelets in the code. >> >> Does the namespace in *.xhtml files has to change ? >> >> >> >> >> >> Regards, >> >> Cedric >> >> >> >> 2010/7/26 Jakob Korherr <[email protected]>: >> >> > Hi Cédric, >> >> > >> >> > Does your app internally use some facelets-1 stuff? These are the > classes >> >> in >> >> > package com.sun.facelets. >> >> > >> >> > If so, you'll have to change the imports to javax.faces.view.facelets. >> >> > >> >> > Regards, >> >> > Jakob >> >> > >> >> > 2010/7/26 Cédric Durmont <[email protected]> >> >> > >> >> >> Hi Jakob, >> >> >> >> >> >> When I remove facelets from pom.xml and the view handler in web.xml >> >> >> as >> >> >> you said, I have this error : >> >> >> >> >> >> java.lang.NoClassDefFoundError: com/sun/facelets/tag/TagHandler >> >> >> Caused by: >> >> >> java.lang.ClassNotFoundException - com.sun.facelets.tag.TagHandler >> >> >> >> >> >> I have compared my pom.xml to the ones Matthias gave, but found >> >> >> nothing relevant. I disabled Tomahawk 1.1.9 though, as it's not >> >> >> guaranteed to be compatible with MyFaces 2... Still does not work... >> >> >> trinidad-demo does work on my machine, and I tried to get my pom.xml >> >> >> and web.xml as close as possible from the ones found in the component >> >> >> showcase. But trinidad-demo uses jsp, not facelets... >> >> >> >> >> >> Regards, >> >> >> Cedric >> >> >> >> >> >> >> >> >> 2010/7/24 Jakob Korherr <[email protected]>: >> >> >> > Hi, >> >> >> > >> >> >> > Actually I don't know what the problem with trinidad is, but from >> >> looking >> >> >> at >> >> >> > your pom, you can remove the faceletes-dependency, because facelets >> >> are >> >> >> > integrated in MyFaces core 2.0.1. >> >> >> > >> >> >> > So just remove: >> >> >> > >> >> >> > <dependency> >> >> >> > <groupId>com.sun.facelets</groupId> >> >> >> > <artifactId>jsf-facelets</artifactId> >> >> >> > <version>1.1.15</version> >> >> >> > </dependency> >> >> >> > >> >> >> > and also remove the facelets view-handler entry in your >> >> faces-config.xml. >> >> >> > >> >> >> > Maybe this will also solve your problem with trinidad. >> >> >> > >> >> >> > Regards, >> >> >> > Jakob >> >> >> > >> >> >> > 2010/7/23 Matthias Wessendorf <[email protected]> >> >> >> > >> >> >> >> do you mind to "compare" yours against our demo's pom ? >> >> >> >> >> >> >> >> >> >> >> >> base file: >> >> >> >> >> >> >> >> >> >> >> >> >> >>https://svn.apache.org/repos/asf/myfaces/trinidad/trunk/trinidad-examples/pom.xml >> >> >> >> >> >> >> >> >> for the actual problem: >> >> >> >> >> >> >> >> >> >> >> >> >> >>https://svn.apache.org/repos/asf/myfaces/trinidad/trunk/trinidad-examples/trinidad-demo/pom.xml >> >> >> >> >> >> >> >> >> Thx! >> >> >> >> M >> >> >> >> >> >> >> >> On Fri, Jul 23, 2010 at 4:20 PM, Cédric Durmont >> >> >> >> <[email protected]> >> >> >> >> wrote: >> >> >> >> > Thanks for looking into it, Matthias ! >> >> >> >> > Sadly, it doesn't work with MyFaces 2.0.1. >> >> >> >> > I guess something must be wrong in my pom.xml. Here is its >> >> dependency >> >> >> >> > section (I removed non relevant entries) : >> >> >> >> > >> >> >> >> > <!-- Project dependencies --> >> >> >> >> > <dependencies> >> >> >> >> > <dependency> >> >> >> >> > <groupId>org.apache.myfaces.core</groupId> >> >> >> >> > <artifactId>myfaces-api</artifactId> >> >> >> >> > <version>${myfaces.version}</version> >> >> >> >> > <scope>compile</scope> >> >> >> >> > </dependency> >> >> >> >> > <dependency> >> >> >> >> > <groupId>org.apache.myfaces.core</groupId> >> >> >> >> > <artifactId>myfaces-impl</artifactId> >> >> >> >> > <version>${myfaces.version}</version> >> >> >> >> > <scope>compile</scope> >> >> >> >> > </dependency> >> >> >> >> > <!-- Apache Trinidad --> >> >> >> >> > <dependency> >> >> >> >> > <groupId>org.apache.myfaces.trinidad</groupId> >> >> >> >> > <artifactId>trinidad-api</artifactId> >> >> >> >> > <version>${trinidad.version}</version> >> >> >> >> > <scope>compile</scope> >> >> >> >> > </dependency> >> >> >> >> > <dependency> >> >> >> >> > <groupId>org.apache.myfaces.trinidad</groupId> >> >> >> >> > <artifactId>trinidad-impl</artifactId> >> >> >> >> > <version>${trinidad.version}</version> >> >> >> >> > <scope>compile</scope> >> >> >> >> > </dependency> >> >> >> >> > >> >> >> >> > <dependency> >> >> >> >> > <groupId>javax.servlet</groupId> >> >> >> >> > <artifactId>jstl</artifactId> >> >> >> >> > <version>1.2</version> >> >> >> >> > <scope>runtime</scope> >> >> >> >> > </dependency> >> >> >> >> > <dependency> >> >> >> >> > <groupId>tomcat</groupId> >> >> >> >> > <artifactId>servlet-api</artifactId> >> >> >> >> > <version>5.5.23</version> >> >> >> >> > <scope>provided</scope> >> >> >> >> > </dependency> >> >> >> >> > <dependency> >> >> >> >> > <groupId>taglibs</groupId> >> >> >> >> > <artifactId>standard</artifactId> >> >> >> >> > <version>1.1.2</version> >> >> >> >> > </dependency> >> >> >> >> > <dependency> >> >> >> >> > <groupId>org.apache.myfaces.tomahawk</groupId> >> >> >> >> > <artifactId>tomahawk</artifactId> >> >> >> >> > <version>1.1.9</version> >> >> >> >> > </dependency> >> >> >> >> > <dependency> >> >> >> >> > <groupId>com.sun.facelets</groupId> >> >> >> >> > <artifactId>jsf-facelets</artifactId> >> >> >> >> > <version>1.1.15</version> >> >> >> >> > </dependency> >> >> >> >> > <dependency> >> >> >> >> > <groupId>com.oracle</groupId> >> >> >> >> > <artifactId>ojdbc12</artifactId> >> >> >> >> > <version>9.0</version> >> >> >> >> > </dependency> >> >> >> >> > <dependency> >> >> >> >> > <groupId>rome</groupId> >> >> >> >> > <artifactId>rome</artifactId> >> >> >> >> > <version>0.9</version> >> >> >> >> > </dependency> >> >> >> >> > <dependency> >> >> >> >> > <groupId>javax.el</groupId> >> >> >> >> > <artifactId>el-api</artifactId> >> >> >> >> > <version>1.0</version> >> >> >> >> > <scope>provided</scope> >> >> >> >> > </dependency> >> >> >> >> > <dependency> >> >> >> >> > <groupId>org.eclipse.persistence</groupId> >> >> >> >> > <artifactId>eclipselink</artifactId> >> >> >> >> > <version>2.0.1</version> >> >> >> >> > <scope>compile</scope> >> >> >> >> > </dependency> >> >> >> >> > <dependency> >> >> >> >> > <groupId>org.eclipse.persistence</groupId> >> >> >> >> > <artifactId>javax.persistence</artifactId> >> >> >> >> > <version>2.0.0</version> >> >> >> >> > <scope>compile</scope> >> >> >> >> > </dependency> >> >> >> >> > </dependencies> >> >> >> >> > >> >> >> >> > <properties> >> >> >> >> > <trinidad.version>2.0.0.3-SNAPSHOT</trinidad.version> >> >> >> >> > <myfaces.version>2.0.1</myfaces.version> >> >> >> >> > </properties> >> >> >> >> > >> >> >> >> > 2010/7/23 Matthias Wessendorf <[email protected]>: >> >> >> >> >> Hi Cédric, >> >> >> >> >> >> >> >> >> >> I just checked and our demo works fine with MyFaces 2.0.1 >> >> >> >> >> >> >> >> >> >> cd $TINIDAD_HOME/trinidad-examples/trinidad-demo >> >> >> >> >> mvn clean jetty:run -PjettyConfig >> >> >> >> >> >> >> >> >> >> -Matthias >> >> >> >> >> >> >> >> >> >> But yeah, a small migration document would be great :) >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> On Fri, Jul 23, 2010 at 3:19 PM, Matthias Wessendorf < >> >> >> [email protected]> >> >> >> >> wrote: >> >> >> >> >>> Hey Cédric, >> >> >> >> >>> >> >> >> >> >>> thanks for trying Trinidad2 and MyFaces2. >> >> >> >> >>> >> >> >> >> >>> Let me double check on my side. >> >> >> >> >>> >> >> >> >> >>> BTW. I hope to get to a 2.0.0-beta release, of Trinidad, next >> >> week >> >> >> >> >>> >> >> >> >> >>> -Matthias >> >> >> >> >>> >> >> >> >> >>> On Fri, Jul 23, 2010 at 3:15 PM, Cédric Durmont < >> >> [email protected] >> >> >> > >> >> >> >> wrote: >> >> >> >> >>>> Hello, >> >> >> >> >>>> >> >> >> >> >>>> I'm trying to switch my app from myfaces 1.2.8 / Trinidad > 1.2.13 >> >> to >> >> >> >> >>>> myfaces 2.0.0 / Trinidad 2.0.0.3-SNAPSHOT. I was already >> >> using >> >> >> >> >>>> facelets (1.1.15) >> >> >> >> >>>> I haven't found any relevant documentation on that subject >> >> online, >> >> >> so >> >> >> >> >>>> I basically changed version numbers in my pom.xml >> >> >> >> >>>> >> >> >> >> >>>> Switching from myfaces 1.2.8 to myfaces 2.0.0 seems to work >>well >> >> >> (my >> >> >> >> >>>> app still runs fine) >> >> >> >> >>>> But if I try to switch to trinidad 2 (alpha, alpha2 or >> >> snapshot), I >> >> >> >> >>>> have this message for every actionListener in my code : >> >> >> >> >>>> >> >> >> >> >>>> javax.el.ELException: /somePage.xhtml: The class >> >> >> 'com.acme.someBean' >> >> >> >> >>>> does not have the property 'doSomething' >> >> >> >> >>>> >> >> >> >> >>>> Of course, the property exists (the application runs fine with >> >> >> >> >>>> Trinidad 1.2.x). Did I miss something ? Parameters in web.xml > / >> >> >> >> >>>> faces-config.xml ? version of facelets / el-api ? >> >> >> >> >>>> >> >> >> >> >>>> Any hint is welcome, I'm stuck ! >> >> >> >> >>>> >> >> >> >> >>>> Regards, >> >> >> >> >>>> Cedric Durmont >> >> >> >> >>>> >> >> >> >> >>> >> >> >> >> >>> >> >> >> >> >>> >> >> >> >> >>> -- >> >> >> >> >>> Matthias Wessendorf >> >> >> >> >>> >> >> >> >> >>> blog: http://matthiaswessendorf.wordpress.com/ >> >> >> >> >>> sessions: http://www.slideshare.net/mwessendorf >> >> >> >> >>> twitter: http://twitter.com/mwessendorf >> >> >> >> >>> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> -- >> >> >> >> >> Matthias Wessendorf >> >> >> >> >> >> >> >> >> >> blog: http://matthiaswessendorf.wordpress.com/ >> >> >> >> >> sessions: http://www.slideshare.net/mwessendorf >> >> >> >> >> twitter: http://twitter.com/mwessendorf >> >> >> >> >> >> >> >> >> > >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> -- >> >> >> >> Matthias Wessendorf >> >> >> >> >> >> >> >> blog: http://matthiaswessendorf.wordpress.com/ >> >> >> >> sessions: http://www.slideshare.net/mwessendorf >> >> >> >> twitter: http://twitter.com/mwessendorf >> >> >> >> >> >> >> > >> >> >> > >> >> >> > >> >> >> > -- >> >> >> > Jakob Korherr >> >> >> > >> >> >> > blog: http://www.jakobk.com >> >> >> > twitter: http://twitter.com/jakobkorherr >> >> >> > work: http://www.irian.at >> >> >> > >> >> >> >> >> > >> >> > >> >> > >> >> > -- >> >> > Jakob Korherr >> >> > >> >> > blog: http://www.jakobk.com >> >> > twitter: http://twitter.com/jakobkorherr >> >> > work: http://www.irian.at >> >> > >> >> >> > >> > >> > >> > -- >> > Jakob Korherr >> > >> > blog: http://www.jakobk.com >> > twitter: http://twitter.com/jakobkorherr >> > work: http://www.irian.at >> > >> > > > >

