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

Where is the XMP SDK for Java? #5

Open
Lonzak opened this issue Apr 30, 2020 · 24 comments
Open

Where is the XMP SDK for Java? #5

Lonzak opened this issue Apr 30, 2020 · 24 comments

Comments

@Lonzak
Copy link

Lonzak commented Apr 30, 2020

Sorry for posting this here but I didn't know any place else.

On your webpage https://www.adobe.com/devnet/xmp.html the old Java XMP version 5.1.3 is linked. Then on maven central one can find a slightly newer version 6.1.10 but still it is from 2016. But then here on github there is no java version at all. So please add repo for the Java SDK here - this would be highly appreciated!

Update in 2022, management summary:
According to Pawan all version 6.X releases were accidentally been released. All users should continue to use the latest version 5.X. This "accident" continued over the course of 4 years with several version:

  • 6.1.11 released in Nov, 2020 by accident
  • 6.1.10 released in Sep, 2016 by accident
  • 6.1.8 released in Sep, 2016 by accident
  • 6.1.6 released in Sep, 2016 by accident
  • 6.0.6 released in Sep, 2016 by accident
  • 6.0.4 released in Sep, 2016 by accident

Update in Nov. 2022

Leonard Rosenthol the chief PDF architect commented on this thread (thank you Leonard for honoring us here) and stated the following:

The 6.1.11 [...] is an official Adobe distribution. You can/should use that as it also includes an updated license file.

I have to admit: I am (and probably the whole community is) now totally confused...

@pawankishorsingh
Copy link
Contributor

Hi Lonzak
Java XMP version 5.1.3 is indeed the last "officially released" SDK from Adobe.
The newer ones which you are seeing on nexus are not official release yet. In fact it had inadvertently got posted due to an unknown issue. Hence we have not mentioned that in our https://www.adobe.com/devnet/xmp.html official page.

So, you are requested to proceed with 5.1.3 version only.
Hope it helps.

Regards
Pawan

@Lonzak
Copy link
Author

Lonzak commented Apr 30, 2020

Are there any plans to put the Java project also on github? This would really help and focus development/bug reporting etc...

@pawankishorsingh
Copy link
Contributor

Hi Lonzak

We do not have any immediate plan to post our Java SDK onto github but we would definitely like to consider it in future. Publishing on github would require performing some necessary ground work, taking few approvals and most importantly a JDK upgrade. Considering the fact that last release had happened many years back, we might need to perform a JDK upgrade to JDK8 or JDK11 before going onto github. So, you can see that it'll take some effort to do all that.

Till then, please proceed with the way things are at present.

Regards
Pawan

@Lonzak
Copy link
Author

Lonzak commented May 3, 2020

A release here on github would be quite a worthy goal. An upgrade to java 8 would also be nice. Since you already provided the XMP SDK for C++ here on github it isn't the first time you are walking down that path - even though there are things to be worked out, it is only consistent to do so.

For me there is no other way as to continue to use version 5.13. But I am really looking forward for the release of a newer version here on github. This post should just highlight that there are still people using the java version and appreciate what you are doing. (And looking forward for a release here)

@arpitapanda05
Copy link
Contributor

@pawankishorsingh Please check this.

@Lonzak
Copy link
Author

Lonzak commented Mar 25, 2021

Since I originally posted here a new version has been released: 6.1.11 in November 2020. So this version is also not official yet? This is really quite strange: You continue to release "inofficial" versions to maven central but how should people know that? I mean don't get me wrong: I am happy that the Java XMP SDK is still somehow maintained and not dead which I would think now if the last version would still be 5.1.3 (from 2016).

@Priyanka-Gupta

It has been nearly a year and I would like to encourage you (once again) to setup the java SDK here on github. It is really worth it and should be part of Adobe's open source strategy. Really looking forward to it.

@Lonzak
Copy link
Author

Lonzak commented Feb 24, 2022

@pawankishorsingh @arpitapanda05 @Priyanka-Gupta

One year has passed and I would like to ask and remind you about the status of the Java XMP SDK.
Have you been able to take some steps in the mentioned direction?
When I look at the official page it seems that the opposite is the case:
https://www.adobe.com/devnet/xmp.html

