Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Eclipse RT (runtime) » org.apache.jasper.glassfish System Library assumptions?
org.apache.jasper.glassfish System Library assumptions? [message #1322288] Tue, 29 April 2014 19:45
Andrew Stoneberg is currently offline Andrew StonebergFriend
Messages: 4
Registered: April 2014
Junior Member
Im running a simple plugin project that is trying to use the jasper.glassfish bundle to compile a JSP. I am using Equinox SDK 4.3.2 - which includes jasper.glassfish 2.2.2.

I have put the the org.apache.taglibs.standard.glassfish jar within my bundle resource classpath and stepped through the runtime behavior to see how the TLD processing and JSP compilation behaves.

The following bit of code in TldScanner.java really confuses me when the code tries to process the c.tld included in the standard taglibs.

        if ((isLocal
                // Local tld files override the tlds in the jar files,
                // unless it is in a system jar (except when using myfaces)
                && mappings.get(uri) == null
                && !systemUris.contains(uri)
                && (!systemUrisJsf.contains(uri) || useMyFaces)
            ) ||
            (!isLocal
                // Jars are scanned bottom up, so jars in WEB-INF override
                // thos in the system (except when using myfaces)
                && (mappings.get(uri) == null
                    || systemUris.contains(uri)
                    || (systemUrisJsf.contains(uri) && !useMyFaces)
                   )
            )
           ) {
            String entryName = tldInfo.getEntryName();
            if (log.isLoggable(Level.FINE)) {
                log.fine("Add tld map from tld in " +
                    (isLocal? "WEB-INF": "jar: ") + uri + "=>" +
                    resourcePath + "," + entryName);
            }
            mappings.put(uri, new String[] {resourcePath, entryName});
        }


systemuris is initialized in a static block of that class:

    static {
        systemUrisJsf.add("h t t p ://java.sun.com/jsf/core");
        systemUrisJsf.add("h t t p ://java.sun.com/jsf/html");
        systemUris.add("h t t p ://java.sun.com/jsp/jstl/core");
    }


So, because the Uri matches what is defined in systemUris, my c.tld URI is never included in the Tld processing mappings - and eventually I get an error saying it cannot reference an absolute URI (since there was no mapping for it found).

What is the assumption for this "systemUri" filtering? How am I supposed to make a valid reference to c.tld in a JSP when running in Eclipse using the glassfish library?

Many thanks.

Andy
Previous Topic:ASCII Art in Editor
Next Topic:kepler long time server publish
Goto Forum:
  


Current Time: Sat Dec 20 03:02:17 GMT 2014

Powered by FUDForum. Page generated in 0.01621 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software