SCIFIO and imageJ1

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

SCIFIO and imageJ1

Pietro Incardona
Hi All

Is there any way to pack a jar with SCIFIO included that work also in
imageJ1

Cheers
Pietro


_______________________________________________
ImageJ-devel mailing list
[hidden email]
http://imagej.net/mailman/listinfo/imagej-devel
Reply | Threaded
Open this post in threaded view
|

Re: SCIFIO and imageJ1

Curtis Rueden
Hi Pietro,

> Is there any way to pack a jar with SCIFIO included that work also in
> imageJ1

Certainly. But it would help to be more specific about what you are trying to do.

By "pack a jar with SCIFIO" do you mean "create an uber-JAR with dependencies embedded"? Or something else?

By "ImageJ1" do you mean the vanilla ImageJ1 distribution from imagej.nih.gov? If so, you can do it, but I would recommend saving yourself a lot of work and just recommending people use ImageJ2, which comes with SCIFIO already bundled. But if you really want to go that route, look at the maven-shade-plugin or maven-assembly-plugin [1].

Regards,
Curtis

[1] Here is a starting point for how we create an ImageJ2 uber-JAR with dependencies: https://github.com/imagej/imagej/blob/imagej-2.0.0-rc-22/pom.xml#L421-L648. Your use case would likely be simpler.

On Wed, Jan 14, 2015 at 7:18 AM, Pietro Incardona <[hidden email]> wrote:
Hi All

Is there any way to pack a jar with SCIFIO included that work also in imageJ1

Cheers
Pietro


_______________________________________________
ImageJ-devel mailing list
[hidden email]
http://imagej.net/mailman/listinfo/imagej-devel


_______________________________________________
ImageJ-devel mailing list
[hidden email]
http://imagej.net/mailman/listinfo/imagej-devel
Reply | Threaded
Open this post in threaded view
|

Re: SCIFIO and imageJ1

Pietro Incardona
Hi Curtis

I already strongly suggest to use Fiji/ImageJ2, but I would like (if reasonably possible) to maintain an imageJ version

I packed this in the jar file

/imglib2-2.0.0-beta-26.jar
/imglib2-2.0.0-SNAPSHOT.jar
/imglib2-algorithms-2.0.0-beta-26.jar
/imglib2-algorithms-gpl-2.0.0-beta-26.jar
/imglib2-algorithms-legacy-2.0.0-beta-26.jar
/imglib2-ij-2.0.0-beta-26.jar
/imglib2-meta-2.0.0-beta-26.jar
/imglib2-ops-2.0.0-beta-26.jar
/imglib2-realtransform-2.0.0-beta-26.jar
/imglib2-ui-2.0.0-SNAPSHOT.jar
/scifio-0.16.5.jar
/scifio-bf-compat-1.8.4.jar
/scifio-cli-0.1.0.jar
/scifio-jai-imageio-1.1.0.jar
/scifio-lifesci-0.5.2.jar
/scifio-ome-xml-0.9.2.jar
/scifio-tools-0.14.0.jar
/scijava-common-2.33.0.jar
/scijava-plugins-commands-0.1.7.jar
/scijava-plugins-platforms-0.1.2.jar
/scijava-plugins-text-markdown-0.1.1.jar
/scijava-plugins-text-plain-0.1.1.jar
/scijava-ui-awt-0.1.2.jar
/scijava-ui-swing-0.3.0.jar


Apparently it crashes on the instruction

        // create the ImgOpener
        ImgOpener imgOpener = new ImgOpener();

ImageJ 1.48v; Java 1.6.0_24 [64-bit]; Linux 3.16.3-200.fc20.x86_64; 10MB of 455MB (2%)
 
