Issue Details (XML | Word | Printable)

Key: RIO-174
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Critical Critical
Assignee: Dennis Reedy
Reporter: Dennis Reedy
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Rio

Multiple resources for interface declaration being parsed wrong

Created: 26/Mar/09 06:39 PM   Updated: 15/Apr/09 01:57 PM
Return to search
Component/s: Core, Deployment
Affects Version/s: 4.0 M2
Fix Version/s: 4.0 M3

Time Tracking:
Not Specified


 Description  « Hide
If a service's interfaces are delcared to have > 1 resource, the resulting parsed ClassBundles are wrong. For example:

(XML)
<ServiceBean Name='RaytraceService' Fork='yes'>
            <Interfaces>
                <Interface>net.gomez.raytraceservice.RaytraceService</Interface>
                <Resources>
                    <JAR>lib/arl/arl-support.jar</JAR>
                    <JAR>lib/arl/arl-brlcadservice-dl.jar</JAR>
                </Resources>
                 <Resources ref='client.jars'/>
            </Interfaces>
...
</ServiceBean>

Will result in 2 ClassBundles being created instead of one.

The groovy parser does not handle this correctly. This is most likely due to the support that the interfaces element may have > 1 interface classes, each with it's own ClassBundle.

 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
Dennis Reedy added a comment - 26/Mar/09 07:16 PM
A patch has been implemented that merges created ClassBundles when parsing the <Interfaces> element. The issue here seems to be that a ClassBundle is created for each <Resource> element, as opposed to a ClassBundle per <Interface> element.

We either need to support the current approach of one ClassBundle per class, or opt to change the approach in favor of 1 ClassBundle per Interfaces element that may contain more than 1 Interface class. This seems a more reasonable approach, since the same resources will be listed for each interface class.