Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-7710

CompatibilityProtoStreamMarshaller can't be set in server

This issue belongs to an archived project. You can view it, but you can't modify it. Learn more

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 9.1.0.Final, 9.0.3.Final
    • 9.0.0.Final
    • Server
    • None
    • Workaround Exists
    • Hide

      I worked around that by tweaking the module.xml to have an optional dependency to "org.infinispan.remote-query.server" module. e.g.

      <?xml version="1.0" encoding="UTF-8"?>
      
      <module xmlns="urn:jboss:module:1.3" name="org.infinispan">
         <resources>
            <resource-root path="infinispan-core.jar"/>
         </resources>
      
         <dependencies>
            <module name="javax.api"/>
            <module name="javax.transaction.api"/>
            <module name="org.jboss.logging"/>
            <module name="org.infinispan.commons" export="true"/>
            <module name="org.infinispan.query" optional="true" services="import"/>
            <!-- MOD :: START :: add remote query server dependency to be able to
             define org.infinispan.query.remote.CompatibilityProtoStreamMarshaller
             as compatibility marshaller
            -->
            <module name="org.infinispan.remote-query.server" optional="true"/>
            <!-- MOD :: END -->
            <module name="org.infinispan.lucene-directory" optional="true" export="true" services="export" />
            <module name="org.jboss.marshalling" services="import"/>
            <module name="org.jgroups"/>
            <module name="sun.jdk"/>
         </dependencies>
      </module>
      
      Show
      I worked around that by tweaking the module.xml to have an optional dependency to "org.infinispan.remote-query.server" module. e.g. <?xml version= "1.0" encoding= "UTF-8" ?> <module xmlns= "urn:jboss:module:1.3" name= "org.infinispan" > <resources> <resource-root path= "infinispan-core.jar" /> </resources> <dependencies> <module name= "javax.api" /> <module name= "javax.transaction.api" /> <module name= "org.jboss.logging" /> <module name= "org.infinispan.commons" export= " true " /> <module name= "org.infinispan.query" optional= " true " services= " import " /> <!-- MOD :: START :: add remote query server dependency to be able to define org.infinispan.query.remote.CompatibilityProtoStreamMarshaller as compatibility marshaller --> <module name= "org.infinispan.remote-query.server" optional= " true " /> <!-- MOD :: END --> <module name= "org.infinispan.lucene-directory" optional= " true " export= " true " services= "export" /> <module name= "org.jboss.marshalling" services= " import " /> <module name= "org.jgroups" /> <module name= "sun.jdk" /> </dependencies> </module>

      Out of the box, it's impossible to set compatibility marshaller to org.infinispan.query.remote.CompatibilityProtoStreamMarshaller in server because org.infinispan.main classloader can't access that class.

      As dan.berindei suggested in the mailing list, one way to avoid these kind of issues would be to allow class definitions to have slot:module:class format so that using the ModularClassResolver any class can be found.

              rh-ee-galder Galder ZamarreƱo
              rh-ee-galder Galder ZamarreƱo
              Archiver:
              rhn-support-adongare Amol Dongare

                Created:
                Updated:
                Resolved:
                Archived: