Bug 1213737

Summary: Protostream installed as EAP module does not see resources from application deployment
Product: [JBoss] JBoss Data Grid 6 Reporter: Martin Gencur <mgencur>
Component: InfinispanAssignee: Adrian Nistor <anistor>
Status: CLOSED CURRENTRELEASE QA Contact: Martin Gencur <mgencur>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.5.0CC: jdg-bugs, pzapataf, rmarwaha, ttarrant
Target Milestone: ER4   
Target Release: 6.5.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-06-23 12:26:10 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Martin Gencur 2015-04-21 08:00:13 UTC
When I use jboss-deployment-structure to import protostream dependency to the application, the protostream library can't see classes from the application deployment. It only sees classes/resources in other modules (in its dependencies defined in module.xml).

As a result, when I want to use serCtx.registerProtoFiles(FileDescriptorSource
                .fromResources("/sample_bank_account/bank.proto")); to register protofiles on client side, I have to create a separate module with that proto file and place a dependency on it in the protostream module.

This is a usability issue, similar to https://bugzilla.redhat.com/show_bug.cgi?id=1170697 or https://bugzilla.redhat.com/show_bug.cgi?id=1206702

Comment 2 Adrian Nistor 2015-05-12 16:33:02 UTC
This needs to be fixed in protostream. I'll add a variant of the FileDescriptorSource.fromResources that accepts a ClassLoader.

But until then, this can be very easily worked around by users: use FileDescriptorSource.addProtoFile(String name, InputStream contents) instead.