The java XMP SDK Link is dead - so it seems adobe is abandoning its Java support :-(
People and projects are using this - so this is definitely the wrong decision!

@lrosenthol
Copy link

The 6.1.11 that was posted at https://search.maven.org/artifact/com.adobe.xmp/xmpcore/6.1.11/bundle is an official Adobe distribution. You can/should use that as it also includes an updated license file.

@Lonzak
Copy link
Author

Lonzak commented Nov 23, 2022

The 6.1.11 that was posted at https://search.maven.org/artifact/com.adobe.xmp/xmpcore/6.1.11/bundle is an official Adobe distribution. You can/should use that as it also includes an updated license file.

Hi Leonard,

thank you for your post however now I am really confused: First someone (from adobe) tells me, that all those 6.X version have been accidentally released and should not be used. Thus I went back using 5.X. Then this "accident" continues to happen over a period of 4 years. Ok now you tell me it is the official version and not an accident.
It would be really good if you could create a Java XMP github project (same as for the XMP-Toolkit). This would massively help building trust in the project and there would be a central place for bugs, fixes and so on. Other developers would help with fixes and everybody is happy ;-)

Since I know you for a long time I trust you. Thank you for the clarification...
Lonzak

PS: Also the Java link on your official XMP page is dead - which doesn't help either...

@stechio
Copy link

stechio commented Dec 27, 2022

I totally agree with @Lonzak.

I'm glad that a senior Adobe representative made a clear statement on this topic, yet it's quite bewildering that, previously, another employee confidently claimed that 6+ releases on maven central were "not official" and "inadvertently got posted due to an unknown issue" (WHAT!?!).

As suggested, a Java XMP github project would be the obvious way to go for the benefit of both maintainers and users.

Update: inspecting com.adobe.xmp:xmpcore:6.1.11 artifact, I noticed its root package (com.adobe.internal.xmp) actually feels strangely unofficial compared to com.adobe.xmp:xmpcore:5.1.3 (com.adobe.xmp); furthermore, no license file is included under META-INF (whilst 5.1.3 contains META-INF/LICENSE). Now I'm even more confused...

@tsmock
Copy link

tsmock commented Aug 16, 2023

Publishing on github would require performing some necessary ground work, taking few approvals and most importantly a JDK upgrade.

As a stupid question, is a JDK upgrade absolutely necessary? The java library is currently (as of 6.1.11) compiled against Java 6, and there is probably no reason to change that (caveat: Java 17 does not support compiling against Java 6).

For everyone else, I was able to generate a pom file fairly easily for https://github.com/drewnoakes/adobe-xmp-core (6.1.10 source code).

Probably the "biggest" thing that needs to be done is converting new <Number> to <Number>.parse<Number>. But that still doesn't require a JDK upgrade. The parse methods were largely added in Java 1.5.

pom.xml.zip -- stick the source code from https://github.com/drewnoakes/adobe-xmp-core in src/main/java. I used git submodule add https://github.com/drewnoakes/adobe-xmp-core.git src/main/java.

@Lonzak
Copy link
Author

Lonzak commented Aug 16, 2023

I agree.
A java update would (hopefully) mean updating it to Java 8. We have lots of customers which still uses that version.
And in the end it is a library where Java 8 should suffice imho.

@tsmock
Copy link

tsmock commented Aug 16, 2023

I probably should have added that we (JOSM) are using this library in Java 8-20 via metadata-extractor. When I was testing the pom.xml I generated, I compiled against Java 6 (using a Java 8 install) and against Java 20. The only warnings are due to new <Primitive> calls.

With that said, updating to Java 8 would let the library use streams and callback functions. But it is not (IMO) necessary for making the library available on GitHub.

@Lonzak
Copy link
Author

Lonzak commented Aug 16, 2023

@pawankishorsingh @arpitapanda05 @Priyanka-Gupta

One and a half year passed and I would like to remind you about the status of the Java XMP SDK.
Have you been able to take some steps in the mentioned direction?
When I look at the official page it seems that the opposite is the case - the java download has been removed.
https://www.adobe.com/devnet/xmp.html

@StefanOltmann
Copy link

I have ported the source code from the most recent official release, version 5.1.3, to Kotlin Multiplatform. This was necessary to integrate it into my application. It should be compatible with plain Java usage. Feel free to explore it further to determine if it aligns with your needs.

https://github.com/Ashampoo/xmpcore

@mlemnian
Copy link

There is a reconstruction of the source code using the maven source code artifacts:
https://github.com/drewnoakes/adobe-xmp-core

But this is unofficial.

I do wonder (like @Lonzak) why there is no official repo of the Java source code, and if not wanted, why is the official project page https://www.adobe.com/devnet/xmp.html only linking to the old source zip file https://download.macromedia.com/pub/developer/xmp/sdk/XMPCoreJava-5.1.3.zip and not all versions.

