Closed kwhopper closed 6 years ago
Looking at this further - I don't think there is a Java version of the latest. The Zip file only contains the C++ implementation.
I don't know the history of this project so I might be looking at the wrong thing. That said, maybe a .NET wrapper around the C++ libraries is possible. Desirable though?
Oops. There appears to be a 5.1.3 for Java further down the page. So - same questions.
There are actually several 6.x versions available on Maven as well:
http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22com.adobe.xmp%22%20AND%20a%3A%22xmpcore%22
I reconstructed a repository with this history and added you as a collaborator:
https://github.com/drewnoakes/adobe-xmp-core
There aren't so many changes between versions, although in the 6.x branch a bunch of classes were moved into an internal
package. It seems like many of these types could be user facing. Perhaps the interfaces are non-internal, while the implementations are.
For some reason, Adobe's XMP Toolkit page doesn't link to a 6.x version. We should definitely support 5.1.3 in this repo, and perhaps look at getting started on 6.x via a branch, though we don't need to reflect each version change -- we can jump straight to 6.1.10 in one go as far as I'm concerned.
Most of this is implemented now. I was curious where you might want me to commit it. It could go in a 6.1.10 branch of master if that seems reasonable.
There are only a couple of issues. The main one is a new utility function for ExtendedXMP requires an MD5 hash. The standard Cryptography classes for this aren't available in netstandard10. If you know of a nuget package that has this implemented, it could be added.
We might have to push up the minimum netstandard at some point anyway; .NET <= 4.5.1 or so have been 'dead' for over a year. netstandard20 does support the MD5 hash. I know you're shooting for maximum compatibility so food for thought mostly.
Here is the 6.1.10 code from last year:
As is noted, we should probably make a decision on whether netstandard1.0 is appropriate or if we should move on to something more modern. I'm not exactly sure how high we would need to move for MD5 to be supported natively. Another option is to find a good third party nuget that can do it. However, if PackageForJPEG is rarely or never used by XmpCore users, then it might be moot.
Let me know what you think, and I'm happy to update that branch as needed.
My 6.1.10 branch has all the recent changes up to 5.1.3.1
Thanks
Fantastic. Pushed to master. Pushed a few commits afterwards, only two of which are really worth reviewing. One relates to a possible bug fix (please verify) and the other is the implementation of the digest stuff for netstandard2.0.
It might be more logical to wrap the entire PackageforJPEG method in #if NETSTANDARD2_0
rather than just that one section of code. Let me know what you think.
Do you know what FfF
means? :)
BTW once you're happy I can put a release out.
We might have discussed this before or maybe somebody asked on the Java side -- did you want to keep a 5.1.3 branch alive or completely replace it with this?
... and not sure what FfF is. The context seems to suggest something like 'Feature for Future' or some other wild guess.
did you want to keep a 5.1.3 branch alive or completely replace it with this?
Anything that ends up on NuGet is tagged with the version number. If we have to go back and patch old versions, we can create branches for that at such a time. For now I'm happy to keep things simple and just work with master. We can always make things more sophisticated later if needed.
Thanks for getting this out. If you come across any Java XmpCore updates from Adobe in the future, I'm happy to try and incorporate them.
Adobe has released a new XMP Toolkit:
[http://www.adobe.com/devnet/xmp.html]()
Do you want to support the latest? Would it replace the current 'master' codebase, or should it live as another permanent branch so the current remains available?
I'm happy to try and start support, although there's no way of knowing how long it might take. Thanks