Git Product home page Git Product logo

Comments (10)

ropalka avatar ropalka commented on August 28, 2024

It is not possible to integrate Eclipse transformer with Batavia project at the moment because both projects use different abstractions. Batavia's main abstraction is Resource - which is any entry inside jar file or any file on file system. The Eclipse transformer's abstraction is CLI and passing it configuration args. (FYI @jfdenise @scottmarlow)

from batavia.

jfdenise avatar jfdenise commented on August 28, 2024

Raw thinking, could we have an integration at a higher level to handle jar transformation only? Mainly at the Tools API level? Batavia would abstract the transformer in use. Galleon would still be able to select the transformer tools backend.

from batavia.

ropalka avatar ropalka commented on August 28, 2024

What we could do is to modify Batavia project to be configurable similar way like Eclipse transformer is, that is we should introduce Option abstraction, TransformerBuilder.addOption(name, value) methods, maybe Changes abstraction including Transformer.getChanges() method?

from batavia.

ropalka avatar ropalka commented on August 28, 2024

Our new abstractions would become Option and Change etc instead of Transformer.Resource
and we would move bunch of code from Tools API to Transformer API, WDYT @scottmarlow ?

from batavia.

scottmarlow avatar scottmarlow commented on August 28, 2024

Our new abstractions would become Option and Change etc instead of Transformer.Resource
and we would move bunch of code from Tools API to Transformer API,
Do you mean to move bunch of code from Batavia Tools API to Eclipse Transformer API? I assume you mean Batavia Transformer API, as I don't see an API in Eclipse Transformer. I think that this idea is good, unless we can think of a way to change Eclipse Transformer to be easier to integrate with.

issues/28 is for moving the cli into its own project, to better support maven/gradle drivers. Should we stick to passing parameters the Eclipse Transformer CLI style interface way or do we want a better integration point than org.eclipse.transformer.Transformer#runWith?

from batavia.

scottmarlow avatar scottmarlow commented on August 28, 2024

Raw thinking, could we have an integration at a higher level to handle jar transformation only? Mainly at the Tools API level? Batavia would abstract the transformer in use. Galleon would still be able to select the transformer tools backend.

If the question is could we remove ToolUtils#transformClassFile, I think we could, if that helps our integration with Eclipse Transformer.

from batavia.

ropalka avatar ropalka commented on August 28, 2024

Our new abstractions would become Option and Change etc instead of Transformer.Resource
and we would move bunch of code from Tools API to Transformer API,
Do you mean to move bunch of code from Batavia Tools API to Eclipse Transformer API? I assume you mean Batavia Transformer API, as I don't see an API in Eclipse Transformer. I think that this idea is good, unless we can think of a way to change Eclipse Transformer to be easier to integrate with.

issues/28 is for moving the cli into its own project, to better support maven/gradle drivers. Should we stick to passing parameters the Eclipse Transformer CLI style interface way or do we want a better integration point than org.eclipse.transformer.Transformer#runWith?

It looks like Eclipse transformer is little bit behind us WRT proper separation of tools vs. transformer code. Anyway they are going to move the proper way.

from batavia.

ropalka avatar ropalka commented on August 28, 2024

Raw thinking, could we have an integration at a higher level to handle jar transformation only? Mainly at the Tools API level? Batavia would abstract the transformer in use. Galleon would still be able to select the transformer tools backend.

If the question is could we remove ToolUtils#transformClassFile, I think we could, if that helps our integration with Eclipse Transformer.

Yes, that was the question @scottmarlow . It seems we have three options on table ATM :

  1. short term - we adjust our API to be able to integrate via current Eclipse transformer CLI
  2. middle term - wait little bit and see what will be the outcome of ISSUE-28
  3. long term - participate on Eclipse project and adjust their API little bit to be better integrable with our API

from batavia.

jfdenise avatar jfdenise commented on August 28, 2024

With respect to integration in galleon I would vote for 2) and 3). Currently as soon as we have an eclipse transformer release that integrates the fix we need, I could release a galleon-plugins that calls into eclipse transformer directly. Then switching to use Batavia when ready would be an easy task.

from batavia.

ropalka avatar ropalka commented on August 28, 2024

Initial Eclipse transformer integration is done. Thanks @scottmarlow for review, @jfdenise for valuable feedback.

from batavia.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.