Hi Felix -

I've been looking at this with Francicso and am familiar with the issue, let
me add a bit of background and confirm my suspicions from stepping through
the tag handling in sling's jsp compiler.  Apologies for list pollution,
this looks more like a Sling issue than a Felix issue per se.

The issue is our desire/need to delegate classloading on the taglib classes
themselves to the container. Using either bootdelegation or system.packages
mechanisms, if the taglib classes are loaded by the parent container, we see
runtime ClassCastExceptions during compilation in the tag handler code. 

An example, createValidator (TagLibraryInfoImpl.java 159..164); the
assignment on line 164 throws if tlvClass is container-loaded:

TagLibraryValidator tlv = null;
        if (validatorClass != null && !validatorClass.equals("")) {
            try {
                Class tlvClass = ctxt.getClassLoader()
                        .loadClass(validatorClass);
                tlv = (TagLibraryValidator) tlvClass.newInstance();

Multiple points in TagLibraryInfoImpl.java upcast the loaded tag class
assuming homogeneous classloaders.  It leads me to suspect that external
classloaders for taglib classes just is not intended or supported.  Let's
just imagine that we *need* to delegate classloading for the taglib classes
(say they have link dependencies to other container-managed packages,
deployed outside of felix)... are we just out of luck at present?

Thanks for your thoughts,
- Bob


Felix Meschberger-2 wrote:
> 
> Hi Francisco,
> 
> Francisco Carrillo schrieb:
>> 
>> 
>> We're currently creating an app that needs ATG taglibs on SLING/OSGI, we
>> have created a bundle with these taglibs and uploaded it, of course
>> these taglibs call ATG classes, so we are including them in the
>> bootdelegation, using sling.properties file.
>> Caused by: java.lang.ClassCastException: atg.taglib.dspjsp.ImportBeanTag
>> at
>> org.apache.sling.scripting.jsp.jasper.runtime.TagHandlerPool.get(TagHandlerPool.java:125)
>> at
>> org.apache.jsp.apps.mygeometrixx.components.contenpage.center_jsp._jspx_meth_dsp_005fimportbean_005f0(center_jsp.java:177)
>> at
>> org.apache.jsp.apps.mygeometrixx.components.contenpage.center_jsp._jspService(center_jsp.java:154)
>> at
>> org.apache.sling.scripting.jsp.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
> 
> This may be caused because the tag library class is then read from the
> environment and then there is some class clash between environmental
> classes loaded through boot delegation and classes in your fraemwork.
>> 
>> 
>> All this is running on JBOSS.
>> 
>> Is there a way to avoid this class conflict that is causing the cast
>> exception?
> 
> Assuming you did not export the tag library classes in the ATG
> taglibrary bundle, this may be the cause.
> 
> Regards
> Felix
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/ATG-taglibs-on-Sling-osgi-having-trouble-tp21861795p21973244.html
Sent from the Apache Felix - Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to