java.lang.IllegalArgumentException: No compatible service: io.scif.SCIFIOService
    at org.scijava.service.ServiceHelper.loadService(ServiceHelper.java:242)
    at org.scijava.service.ServiceHelper.loadService(ServiceHelper.java:193)
    at org.scijava.service.ServiceHelper.loadServices(ServiceHelper.java:169)
    at org.scijava.Context.<init>(Context.java:234)
    at org.scijava.Context.<init>(Context.java:195)
    at org.scijava.Context.<init>(Context.java:138)
    at org.scijava.Context.<init>(Context.java:126)
    at io.scif.img.AbstractImgIOComponent.<init>(AbstractImgIOComponent.java:57)
    at io.scif.img.ImgOpener.<init>(ImgOpener.java:94)
    at mosaic.core.utils.MosaicTest.processResult(MosaicTest.java:178)
    at mosaic.core.utils.MosaicTest.testPlugin(MosaicTest.java:335)
    at mosaic.plugins.test.Jtest.naturalization(Jtest.java:32)
    at mosaic.plugins.Jtest.setup(Jtest.java:39)
    at ij.plugin.filter.PlugInFilterRunner.<init>(PlugInFilterRunner.java:47)
    at ij.IJ.runUserPlugIn(IJ.java:201)
    at ij.IJ.runPlugIn(IJ.java:163)
    at ij.Executer.runCommand(Executer.java:131)
    at ij.Executer.run(Executer.java:64)
    at java.lang.Thread.run(Thread.java:662)


Cheers
Pietro

On 01/14/2015 05:07 PM, Curtis Rueden wrote:
Hi Pietro,

> Is there any way to pack a jar with SCIFIO included that work also in
> imageJ1

Certainly. But it would help to be more specific about what you are trying to do.

By "pack a jar with SCIFIO" do you mean "create an uber-JAR with dependencies embedded"? Or something else?

By "ImageJ1" do you mean the vanilla ImageJ1 distribution from imagej.nih.gov? If so, you can do it, but I would recommend saving yourself a lot of work and just recommending people use ImageJ2, which comes with SCIFIO already bundled. But if you really want to go that route, look at the maven-shade-plugin or maven-assembly-plugin [1].

Regards,
Curtis

[1] Here is a starting point for how we create an ImageJ2 uber-JAR with dependencies: https://github.com/imagej/imagej/blob/imagej-2.0.0-rc-22/pom.xml#L421-L648. Your use case would likely be simpler.

On Wed, Jan 14, 2015 at 7:18 AM, Pietro Incardona <[hidden email]> wrote:
Hi All

Is there any way to pack a jar with SCIFIO included that work also in imageJ1

Cheers
Pietro


_______________________________________________
ImageJ-devel mailing list
[hidden email]
http://imagej.net/mailman/listinfo/imagej-devel



_______________________________________________
ImageJ-devel mailing list
[hidden email]
http://imagej.net/mailman/listinfo/imagej-devel
Reply | Threaded
Open this post in threaded view
|

Re: SCIFIO and imageJ1

Curtis Rueden
Hi Pietro,

> java.lang.IllegalArgumentException: No compatible service:
> io.scif.SCIFIOService

You have been bitten by the annotation combining problem: many of the JAR files you are trying to combine have a file at META-INF/json/org.scijava.plugin.Plugin, which lists the plugins included in that JAR file. All of these files need to be appended to one another and stored within your uber-JAR, or else plugins will not be discoverable. The scheme you are using to build your uberjar is likely not merging these files as needed.

We provide some code in scijava-common to facilitate combining this metadata in the correct way. If you are using Maven to build, you can use it via the following configuration in your pom.xml:


See also:

Regards,
Curtis


On Thu, Jan 15, 2015 at 7:02 AM, Pietro Incardona <[hidden email]> wrote:
Hi Curtis

I already strongly suggest to use Fiji/ImageJ2, but I would like (if reasonably possible) to maintain an imageJ version

I packed this in the jar file

