java-operator-plugins icon indicating copy to clipboard operation
java-operator-plugins copied to clipboard

Decouple Java class construction from frameworks

Open OneCricketeer opened this issue 2 years ago • 9 comments

Feature Request

Describe the problem you need a feature to resolve.

It seems the only way to use this is to rely on some additional Quarkus boilerplate (at least a properties file)

Describe the solution you'd like.

I'd like to just construct some POJOs from operator-sdk without needing to additionally cleanup extraneous resources that aren't required if I am not interested in using Quarkus.

OneCricketeer avatar Jan 28 '22 20:01 OneCricketeer

The "quarkus app-type" generator could construct a multi-module project that depends on the proposed "model" classes

OneCricketeer avatar Jan 28 '22 20:01 OneCricketeer

Out of curiosity, are you planning on using any other framework or do you plan on using plain Java?

metacosm avatar Feb 01 '22 14:02 metacosm

Currently using Spring, but I don't expect to be needing Autowire annotations or anything like that.

OneCricketeer avatar Feb 01 '22 15:02 OneCricketeer

Gotcha… that said, using the Quarkus extension doesn't really forces you into using any Quarkus-specific code but you do get some stuff for free, i.e. you only need to write your Reconciler but I can understand how that might still be an issue for folks.

metacosm avatar Feb 01 '22 15:02 metacosm

So, I already have an operator generated from Golang operator-sdk

I found this repo while searching for this solution, thinking it was the same idea rather than just having this repo be a sort of project initializer

OneCricketeer avatar Feb 01 '22 22:02 OneCricketeer

Having some target environment / framework flag probably might help. Also the generator could be integrated.

I idea was the same, just the implemented features are not there yet.

csviri avatar Feb 02 '22 09:02 csviri

OK, so the idea is to port your operator to Java? It would be interesting to hear about your use case if you could talk about it, that is :)

metacosm avatar Feb 02 '22 09:02 metacosm

@metacosm No, at least, not that I've heard. We have it written and deployed from the Go model, but have a Java API layer that constructs CRD payload representations, passes them around on some message queues, writes them to databases, etc. We currently are copying attributes between the two models manually, thus why I was searching for code generation utilities.

OneCricketeer avatar Feb 02 '22 12:02 OneCricketeer

@OneCricketeer we'd love to hear your feedback about a plain java or Spring based operator. We do have plans in the future to add other types of Java project generations, that's why this project is plural: java-operator-plugins but our first focus was using Quarkus extension and targeting Quarkus. If you would like to help add plain Java or some other flavor, we'd love to work with you on that.

jmrodri avatar Feb 10 '22 16:02 jmrodri