Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use Guava #2122

Closed
jelovirt opened this issue Oct 31, 2015 · 3 comments
Closed

Use Guava #2122

jelovirt opened this issue Oct 31, 2015 · 3 comments
Assignees
Labels
architecture Label is obsolete, do not use enhancement Changes to an existing feature
Milestone

Comments

@jelovirt
Copy link
Member

Take Guava into use. Main features to use include better collections and Optional before Java 8.

@jelovirt jelovirt added architecture Label is obsolete, do not use enhancement Changes to an existing feature labels Oct 31, 2015
@jelovirt jelovirt added this to the 2.3 milestone Oct 31, 2015
@jelovirt jelovirt added the ready label Nov 6, 2015
jelovirt added a commit that referenced this issue Nov 7, 2015
@jelovirt jelovirt closed this as completed Nov 7, 2015
@jelovirt jelovirt removed the ready label Nov 7, 2015
@jelovirt
Copy link
Member Author

jelovirt commented Nov 8, 2015

Adding Guava had to be reverted because Travis CI builds started to fail. There was some interaction between the Guava version that was used as a dependency and one that Gradle itself uses.

@jelovirt jelovirt reopened this Nov 8, 2015
@jelovirt jelovirt self-assigned this Nov 8, 2015
@jelovirt
Copy link
Member Author

@eerohele Currently the only reason why we can't use Guava is that Gradle uses Guava too and when we try to run OT during dist build, things break. How about we refactor the Gradle build to handle the dist a bit differently. Instead of running integrator and docs build in the same JVM as the rest of the build, we fork a new JVM for gradle and docs build. That way we would not have to patch the classloader and we could take Guava into use.

@eerohele
Copy link

I was actually looking into a similar problem with the DITA-OT Gradle Plugin yesterday: I discovered that Gradle bundles a fairly old version of commons-io, and my plugin uses a newer version of the same library. The older version of commons-io has a private method that was made public in later versions, and apparently the classloader randomly picks which version of commons-io to use, leading to spurious build errors when the daemon is enabled.

I can look into refactoring the Gradle buildfile when I get the chance.

jelovirt added a commit to jelovirt/dita-ot that referenced this issue Feb 25, 2016
jelovirt added a commit to jelovirt/dita-ot that referenced this issue Feb 26, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
architecture Label is obsolete, do not use enhancement Changes to an existing feature
Projects
None yet
Development

No branches or pull requests

2 participants