Book a Demo

Author Topic: Provide maven artifact for eaapi.jar and SSJavaCOM.dll  (Read 8226 times)

mliebelt

  • EA Novice
  • *
  • Posts: 8
  • Karma: +0/-0
    • View Profile
Provide maven artifact for eaapi.jar and SSJavaCOM.dll
« on: March 19, 2016, 05:24:36 am »
We are trying at the moment to use the Java API to create a kind of synchronization to other tools. The automation interface works well (when you are willing to invest a lot of time and try out what the methods really mean), but we are facing currently the following problem:

  • To use the interface, you have to include eaapi.jar in you classpath.
  • To use the corresponding DLL, it has to be found in your loadpath.

We are creating that with Java (of course) and are using Maven for the build process. Therefore, we would like to see the following:

  • one artifact that provides the eaapi.jar as resource
  • one artifact that provides the DLL as resource as well

Maven has the necessary tooling for that, but I don't think that everyone should define their own version of the API and DLL for their own. It would be much better if Sparxsystems would do that for all users and developers  that are using their API to automate Enterprise Architect.

Is there someone taken that task, so that in the future (when looking at http://search.maven.org/ and typing there e.g. eaapi in the search field, you will find the current (and previous) versions of the API as well as the corresponding DLL including the dependency part everyone has to define, to that applications work nicely when built with Maven.

Just a comment (have installed today in parallel EA 10, 11, 12, and 12.1). Here is for example the comparison of version 12.0 to 12.1

  • 12.0: eaapi.jar 115.631 bytes, SSJavaCOM.dll 631.296 bytes
  • 12.1: eaapi.jar 132.489 bytes, SSJavaCOM.dll 714.752 bytes

So the files are different, therefore we should have the option to differentiate the versions (and manage those in Maven).
« Last Edit: March 23, 2016, 02:40:43 am by mliebelt »

Eve

  • EA Administrator
  • EA Guru
  • *****
  • Posts: 8110
  • Karma: +119/-20
    • View Profile
Re: Provide maven artifact for eaapi.jar and SSJavaCOM.dll
« Reply #1 on: March 23, 2016, 08:44:25 am »
I'm not entirely sure what you are after. Is the jar file in some way incompatible with Maven? Do you think it should be registered with that website?

You should use whichever version corresponds to the EA version you have installed on your system. They do not function independently from EA, so an old version will not expose everything available, a newer version will expose methods that don't actually exist.

mliebelt

  • EA Novice
  • *
  • Posts: 8
  • Karma: +0/-0
    • View Profile
Re: Provide maven artifact for eaapi.jar and SSJavaCOM.dll
« Reply #2 on: March 23, 2016, 07:26:02 pm »
Thanks a lot for your feedback. My problem is the following:

How do I manage a Java application that has as dependency Enterprise Architect (in a special version) together with all other dependencies?
Normally dependencies are managed in an artifact repository e.g. Maven or then Nexus or Artifactory. This can only be done when artifacts are declared and shared with group-ID, artifact-ID, and version number.

Normally, this is done by the producer, so he provides his own repository, where you can get your dependencies resolved. I can do that on my own (as a lot of other people have already done it), but I think the producer should be interested in manage that on their own.

At the end, I want a mechanism that

* automatically resolves the dependencies (no manual download of anything), so the build process will produce everything needed
* ensures that the artifacts (eaapi.jar and SSJavaCOM.dll) are provided in a structure so that the Java program that uses them has some pre-defined way to use them (not the topic of this forum post).

I have hoped that someone from SparxSystems is reading those forums as well, and will give some "official" statement to it ...

Eve

  • EA Administrator
  • EA Guru
  • *****
  • Posts: 8110
  • Karma: +119/-20
    • View Profile
Re: Provide maven artifact for eaapi.jar and SSJavaCOM.dll
« Reply #3 on: March 24, 2016, 08:19:52 am »
At the end, I want a mechanism that

* automatically resolves the dependencies (no manual download of anything), so the build process will produce everything needed
* ensures that the artifacts (eaapi.jar and SSJavaCOM.dll) are provided in a structure so that the Java program that uses them has some pre-defined way to use them (not the topic of this forum post).
It's not that simple. Even if the build process was able to download and install EA and register paths to eaapi.jar and ssjavacom.dll. You still need a valid license to run it. There's also the issue of other add-ins, which can impact things like reporting or diagram rendering. These will require a separate install.

mliebelt

  • EA Novice
  • *
  • Posts: 8
  • Karma: +0/-0
    • View Profile
Re: Provide maven artifact for eaapi.jar and SSJavaCOM.dll
« Reply #4 on: March 24, 2016, 06:06:22 pm »
I did not say it is simple. But I think it is doable. And providing an installation of Enterprise Architect is a one-time action, using it in different unit tests in different applications on the build server would be doable with resources (JAR and DLL) provided as artifacts in a Maven repository. I have some more wishes on my list (documentation, source to eaapi.jar, ...), but the above ones are the most urgent ones. Providing an application on base of EA that automates something and works with different versions should be made possible.

Perhaps you can file a request in your (internal) issue tracker, so that this item is on the list of things for the future. We will come up with our own solution, to ensure that tests could make possible and automated on any build environment.