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

Extract libraries out of JabRef ("Toolkit") / Offer JabRef as library / jar / maven central / JabKit #110

Open
6 tasks
koppor opened this issue Aug 18, 2015 · 17 comments
Assignees
Labels
cli type: code-quality Issues related to code or architecture decisions type: feature

Comments

@koppor
Copy link
Member

koppor commented Aug 18, 2015

Bioclipse has used JabRef in the past for the BibTeX data model, and there has been talk for reusing JabRef in PathVisio too for working with biobliograph data... do you see any chance of splitting out a JabRef functionality library with core functionality (data model, look up of data based on DOI or PubMed ID, ...)?

Source message 32103878 from @egonw

@lenhard
Copy link
Member

lenhard commented Aug 19, 2015

Yes, I can see a chance for this. Especially because of all the cleanup and class sorting we are doing right now. The data model is now placed into the model package and core functionality is moved into logic. These two packages could be turned into a JabRef functionality library.

JabRef itself could benefit a lot from this separation of concerns. Unfortunately, there is still quite some way to go...

@lenhard
Copy link
Member

lenhard commented Aug 24, 2015

As of 86f635c the dependencies of the model package are limited to logic classes, classes from the Java API and the infamous global classes (Globals, JabRefPreferences). This is one step towards extracting a library

@stefan-kolb
Copy link
Member

@lenhard Didn't you remove the dependency on Globals in BibtexEntryType before?! It breaks my tests as I now? need an instance of JabRefPreferences in any test.

@lenhard
Copy link
Member

lenhard commented Aug 24, 2015

You mean BibtexEntryType, right?

In that case, no I did not. Neither now nor before. Not sure why JabRefPreferences should be a sudden dependency.

@stefan-kolb
Copy link
Member

BibtexEntryType sorry. Hm strange...we need to get rid of this, else any new BibTexEntry() calls will fail with NullPointerException if JabRefPreferences are not set.

@lenhard
Copy link
Member

lenhard commented Aug 24, 2015

Yes, classes like JabRefPreferences or Globals are a pure mess, but tied so closely into the code that they are close to impossible to remove.

I'll have a look at the constructor of BibTexEntry. Who know's, maybe I broke some kind of invisible static dependency ;)

@koppor koppor added type: code-quality Issues related to code or architecture decisions on-hold labels Apr 13, 2016
@koppor koppor closed this as completed Apr 13, 2016
@lenhard
Copy link
Member

lenhard commented Apr 13, 2016

Though we are much much closer to being able to extract libraries now, there is no tangible benefit for the JabRef project at the moment. Therefore, we'll put this issue on hold.

If you think your project would benefit from JabRef libraries, get in touch with us!

@buhtz
Copy link

buhtz commented Feb 23, 2018

JabRef librarias whould be nice. The point is how to access them.
Do I need to use Java here? That it is no choice for me.

There should be a plattform/language independed way. When the functionality of the library whould be accessiable via a binary I can call as an extern program (e. g. from my python script)...

@lenhard
Copy link
Member

lenhard commented Feb 23, 2018

Yes, we are talking about Java libraries here, available on a source repository such as maven central or jcenter. Since JabRef is written in Java, whatever we are extracting from it will also be Java.

So if you want to use such an extracted library, you would have to write a small Java wrapper that processes command line calls and invokes the library. Then you can call this wrapper from whatever. That would be pretty much the same that you can already do with JabRef's command line interface anyway, just at a (much) smaller scale.

@koppor
Copy link
Member Author

koppor commented Feb 23, 2018

I am going to experiment with jsweet of transpling Java to TypeScript. Not sure whether there is a transpiler for python.

As python user, I would just have a look at Py4J: https://stackoverflow.com/a/3793496/873282. Does that help?

@buhtz
Copy link

buhtz commented Aug 25, 2019

Why is this closed? Any success in that issue?

@stefan-kolb
Copy link
Member

stefan-kolb commented Aug 25, 2019

We dont have the resources to do this in foreseeable future. Please keep in mind we all do this in our free time without any payments.

@koppor
Copy link
Member Author

koppor commented Aug 25, 2019

@Codeberg-AsGithubAlternative-buhtz We are working on releasing a Java 11-based version. In parallel, we worked on CloudRef: https://jabref.github.io/cloudref/ (which has less support than JabRef in case you wonder where our priorities are 👼).

@koppor koppor changed the title Extract libraries out of JabRef Extract libraries out of JabRef ("Toolkit") Dec 16, 2019
@koppor koppor added the status: freeze Issues posponed to a (much) later future label May 10, 2021
@koppor koppor changed the title Extract libraries out of JabRef ("Toolkit") Extract libraries out of JabRef ("Toolkit") / Offer JabRef as library / jar / maven central May 10, 2021
@koppor koppor added the cli label Oct 26, 2022
@koppor
Copy link
Member Author

koppor commented Oct 26, 2022

For good CLI design: https://clig.dev/

@koppor
Copy link
Member Author

koppor commented Jul 15, 2023

I re-open, because this should be possible in "the near future"

@koppor koppor reopened this Jul 15, 2023
@koppor
Copy link
Member Author

koppor commented Jul 15, 2023

Ultimately, this should be usable in jbang

@ryan-carpenter
Copy link

This was referenced Sep 8, 2024
@koppor koppor changed the title Extract libraries out of JabRef ("Toolkit") / Offer JabRef as library / jar / maven central Extract libraries out of JabRef ("Toolkit") / Offer JabRef as library / jar / maven central / JabKit Nov 4, 2024
@koppor koppor removed the status: freeze Issues posponed to a (much) later future label Nov 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cli type: code-quality Issues related to code or architecture decisions type: feature
Projects
None yet
Development

No branches or pull requests

5 participants