For those who wonder why I care?
In my project, my client wants a list of all open-source libs that are in use.
Including:

  1. Link to the project page
  2. Link to the source code (in case we or the client need to fix something on their own)
  3. Link to the license file of that used version(s)

The last two requirements can (currently) not be fulfilled.

@StefanOltmann
Copy link

@mlenmian, I acknowledge your concern.

I encountered similar challenges with my port, prompting me to adopt the following strategy: I linked to the most recent version of the project page on archive.org. To add an extra layer of precaution, I also included a screenshot of the original page (https://github.com/Ashampoo/xmpcore/tree/main/original_source) in case archive.org experiences any downtime.

Given the uncertain durability of the original source code link, I took the initiative to create a backup copy of it.

Regarding the usage of https://github.com/drewnoakes/adobe-xmp-core, it's important to note that the Maven source code artifacts come with a proprietary license, even though the POM file suggests it's BSD. Despite my multiple attempts to seek clarification from Adobe, I received no response. Therefore, if you prioritize safety, it would be prudent to opt for the older 5.1.3 version, which is explicitly BSD. This is precisely why I based my fork on that particular version.

@Lonzak
Copy link
Author

Lonzak commented Dec 11, 2023

Happy and sad 3rd birthday to the last (official but unofficial) version 6.1.11.

@pawankishorsingh @arpitapanda05 @Priyanka-Gupta @lrosenthol

Wouldn't you agree that an official Java XMP-SDK Github repo would be a fitting birthday present to the project?

@StefanOltmann
Copy link

I don't care anymore. My fork does what I need. :)

@StefanOltmann
Copy link

I just added a sample how to use my fork with Java:
https://github.com/Ashampoo/xmpcore/blob/main/examples/xmpcore-java-sample/src/main/java/Main.java

@Lonzak
Copy link
Author

Lonzak commented Jun 11, 2024

@StefanOltmann Nice. However for us it would be easier to use the official code from the official repo. Otherwise lots lots of checking, verifying and other manual steps necessary (securitywise) ...

@StefanOltmann
Copy link

@Lonzak Can you explain what you need to check securitywise?

The license is the same. No risk there.

@Lonzak
Copy link
Author

Lonzak commented Jun 12, 2024

Sure. I assume you are a nice guy without any bad intent. But lets draw another, purely hypothetical scenario: You are not and your repo is not from an organization like eclipse foundation, Apache or some company like *dobe. The only chance I have is to compare the original source code with your changes (e.g. your initial commit). Then afterwards all your commits need to be rechecked and verified that you didn't add a backdoor or did some license-poisoning or other bad stuff. And maybe everything checks out, but what about future commits when the project is used by more and more developers?

I don't like this thinking however due to recent events the policy regarding 3rd party dependencies has been changed (for us).

And another aspect comes to mind: You maybe maintain the library (updating dependencies, new Kotlin or Java versions etc) but do you continue developing it? E.g. adding new versions of the XMP standards etc? This would be an advantage if adobe would offer an official branch.
Don't get me wrong - I don't want to belittle your efforts of sharing the code ...

@StefanOltmann
Copy link

StefanOltmann commented Jun 12, 2024

your repo is not from an organization like eclipse foundation, Apache or some company like *dobe

It's not my private pet project, it's an official Ashampoo repo.

I don't like this thinking

I see that you want to be careful and that's a good thing I can relate to. I also like to take a closer look at my dependencies.

however due to recent events the policy regarding 3rd party dependencies has been changed (for us).

And what are your policies now? I'm curious.

Only official Apache & Google projects? That's quite restrictive and will lead to re-inventing the wheel, which can be quite costly.

You maybe maintain the library (updating dependencies, new Kotlin or Java versions etc) but do you continue developing it? E.g. adding new versions of the XMP standards etc?

No, not in that sense. I keep it functional, but I likely won't extend it to new versions of the XMP standard - if there should be any one day. It will take very long until a majority of apps will use a new standard anyway.

To be honest I even do not believe that there will be new versions. At least not anytime soon.

This would be an advantage if adobe would offer an official branch.

Yes, personally I would prefer that Adobe continues supporting the Java version or even better provides an official Kotlin Multiplatform SDK.

But for me it was time to realize that this won't happen. It's obvious that Adobe lost interest, but I needed my photo organizer app to handle XMP content. So I took action.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants