[jsr-314-open] Slashes in resource library names?

Kito Mann kito.mann at virtua.com
Mon Feb 1 10:13:17 EST 2010


There was a discussion about nested resource library names last year. I
would say to search the archives, but I don't know if that's possible.
Anyway, here was the outcome:

Ed:
>


> Yes, you are correct that the resource naming scheme prevents nested
> resource libraries.  Nested resource libraries were not on the list of
> requirements when we designed this feature back in November of 2007.  We
> will not accept this requirement change at this point.


Dan:

So the spec needs to at least be clear that it's not permitted and suggest
the alternative. Several people reading it didn't understand what to do in
this case.

IMHO, it's a shame that we can't use the nested structure. Seems like a
pretty obvious convention instead of configuration thing. I don't know how
that got missed in the design process.


---
Kito D. Mann | twitter: kito99 | Author, JSF in Action
Virtua, Inc. | http://www.virtua.com | JSF/Java EE training and consulting
http://www.JSFCentral.com - JavaServer Faces FAQ, news, and info | twitter:
jsfcentral
+1 203-404-4848 x3

Sign up for the JSFCentral newsletter: http://oi.vresp.com/?fid=ac048d0e17



On Sat, Jan 30, 2010 at 6:23 PM, Cay Horstmann <cay at horstmann.com> wrote:

> I have been trying to understand whether the spec allows slashes in
> resource library names. For example, is it within the spec to have a
> composite component with library name components/util?
>
> It works fine in Mojarra: Place components into resources/components/util
> and use a namespace alias
> xmlns:util="http://java.sun.com/jsf/composite/components/util
>
> But there is a catch--it won't locate a backing component in the
> components.util package.
>
> And per the API docs for Application#createComponent, I have no right to
> expect that: "Create a fully qualified Java class name by removing any file
> extension from resource-name and let fqcn be library-name + "." +
> resource-name".
>
> So, I tried to read the spec for clarification. 3.6.1.4 states: The
> occurrence of the string “http://java.sun.com/jsf/composite/” in a Facelet
> XML namespace declaration means that *whatever follows that last “/”* is
> taken to be the name of a resource library.
>
> "Whatever follows" is pretty clear. In my example, components/util would be
> the library name. But is it a legal library name?
>
> 2.6.1.3 states "Every character in a resource identifier must be a valid
> character suitable for use in a string passed to the constructor
> of java.io.File that takes a single String argument."
>
> I don't understand this statement. In Windows, can you make files
> containing / symbols? If so, will slashes be treated as directory
> separators? What about colons? Will they be drive letters?
>
> Or are we saying it doesn't matter--we just feed the library name into the
> File constructor, and whatever happens, happens? Then you could have a
> situation where a WAR file works fine on Linux but not on Windows.
>
> Before I file an issue, could one of you tell me whether you intended to
> support hierarchical library names (such as components/util), or whether you
> envisioned only one level?
>
> Thanks,
>
> Cay
>
> --
>
> Cay S. Horstmann | http://horstmann.com | mailto:cay at horstmann.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jsr-314-open-mirror/attachments/20100201/f9b41837/attachment.html 


More information about the jsr-314-open-mirror mailing list