Hello

On Tue, Apr 27, 2010 at 11:29 PM, Jean-Louis MONTEIRO
<jeano...@gmail.com> wrote:
> Matthias,
>
> Not sure you got my short message on Twitter.
> Anyway, the whole stuff is now working on my simple example.

that's great

>
> I gonna try to deploy a more complex application using stateless,
> stateful, CDI managed beans, JSF 2, ...
> Actually, it seems to me i don't get the same stateful reference in my
> @ConversationScope bean, leading to some unpredictable behaviors.
>
> BTW, i have a set of pending changes in OpenEJB (JPA 2.0 support,
> DynamicDataSource, Gurkan's patch, hibernate profile activated). So i
> can push an OpenEJB webapp (with OpenJPA if you prefer) to my
> people.apache.org. Even if it's development binaries, you can give it
> a try.

I don't mind trying your openejb.war file (yeah I prefer openJPA :) ).
I also don't mind applying the patch locally on my machine.

>
> Then, according to the community, i can commit Gurkan's patch and fix
> the small issue.

+1

-Matthias

>
> WDYT?
>
> Jean-Louis
>
>
>
> 2010/4/27 Matthias Wessendorf <mat...@apache.org>:
>> w00t! great news guys!
>>
>> @JEan-Louis: Can you commit the bits, or share the "new" diff to trunk
>> in a patch ?
>>
>> Thanks!
>> Matthias
>>
>> On Tue, Apr 27, 2010 at 5:59 PM, Gurkan Erdogdu <gurkanerdo...@yahoo.com> 
>> wrote:
>>> Great work!
>>>
>>> One thing is that my patch may not be correct in some regard, because I did 
>>> not do so much testing :)
>>>
>>> Thanks;
>>>
>>>
>>> --Gurkan
>>>
>>>
>>> ________________________________
>>> From: Jean-Louis MONTEIRO <jeano...@gmail.com>
>>> To: dev@openwebbeans.apache.org
>>> Sent: Tue, April 27, 2010 6:34:45 PM
>>> Subject: Re: @EJB in Tomcat 6.0.14 and Gurkan's OWB/OEJB patch
>>>
>>> Hey guys,
>>>
>>> I finally got it working with a JSF 2 sample using OpenEJB,
>>> OpenWebBeans, MyFaces, and Hibernate (JPA 2).
>>>
>>> My sample runs fine but a far more simple example doesn't work.
>>> It's just a simple example involving a servlet with a @EJB.
>>> The stacktrace is available here http://pastebin.com/Y2LUszsM
>>>
>>> I seems that Gurkan's patch is breaking something. I need to check it
>>> again, but i'm quite sure it worked before.
>>>
>>> Any idea?
>>>
>>> Jean-Louis
>>>
>>>
>>> 2010/4/27 Matthias Wessendorf <mat...@apache.org>:
>>>> I see, but that shouldn't make a big difference :-)
>>>>
>>>> The important part is the same:
>>>> -OpenEJB trunk(3.1.3-SNAP) + your patch :-)
>>>>
>>>> So I filed OWB-362 to not forget about it.
>>>>
>>>> -Matthias
>>>>
>>>>
>>>> On Tue, Apr 27, 2010 at 7:28 AM, Gurkan Erdogdu <gurkanerdo...@yahoo.com> 
>>>> wrote:
>>>>> Matthias;
>>>>>
>>>>> I used Tomcat 6.0.26 and OpenEJB 3.1.3-SNAPSHOT.
>>>>>
>>>>> Thanks;
>>>>>
>>>>>
>>>>> --Gurkan
>>>>>
>>>>>
>>>>> ________________________________
>>>>> From: Matthias Wessendorf <mat...@apache.org>
>>>>> To: dev@openwebbeans.apache.org
>>>>> Sent: Mon, April 26, 2010 11:38:25 PM
>>>>> Subject: Re: @EJB in Tomcat 6.0.14 and Gurkan's OWB/OEJB patch
>>>>>
>>>>> Hi,
>>>>>
>>>>> I just tried that again (fresh 6.014 TC installation + the patches
>>>>> from Gurkan on OpenEJB trunk).
>>>>> I simply want to deploy the the "jsf" example from OpenEJB (the
>>>>> 299/330 APIs I marked as "provided"),
>>>>> after I apply this patch:
>>>>> https://issues.apache.org/jira/browse/OPENEJB-1264
>>>>>
>>>>> * Behavior:
>>>>>
>>>>> -case: JSF/EJB
>>>>>
>>>>> @ManagedBean/@RequestScoped (the JSF one)
>>>>> work fine with @EJB
>>>>>
>>>>> -case: 299/330 and EJB
>>>>>
>>>>> The @Named and CDI's @RequestScoped work (bean look-up is fine)
>>>>> Also, dependency injection works fine, IF I use @Inject for any
>>>>> injection, other than an
>>>>> EJB (statefull/stateless).
>>>>>
>>>>> simple interface + implementation => OK
>>>>>
>>>>> as soon as the implementation has @Stateless, I get the below exception..
>>>>>
>>>>> IMO it looks like some issue with the proxy (invocation). See below.
>>>>> Has one seen this before?
>>>>>
>>>>> @Gurkan:
>>>>> What was your Tomcat version that you used ?
>>>>> You are using trunk with V3 of this patch:
>>>>> https://issues.apache.org/jira/browse/OPENEJB-1257
>>>>>
>>>>> right ?
>>>>>
>>>>> ==============================================================================
>>>>>
>>>>> SEVERE: An exception occurred
>>>>> javax.faces.el.EvaluationException: javax.el.ELException:
>>>>> /calculator.xhtml at line 39 and column 64 action="#{calculator.add}":
>>>>> java.lang.reflect.InvocationTargetException
>>>>>    at 
>>>>> javax.faces.component._MethodExpressionToMethodBinding.invoke(_MethodExpressionToMethodBinding.java:96)
>>>>>    at 
>>>>> org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:100)
>>>>>    at javax.faces.component.UICommand.broadcast(UICommand.java:120)
>>>>>    at javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:890)
>>>>>    at 
>>>>> javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:234)
>>>>>    at javax.faces.component.UIViewRoot._process(UIViewRoot.java:1202)
>>>>>    at 
>>>>> javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:623)
>>>>>    at 
>>>>> org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:35)
>>>>>    at 
>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:143)
>>>>>    at 
>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:93)
>>>>>    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189)
>>>>>    at 
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>>>>>    at 
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>>>    at 
>>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>>>>>    at 
>>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>>>>>    at 
>>>>> org.apache.openejb.tomcat.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
>>>>>    at 
>>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>>>>>    at 
>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>>>>>    at 
>>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>>>>>    at 
>>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
>>>>>    at 
>>>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>>>>>    at 
>>>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
>>>>>    at 
>>>>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>>>>>    at java.lang.Thread.run(Thread.java:619)
>>>>> Caused by: javax.el.ELException: /calculator.xhtml at line 39 and
>>>>> column 64 action="#{calculator.add}":
>>>>> java.lang.reflect.InvocationTargetException
>>>>>    at 
>>>>> org.apache.myfaces.view.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:95)
>>>>>    at 
>>>>> javax.faces.component._MethodExpressionToMethodBinding.invoke(_MethodExpressionToMethodBinding.java:88)
>>>>>    ... 23 more
>>>>> Caused by: java.lang.reflect.InvocationTargetException
>>>>>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>    at 
>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>>    at 
>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>>    at java.lang.reflect.Method.invoke(Method.java:597)
>>>>>    at 
>>>>> org.apache.webbeans.ejb.common.proxy.EjbBeanProxyHandler.invoke(EjbBeanProxyHandler.java:151)
>>>>>    at 
>>>>> org.superbiz.jsf.Calculator_$$_javassist_16.add(Calculator_$$_javassist_16.java)
>>>>>    at org.superbiz.jsf.CalculatorBean.add(CalculatorBean.java:58)
>>>>>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>    at 
>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>>    at 
>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>>    at java.lang.reflect.Method.invoke(Method.java:597)
>>>>>    at 
>>>>> org.apache.webbeans.intercept.InterceptorHandler.invoke(InterceptorHandler.java:265)
>>>>>    at 
>>>>> org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:78)
>>>>>    at 
>>>>> org.superbiz.jsf.CalculatorBean_$$_javassist_15.add(CalculatorBean_$$_javassist_15.java)
>>>>>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>    at 
>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>>    at 
>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>>    at java.lang.reflect.Method.invoke(Method.java:597)
>>>>>    at org.apache.el.parser.AstValue.invoke(AstValue.java:131)
>>>>>    at 
>>>>> org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
>>>>>    at 
>>>>> org.apache.myfaces.view.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:83)
>>>>>    ... 24 more
>>>>> Caused by: java.lang.NullPointerException
>>>>>    at $Proxy62.add(Unknown Source)
>>>>>    ... 45 more
>>>>> Apr 26, 2010 9:51:42 PM
>>>>> org.apache.webbeans.ejb.common.proxy.EjbBeanProxyHandler hashCode
>>>>> WARNING: Calling method on proxy is restricted except
>>>>> Object.toString(), but current method is Object.hashCode
>>>>> Apr 26, 2010 9:51:42 PM
>>>>> org.apache.webbeans.ejb.common.proxy.EjbBeanProxyHandler hashCode
>>>>> WARNING: Calling method on proxy is restricted except
>>>>> Object.toString(), but current method is Object.hashCode
>>>>> Apr 26, 2010 9:51:42 PM
>>>>> org.apache.webbeans.ejb.common.proxy.EjbBeanProxyHandler hashCode
>>>>> WARNING: Calling method on proxy is restricted except
>>>>> Object.toString(), but current method is Object.hashCode
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Sun, Apr 25, 2010 at 10:40 PM, Matthias Wessendorf <mat...@apache.org> 
>>>>> wrote:
>>>>>> good idea, but than I get:
>>>>>>
>>>>>> Caused by: java.lang.reflect.InvocationTargetException
>>>>>>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>        at 
>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>>>        at 
>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>>>        at java.lang.reflect.Method.invoke(Method.java:597)
>>>>>>        at 
>>>>>> org.apache.webbeans.ejb.common.proxy.EjbBeanProxyHandler.invoke(EjbBeanProxyHandler.java:151)
>>>>>>        at 
>>>>>> org.superbiz.jsf.Calculator_$$_javassist_15.add(Calculator_$$_javassist_15.java)
>>>>>>        at org.superbiz.jsf.CalculatorBean.add(CalculatorBean.java:55)
>>>>>>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>        at 
>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>>>        at 
>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>>>        at java.lang.reflect.Method.invoke(Method.java:597)
>>>>>>        at 
>>>>>> org.apache.webbeans.intercept.InterceptorHandler.invoke(InterceptorHandler.java:265)
>>>>>>        at 
>>>>>> org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:78)
>>>>>>        at 
>>>>>> org.superbiz.jsf.CalculatorBean_$$_javassist_14.add(CalculatorBean_$$_javassist_14.java)
>>>>>>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>        at 
>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>>>        at 
>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>>>        at java.lang.reflect.Method.invoke(Method.java:597)
>>>>>>        at org.apache.el.parser.AstValue.invoke(AstValue.java:131)
>>>>>>        at 
>>>>>> org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
>>>>>>        at 
>>>>>> org.apache.myfaces.view.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:83)
>>>>>>        ... 24 more
>>>>>>
>>>>>>
>>>>>> On Sun, Apr 25, 2010 at 10:08 PM, Gurkan Erdogdu
>>>>>> <cgurkanerdo...@gmail.com> wrote:
>>>>>>> How you use @EJB? Instead of using @EJB, you can directly inject EJBs 
>>>>>>> using
>>>>>>> @Inject annotation via Local interface of the EJBs.
>>>>>>>
>>>>>>> Look at http://openejb.apache.org/3.0/jndi-names.html for jndi naming.
>>>>>>>
>>>>>>> 2010/4/25 Matthias Wessendorf <mat...@apache.org>
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> I am on TC 6_0_14, combined w/ Gurkan's cool patch. When I have a CDI 
>>>>>>>> bean:
>>>>>>>> @Named("calculator")
>>>>>>>> @RequestScoped
>>>>>>>> public class CalculatorBean {
>>>>>>>> ...
>>>>>>>> }
>>>>>>>>
>>>>>>>> with an @EJB injection, I am getting this ClassCastException:
>>>>>>>>
>>>>>>>> Caused by: java.lang.ClassCastException
>>>>>>>>        at java.lang.Class.cast(Class.java:2990)
>>>>>>>>        at
>>>>>>>> org.apache.webbeans.ejb.resource.ResourceInjectionProcessor.lookupFieldResource(ResourceInjectionProcessor.java:97)
>>>>>>>>        at
>>>>>>>> org.apache.webbeans.ejb.resource.ResourceInjectionProcessor.getResourceReference(ResourceInjectionProcessor.java:64)
>>>>>>>>        at
>>>>>>>> org.apache.webbeans.ejb.resource.ResourceFactory.getResourceReference(ResourceFactory.java:64)
>>>>>>>>        at
>>>>>>>> org.apache.webbeans.ejb.resource.OpenEjbResourceInjectionService.getResourceReference(OpenEjbResourceInjectionService.java:50)
>>>>>>>>        at
>>>>>>>> org.apache.webbeans.ejb.resource.OpenEjbResourceInjectionService.injectJavaEEResources(OpenEjbResourceInjectionService.java:78)
>>>>>>>>        at
>>>>>>>> org.apache.webbeans.component.AbstractInjectionTargetBean.injectResources(AbstractInjectionTargetBean.java:391)
>>>>>>>>        at
>>>>>>>> org.apache.webbeans.portable.creation.InjectionTargetProducer.inject(InjectionTargetProducer.java:76)
>>>>>>>>        at
>>>>>>>> org.apache.webbeans.component.InjectionTargetWrapper.inject(InjectionTargetWrapper.java:80)
>>>>>>>>        at
>>>>>>>> org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:157)
>>>>>>>>        at
>>>>>>>> org.apache.webbeans.context.AbstractContext.getInstance(AbstractContext.java:219)
>>>>>>>>        at
>>>>>>>> org.apache.webbeans.context.AbstractContext.get(AbstractContext.java:182)
>>>>>>>>        at
>>>>>>>> org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:117)
>>>>>>>>        at
>>>>>>>> org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:75)
>>>>>>>>        at
>>>>>>>> org.superbiz.jsf.CalculatorBean_$$_javassist_5.getX(CalculatorBean_$$_javassist_5.java)
>>>>>>>>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>>>        at
>>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>>>>>        at
>>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>>>>>        at java.lang.reflect.Method.invoke(Method.java:597)
>>>>>>>>        at javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
>>>>>>>>        at
>>>>>>>> javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
>>>>>>>>        at
>>>>>>>> org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:140)
>>>>>>>>        at org.apache.el.parser.AstValue.getValue(AstValue.java:97)
>>>>>>>>        at
>>>>>>>> org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
>>>>>>>>        at
>>>>>>>> org.apache.myfaces.view.facelets.el.TagValueExpression.getValue(TagValueExpression.java:84)
>>>>>>>>        at
>>>>>>>> javax.faces.component._DeltaStateHelper.eval(_DeltaStateHelper.java:243)
>>>>>>>>        at javax.faces.component.UIOutput.getValue(UIOutput.java:71)
>>>>>>>>        at javax.faces.component.UIInput.getValue(UIInput.java:120)
>>>>>>>>        at
>>>>>>>> org.apache.myfaces.shared_impl.renderkit.RendererUtils.getValue(RendererUtils.java:349)
>>>>>>>>        at
>>>>>>>> org.apache.myfaces.shared_impl.renderkit.RendererUtils.getStringValue(RendererUtils.java:297)
>>>>>>>>        at
>>>>>>>> org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.renderInput(HtmlTextRendererBase.java:149)
>>>>>>>>        at
>>>>>>>> org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.encodeEnd(HtmlTextRendererBase.java:64)
>>>>>>>>        at
>>>>>>>> javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:486)
>>>>>>>>        at
>>>>>>>> org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:527)
>>>>>>>>        at
>>>>>>>> org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.renderChildren(HtmlGridRendererBase.java:296)
>>>>>>>>        at
>>>>>>>> org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.encodeEnd(HtmlGridRendererBase.java:131)
>>>>>>>>        at
>>>>>>>> javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:486)
>>>>>>>>        at 
>>>>>>>> javax.faces.component.UIComponent.encodeAll(UIComponent.java:618)
>>>>>>>>        at 
>>>>>>>> javax.faces.component.UIComponent.encodeAll(UIComponent.java:614)
>>>>>>>>        at 
>>>>>>>> javax.faces.component.UIComponent.encodeAll(UIComponent.java:614)
>>>>>>>>        at
>>>>>>>> org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.renderView(FaceletViewDeclarationLanguage.java:1117)
>>>>>>>>        at
>>>>>>>> org.apache.myfaces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:231)
>>>>>>>>        at
>>>>>>>> javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:59)
>>>>>>>>        at
>>>>>>>> org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:122)
>>>>>>>>        at
>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:207)
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> When I comment out the @EJB all is fine.
>>>>>>>>
>>>>>>>> Has one seen this before ?
>>>>>>>>
>>>>>>>> -Matthias
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Matthias Wessendorf
>>>>>>>>
>>>>>>>> blog: http://matthiaswessendorf.wordpress.com/
>>>>>>>> sessions: http://www.slideshare.net/mwessendorf
>>>>>>>> twitter: http://twitter.com/mwessendorf
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Gurkan Erdogdu
>>>>>>> http://gurkanerdogdu.blogspot.com
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> 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
>>>>
>>>
>>>
>>>
>>
>>
>>
>> --
>> 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

Reply via email to