[jbossseam-issues] [JBoss JIRA] Updated: (JBSEAM-2775) package-info.java should be optional:"convention over configuration"

Eric Jung (JIRA) jira-events at lists.jboss.org
Mon Apr 7 14:07:54 EDT 2008


     [ http://jira.jboss.com/jira/browse/JBSEAM-2775?page=all ]

Eric Jung updated JBSEAM-2775:
------------------------------

    Attachment: JBSEAM-2775.diff

Patch to the trunk attached. Self-contained unit tests are at the end of the new class, org.jboss.seam.init.NamespacePackageResolver. As an integration test, I've deleted org.jboss.seam.example.seampay.package-info.java. and modified seampay's components.xml with a new XML namespace, http://jboss.org/seam/example/seampay. Run the seampay example to see the new code translate that XML namespace to the org.jboss.seam.example.seampay Java package.

Note that you can still specify package-info.java if you like.

The patch supports both seam: URIs ("opaque" URIs) and hierarchical URIs such as http://jboss.org/seam/example/seampay.

If you like the patch, let me know, and I'll make a docbook patch for the seam manual describing this new feature.


> package-info.java should be optional:"convention over configuration"
> --------------------------------------------------------------------
>
>                 Key: JBSEAM-2775
>                 URL: http://jira.jboss.com/jira/browse/JBSEAM-2775
>             Project: JBoss Seam
>          Issue Type: Feature Request
>            Reporter: Eric Jung
>         Attachments: JBSEAM-2775.diff, JBSEAM-2775.diff
>
>
> Currently, package-info.java is required when referring to custom Seam components in components.xml. However, to further align Seam with the "convention over configuration" philosophy, this file can be optional by making some assumptions:
> 1. In the absence of package-info.java , the XML namespace in components.xml for custom components has a well-defined mapping to a Java package
> 2. This mapping can be defined as:
>   a. The XML namespace must be parsable by java.net.URI otherwise automatic mapping is aborted
>   a. Protocol (scheme), the www/ subdomain, port, query parameters, anchors (references), and userInfo are ignored, if present.
>   b. The top-level domain becomes the root Java package
>   c. Subdomains become Java packages under the root package, applied in right-to-left order as specified in the URI.
>   d. The path, as returned by URI.getPath(), is mapped to further Java packages such that each path element becomes another Java package appended in left-to-right order
> Examples:
> http://www.company.com/department/product ==> com.company.department.product
> https://company.com/department/product ==> com.company.department.product
> ftp://www.company.org/department/product ==> org.company.department.product
> abc://company.org/department/product ==> org.company.department.product
> company.net/foo/bar/baz ==> net.company.foo.bar.baz
> JIRA isn't displaying my last example correctly. See http://pastebin.mozilla.org/375878 for the last example.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the seam-issues mailing list