datacraft-dsc / starfish-java

Developer Toolkit for the Data Ecosystem
3 stars 2 forks source link

Java 8 support #13

Open mikera opened 5 years ago

mikera commented 5 years ago

We should ideally be able to support Java 8 if possible, since this is still in long term support and may still be used in many enterprise environments.

Will need to: a) Analyse dependencies, and ensure Java 8 compatibility if possible b) Ensure we are testing against Java 8 in CI as well as 11,12 etc.

AyushVerma2 commented 5 years ago

As per the current design/implementation, below mentioned java classes are tightly coupled with Squid.java classes, and it is not possible to remove that dependency. Also, the current version of squid is 0.6.2(https://mvnrepository.com/artifact/com.oceanprotocol/squid/0.6.2) which need java 11. Classes: Ocean.java SquidAgent SquidAsset AEVMAccount

The only way I can think as of now is to re-design Starfish-java and make is de-couple with squid-java.

AyushVerma2 commented 5 years ago

It will not be simple to just modify the scope of squid-java in the pom to test/runtime and it will be de-coupled. Can we have a core library of starfish may be starfish-core, which will have all the current functionality except integration with Ocean Network? Also, we will publish starfish-network, which will have starfish -core + the Ocean Network.

Also, it will help with Surfer integration, as now if someone wants to use surfer, all the library will be getting downloaded(starfish-clj,starfish-java,squid-java, all network lib) and it take a huge amount of time. Also, the java version in surfer version needs to upgrade to 11. Kindly suggest?

mikera commented 5 years ago

What would be helpful is a way that:

I think this should be possible, given Java's pretty strong focus on backward compatibility. We just need to compile starfish with Java 8 I think.

mikera commented 5 years ago

Can just skip Squid tests when running in Java 8 environment