eclipse / elk

Eclipse Layout Kernel - Automatic layout for Java applications.
https://www.eclipse.org/elk/
Other
249 stars 83 forks source link

Bump Guava version to 21.0 #757

Closed j-barata closed 2 years ago

j-barata commented 3 years ago

Several classes are using com.google.common.collect.Streams, e.g :

The com.google.common.collect.Streams class was added in version 21.0 (see javadoc), but in ELK plugins the requirements for this dependency have been set to [15.0,19.0) in several pom.xml files.

It might be the cause of this exception :

Caused by: java.lang.NoClassDefFoundError: com/google/common/collect/Streams at org.eclipse.elk.alg.layered.p5edges.orthogonal.HyperEdgeSegmentSplitter.findFreeAreas(HyperEdgeSegmentSplitter.java:86) ~[org.eclipse.elk.alg.layered-0.7.1.jar:na] at org.eclipse.elk.alg.layered.p5edges.orthogonal.HyperEdgeSegmentSplitter.splitSegments(HyperEdgeSegmentSplitter.java:58) ~[org.eclipse.elk.alg.layered-0.7.1.jar:na] at org.eclipse.elk.alg.layered.p5edges.orthogonal.OrthogonalRoutingGenerator.breakCriticalCycles(OrthogonalRoutingGenerator.java:459) ~[org.eclipse.elk.alg.layered-0.7.1.jar:na] at org.eclipse.elk.alg.layered.p5edges.orthogonal.OrthogonalRoutingGenerator.routeEdges(OrthogonalRoutingGenerator.java:199) ~[org.eclipse.elk.alg.layered-0.7.1.jar:na] at org.eclipse.elk.alg.layered.p5edges.OrthogonalEdgeRouter.process(OrthogonalEdgeRouter.java:252) ~[org.eclipse.elk.alg.layered-0.7.1.jar:na] at org.eclipse.elk.alg.layered.p5edges.OrthogonalEdgeRouter.process(OrthogonalEdgeRouter.java:1) ~[org.eclipse.elk.alg.layered-0.7.1.jar:na] at org.eclipse.elk.alg.layered.ElkLayered.hierarchicalLayout(ElkLayered.java:252) ~[org.eclipse.elk.alg.layered-0.7.1.jar:na] at org.eclipse.elk.alg.layered.ElkLayered.doCompoundLayout(ElkLayered.java:185) ~[org.eclipse.elk.alg.layered-0.7.1.jar:na] at org.eclipse.elk.alg.layered.LayeredLayoutProvider.layout(LayeredLayoutProvider.java:53) ~[org.eclipse.elk.alg.layered-0.7.1.jar:na] at org.eclipse.elk.core.RecursiveGraphLayoutEngine.executeAlgorithm(RecursiveGraphLayoutEngine.java:250) ~[org.eclipse.elk.core-0.7.1.jar:na] at org.eclipse.elk.core.RecursiveGraphLayoutEngine.layoutRecursively(RecursiveGraphLayoutEngine.java:218) ~[org.eclipse.elk.core-0.7.1.jar:na] at org.eclipse.elk.core.RecursiveGraphLayoutEngine.layout(RecursiveGraphLayoutEngine.java:96) ~[org.eclipse.elk.core-0.7.1.jar:na] at org.eclipse.elk.core.RecursiveGraphLayoutEngine.layout(RecursiveGraphLayoutEngine.java:72) ~[org.eclipse.elk.core-0.7.1.jar:na]

uruuru commented 3 years ago

Note: Minimum versions were supposed to be removed as part of #720. I could imagine that it was only applied to MANIFEST.MFs and pom.xmls were forgotten.

Edit: Further note that #720 is part of (not yet released) ELK 0.8.0. Your stacktrace shows 0.7.1. as version.

j-barata commented 3 years ago

Actually, I was wondering about the maximum version requirement "guava version < 19.0" implied by the ...,19.0) setting.

Shouldn't it be either removed or upgraded to ...,21.0] or ...,22.0) ?

uruuru commented 3 years ago

Yes, at least your Streams example strongly suggests this.

Following the argumentation of #720 (i.e. we do not have the time to properly maintain minimum/maximum versions), I'd suggest to omit the maximum as well. @le-cds?