FIXTradingCommunity / fix-orchestra

Machine readable rules of engagement
Apache License 2.0
71 stars 34 forks source link

Building Failure #92

Closed nngakosso closed 4 years ago

nngakosso commented 4 years ago

Hello,

I'm testing Orchestra right now but I have some issues regarding the building. Some have been resolved so far but right now I'm stuck with a "Build failure" happening.

Prior issues resolved where due to the pom.xml file which was missing these dependcies : `

javax.xml.bind jaxb-api 2.3.0

com.sun.xml.bind jaxb-core 2.3.0 com.sun.xml.bind jaxb-impl 2.3.0 ` And as I got a no goal specification error I added this to the : ` install` Now several packages and symbol cannot be found or don't exist.
donmendelson commented 4 years ago

I suspect that the problem is that version 1.5.0 was built with Java 8, prior to the introduction of the Java Platform Module System . With the introduction of modules, they moved JAXB and other packages out of the standard Java library into separate modules. If you build fix-orchestra with Java 8, it should still work, but if you are using a later version, it won't find those excluded modules without extra dependencies as you suggest.

See issue #38 for discussion. I have done some work to upgrade the project to Java 11 -- see pull request #91. However, I have not merged it because I didn't feel that the solution was totally solid yet. In particular, JAXB implementations are just beginning to declare modules, but some of those libraries are in beta or milestone rather than release versions.

donmendelson commented 4 years ago

@nngakosso you can still declare "repository" and other Maven modules of fix-orchestra as a dependency in your application project without having to build it, even if your project is using a later version of Java. All fix-orchestra modules are available from the Maven central repository. Use

        <dependency>
            <groupId>io.fixprotocol.orchestra</groupId>
            <artifactId>repository</artifactId>
            <version>1.5.0</version>
        </dependency>
nngakosso commented 4 years ago

@donmendelson I still have an issue regarding building even with this dependency added. Maybe because of Java 14. Building phase is not mandatory then? Didn't the jars needed to run?

donmendelson commented 4 years ago

@nngakosso you need to build this project, but not its dependencies.

(Eventually, this project will also result in a release, too. So you will be able to just download an executable and run it. But we have more testing and enhancing to do.)

florianaperroud commented 4 years ago

Hello Donald,

same issue with JAVA 11, when building only the repository project with the added dependency it fails with the below error

\fix-orchestra\repository\src\main\java\io\fixprotocol\orchestra\repository\RepositoryAccessor.java Error:(20, 49) java: package io.fixprotocol._2020.orchestra.repository does not exist Error:(21, 49) java: package io.fixprotocol._2020.orchestra.repository does not exist Error:(22, 49) java: package io.fixprotocol._2020.orchestra.repository does not exist Error:(23, 49) java: package io.fixprotocol._2020.orchestra.repository does not exist Error:(24, 49) java: package io.fixprotocol._2020.orchestra.repository does not exist Error:(25, 49) java: package io.fixprotocol._2020.orchestra.repository does not exist Error:(26, 49) java: package io.fixprotocol._2020.orchestra.repository does not exist Error:(27, 49) java: package io.fixprotocol._2020.orchestra.repository does not exist Error:(28, 49) java: package io.fixprotocol._2020.orchestra.repository does not exist Error:(29, 49) java: package io.fixprotocol._2020.orchestra.repository does not exist Error:(38, 17) java: cannot find symbol symbol: class Repository location: class io.fixprotocol.orchestra.repository.RepositoryAccessor Error:(43, 29) java: cannot find symbol symbol: class Repository location: class io.fixprotocol.orchestra.repository.RepositoryAccessor Error:(53, 10) java: cannot find symbol symbol: class CodeSetType location: class io.fixprotocol.orchestra.repository.RepositoryAccessor Error:(68, 37) java: cannot find symbol symbol: class ComponentRefType location: class io.fixprotocol.orchestra.repository.RepositoryAccessor Error:(68, 10) java: cannot find symbol symbol: class ComponentType location: class io.fixprotocol.orchestra.repository.RepositoryAccessor Error:(84, 10) java: cannot find symbol symbol: class Datatype location: class io.fixprotocol.orchestra.repository.RepositoryAccessor Error:(132, 29) java: cannot find symbol symbol: class GroupRefType location: class io.fixprotocol.orchestra.repository.RepositoryAccessor Error:(132, 10) java: cannot find symbol symbol: class GroupType location: class io.fixprotocol.orchestra.repository.RepositoryAccessor Error:(149, 10) java: cannot find symbol symbol: class MessageType location: class io.fixprotocol.orchestra.repository.RepositoryAccessor Error:(165, 41) java: cannot find symbol symbol: class MessageType location: class io.fixprotocol.orchestra.repository.RepositoryAccessor

donmendelson commented 4 years ago

This project was built with Java 8, prior to the introduction of Java Platform Module System (JPMS). I'm trying to work out a build procedure that will work for both Java 8 (non-modular) as well as Java 11 or 14 (modular). See #38

donmendelson commented 4 years ago

The project now builds multi-release jars that work in either Java 8 or 11+. Building is a bit complex since you need to configure a toolchain. Release 1.6.1 has been pushed to Maven central. I suggest you use jars from there if you have difficulty building.