magefree / magefree/mage

Server: Update the JBoss/Wildfly serialisation infrastructure (OpenJDK 11+ support)

Open
#6,514 3 comments 0 reactions 0 assignees View on GitHub
FAQ refactoring server
Dominant language
Java
Stars
2.4k
Forks
940
Avg merge
2d 12h
Merged PRs (30d)
160

Description

Copying relevant discussion threads from #6394 :

>[I]t seems like the jboss serialisation infrastructure isn't happy with Java 11, and probably all needs upgrading (as while the server and client could talk to each other, they immediately died when I tried to create a match).

_Originally posted by @Craigacp in https://github.com/magefree/mage/pull/6394#issuecomment-622653539_

>It looks like the jboss remoting v2 library isn't part of Wildfly which is the new open source project for jboss related things, and also that the jboss remoting v2 library has a completely different API to the jboss remoting v3 library which is in wildfly. I've never used any of these things so it would be good to get some help from someone who understands anything about this remoting stuff. I've built distributed Java systems before, but they used RMI & Jini/Apache River, not jboss.

_Originally posted by @Craigacp in https://github.com/magefree/mage/pull/6394#issuecomment-622656610_

>The newer version of jboss remoting is basically undocumented and doesn't support general purpose RPC calls except for EJB things.

_Originally posted by @Craigacp in https://github.com/magefree/mage/pull/6394#issuecomment-623135687_

>JBoss Remoting supports custom serialization engine. So jboss's serialization can be replaced by java's or other implementation. See docs on [5.5. Marshalling](https://docs.jboss.org/jbossremoting/2.5.3/html_single/#d0e2822).

_Originally posted by @JayDi85 in https://github.com/magefree/mage/pull/6394#issuecomment-623137617_

>I believe so. There might be a set of command line arguments that let the jboss serialisation engine into the java.base module, but that's not a sustainable solution. Currently I get an error message out of the serialisation infrastructure saying it can't call "Optional.\", i.e. the constructor of optional (which it shouldn't be doing as optional has private constructors). That might be mitigated by allowing the unnamed module (i.e. the regular classpath) to have reflective access into java.base.
>
>It does raise the question why an optional is being stored as a field, which I couldn't find apart from inside the SoftValuesLoadingCache, but that doesn't seem to be transmitted anywhere.

_Originally posted by @Craigacp in https://github.com/magefree/mage/pull/6394#issuecomment-623146587_

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.