/imglib2-2.0.0-beta-26.jar
/imglib2-2.0.0-SNAPSHOT.jar
/imglib2-algorithms-2.0.0-beta-26.jar
/imglib2-algorithms-gpl-2.0.0-beta-26.jar
/imglib2-algorithms-legacy-2.0.0-beta-26.jar
/imglib2-ij-2.0.0-beta-26.jar
/imglib2-meta-2.0.0-beta-26.jar
/imglib2-ops-2.0.0-beta-26.jar
/imglib2-realtransform-2.0.0-beta-26.jar
/imglib2-ui-2.0.0-SNAPSHOT.jar
/scifio-0.16.5.jar
/scifio-bf-compat-1.8.4.jar
/scifio-cli-0.1.0.jar
/scifio-jai-imageio-1.1.0.jar
/scifio-lifesci-0.5.2.jar
/scifio-ome-xml-0.9.2.jar
/scifio-tools-0.14.0.jar
/scijava-common-2.33.0.jar
/scijava-plugins-commands-0.1.7.jar
/scijava-plugins-platforms-0.1.2.jar
/scijava-plugins-text-markdown-0.1.1.jar
/scijava-plugins-text-plain-0.1.1.jar
/scijava-ui-awt-0.1.2.jar
/scijava-ui-swing-0.3.0.jar


Apparently it crashes on the instruction

        // create the ImgOpener
        ImgOpener imgOpener = new ImgOpener();

ImageJ 1.48v; Java 1.6.0_24 [64-bit]; Linux 3.16.3-200.fc20.x86_64; 10MB of 455MB (2%)
 
java.lang.IllegalArgumentException: No compatible service: io.scif.SCIFIOService
    at org.scijava.service.ServiceHelper.loadService(ServiceHelper.java:242)
    at org.scijava.service.ServiceHelper.loadService(ServiceHelper.java:193)
    at org.scijava.service.ServiceHelper.loadServices(ServiceHelper.java:169)
    at org.scijava.Context.<init>(Context.java:234)
    at org.scijava.Context.<init>(Context.java:195)
    at org.scijava.Context.<init>(Context.java:138)
    at org.scijava.Context.<init>(Context.java:126)
    at io.scif.img.AbstractImgIOComponent.<init>(AbstractImgIOComponent.java:57)
    at io.scif.img.ImgOpener.<init>(ImgOpener.java:94)
    at mosaic.core.utils.MosaicTest.processResult(MosaicTest.java:178)
    at mosaic.core.utils.MosaicTest.testPlugin(MosaicTest.java:335)
    at mosaic.plugins.test.Jtest.naturalization(Jtest.java:32)
    at mosaic.plugins.Jtest.setup(Jtest.java:39)
    at ij.plugin.filter.PlugInFilterRunner.<init>(PlugInFilterRunner.java:47)
    at ij.IJ.runUserPlugIn(IJ.java:201)
    at ij.IJ.runPlugIn(IJ.java:163)
    at ij.Executer.runCommand(Executer.java:131)
    at ij.Executer.run(Executer.java:64)
    at java.lang.Thread.run(Thread.java:662)


Cheers
Pietro


On 01/14/2015 05:07 PM, Curtis Rueden wrote:
Hi Pietro,

> Is there any way to pack a jar with SCIFIO included that work also in
> imageJ1

Certainly. But it would help to be more specific about what you are trying to do.

By "pack a jar with SCIFIO" do you mean "create an uber-JAR with dependencies embedded"? Or something else?

By "ImageJ1" do you mean the vanilla ImageJ1 distribution from imagej.nih.gov? If so, you can do it, but I would recommend saving yourself a lot of work and just recommending people use ImageJ2, which comes with SCIFIO already bundled. But if you really want to go that route, look at the maven-shade-plugin or maven-assembly-plugin [1].

Regards,
Curtis

[1] Here is a starting point for how we create an ImageJ2 uber-JAR with dependencies: https://github.com/imagej/imagej/blob/imagej-2.0.0-rc-22/pom.xml#L421-L648. Your use case would likely be simpler.

On Wed, Jan 14, 2015 at 7:18 AM, Pietro Incardona <[hidden email]> wrote:
Hi All

Is there any way to pack a jar with SCIFIO included that work also in imageJ1

Cheers
Pietro


_______________________________________________
ImageJ-devel mailing list
[hidden email]
http://imagej.net/mailman/listinfo/imagej-devel



_______________________________________________
ImageJ-devel mailing list
[hidden email]
http://imagej.net/mailman/listinfo/imagej-devel



_______________________________________________
ImageJ-devel mailing list
[hidden email]
http://imagej.net/mailman/listinfo/imagej-devel