Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
91 commits
Select commit Hold shift + click to select a range
f1d3209
Implement taglets for OpField-related parameters
ctrueden Mar 25, 2021
c828b57
therapi-runtime-javadoc: first cut
gselzer Jul 21, 2020
e59cb63
Scrape javadoc for parameter data
gselzer Mar 5, 2021
aaf7a41
Change switch case to input from param
gselzer May 20, 2021
a73fcd3
Further flesh out JavadocParameterTest
gselzer May 20, 2021
ea3e5cc
Member: add description field
gselzer Mar 11, 2021
0b82e47
Test obtaining the descriptions of parameters
gselzer Mar 11, 2021
ed5ad58
Convert Parameter annotations to javadoc
gselzer Mar 12, 2021
250dc99
Avoid searching for @Parameter annotations
gselzer Mar 19, 2021
e1599cd
JavadocParameterTest: remove Parameter annotations
gselzer May 20, 2021
38b6c56
Remove obsolete Parameter imports
gselzer Mar 19, 2021
0432a0f
Move @Override annotations around javadoc
gselzer Mar 19, 2021
61d959d
Remove unused ItemIO imports
gselzer Mar 19, 2021
695636d
Add descriptions to OpString
gselzer Mar 23, 2021
b980b8f
Update paramString for Member descriptions
gselzer Mar 23, 2021
a9700b4
Clean TODOs, output names
gselzer Mar 23, 2021
908d4de
Consolidate OpInfo printout methods
gselzer Mar 25, 2021
c784892
Remove remove-params.sh script
gselzer Mar 25, 2021
c71f35e
Update parent to pom-scijava 30.0.0
gselzer Mar 26, 2021
acd28ce
Make @input and @param identical within Javadoc
gselzer Apr 6, 2021
36d262c
Prevent NSEExceptions when OpMethod type incorrect
gselzer Apr 8, 2021
82a9d14
Make javadoc parsing robust against OpDependency
gselzer Apr 9, 2021
40c4027
Comment method
gselzer Apr 9, 2021
c3ba23f
Track OpDependencies with a taglet
gselzer Apr 9, 2021
7caa822
Add javadoc scraping tests
gselzer Apr 9, 2021
aa2d8af
Comment JavadocParameterData
gselzer Apr 9, 2021
dd09256
Delete javax.annotation.processing.Processor file
gselzer Apr 22, 2021
91b4f91
generate module-info via Apache Velocity
gselzer Apr 23, 2021
92e86d9
Remove Parameter/ItemIO imports from .vm files
gselzer May 14, 2021
fdc1556
Establish platform independence in Module testing
gselzer May 14, 2021
655fd72
pom: remove dependency on therapi-runtime-javadoc-scribe
gselzer May 14, 2021
18c747e
Disable custom javadoc taglets for methods/classes
gselzer May 14, 2021
c229192
Remove explicit notation of annotation processors
gselzer May 19, 2021
0f2d944
scijava/scijava-ops/pom.xml: Remove versioning
gselzer May 19, 2021
c6561c2
Remove annotation processor options
gselzer May 19, 2021
f99bc5e
Move therapi annotation processor upstream
gselzer May 19, 2021
5222991
scijava-ops/pom.xml: Delete jar-plugin config
gselzer May 19, 2021
a654a04
Remove compiler config
gselzer May 20, 2021
2334b86
Initialize scijava-struct module
gselzer May 20, 2021
021c441
scijava-ops: depend on scijava-struct
gselzer May 20, 2021
d090c1c
Install scijava-taglets before the reactor build
ctrueden May 21, 2021
b8f3d93
WIPPY: add package cycle enforcer to incubator
gselzer Jun 28, 2021
119f9d1
Move Op to org.scijava.ops
gselzer Jun 28, 2021
77109af
Move OpCollection to org.scijava.ops
gselzer Jun 28, 2021
cb9734c
Move OpBuilder to org.scijava.ops
gselzer Jun 28, 2021
30699f7
Move Hints/OpHints to org.scijava.ops
gselzer Jun 28, 2021
0ca0882
Extract OpService interface
gselzer Jun 29, 2021
3b99ab4
Extract OpRef interface
gselzer Jun 29, 2021
6b430d5
OpMatchingException: Extend RuntimeException
gselzer Jun 29, 2021
55937a6
Move OpCandidate to org.scijava.ops
gselzer Jun 29, 2021
745f8d7
Move util tests from org.scijava.ops to util package
gselzer Jun 29, 2021
d433149
Move OpWrapper to org.scijava.ops package
gselzer Jun 29, 2021
793f8b6
Remove HashMaps from FifaceUtils classes
gselzer Jun 29, 2021
d14c3a6
WIP: Move fiface utility methods to OpBuilder
gselzer Jun 29, 2021
d5fc7ed
Remove match methods from fiface util classes
gselzer Jun 30, 2021
c187b95
Export MatchingUtils methods to scijava-types
gselzer Jun 30, 2021
400e979
Remove Parameter annotation
gselzer Jun 30, 2021
846d8bc
WIP: Switch to MemberParser paradigm
gselzer Jun 30, 2021
4317ee5
remove org.scijava.param package
gselzer Jul 1, 2021
e43e047
Move ValidityException to org.scijava.ops
gselzer Jul 2, 2021
81c87fc
Extract matcher impl details to impl subpackage
gselzer Jul 2, 2021
864111b
Prevent cycle: org.scijava.ops.simplify/struct
gselzer Jul 2, 2021
8d5871c
Prevent cycle: org.scijava.ops.util/org.scijava.ops.struct
gselzer Jul 2, 2021
e150cc0
WIP: Fix ExceptionUtils
gselzer Jul 2, 2021
02bec4d
Resolve package cycle: geom tests
gselzer Jul 2, 2021
04d4286
Fix package cycle: Persist tests
gselzer Jul 2, 2021
a9f1dd1
WIP: Use scijava-packages-plugin
gselzer Jul 12, 2021
4919ffa
Consolidate create packages
gselzer Jul 13, 2021
137653c
Absorb zernike helper into zernike package
gselzer Jul 13, 2021
dc1e3ee
Absorb net.imagej.ops2.geom.geom3d.mesh
gselzer Jul 13, 2021
c1900bf
Add subpackage depedency prevention rule
gselzer Jul 13, 2021
4628318
Resolve provenance package cycle
gselzer Aug 5, 2021
6716c79
Separate out API module to contain annotations
gselzer Jul 20, 2021
ded809f
Remove subpackage dependence rule
gselzer Jul 21, 2021
80e16db
Refactor ops to use org.scijava.ops.api.Op
gselzer Jul 21, 2021
0f4af1f
Use org.scijava.ops.api.OpCollection
gselzer Jul 21, 2021
b84353a
Use org.scijava.ops.api.OpDependency
gselzer Jul 21, 2021
158ab8e
Use org.scijava.ops.api.OpMethod
gselzer Jul 21, 2021
6cbf5b6
Use org.scijava.ops.api.OpField
gselzer Jul 21, 2021
3366389
Switch to OpInfoGenerator paradigm
gselzer Jul 22, 2021
43c4e51
Rename scijava-ops -> scijava-ops-engine
gselzer Jul 23, 2021
ddc7ce2
Rename scijava-ops-api -> scijava-ops-spi
gselzer Jul 26, 2021
2d59eb1
WIP: Partition scijava-ops-api
gselzer Jul 26, 2021
29553eb
BIG WIP: Add scijava-common dependency
gselzer Jul 27, 2021
d7881c8
Scijava-ops-api
gselzer Jul 27, 2021
70e6e48
Re-enforce the prevention of subpackage dependence
gselzer Jul 27, 2021
1e2b35b
Move DependencyMember impls to engine.struct package
gselzer Jul 27, 2021
8697ef4
Remove unnecessary exports
gselzer Jul 28, 2021
6aded62
Partition util package
gselzer Jul 28, 2021
6993af1
Create conversionLoss.impl package for impls
gselzer Jul 28, 2021
ef98e35
Create package-info for org.scijava.ops.engine
gselzer Jul 28, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .travis/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/bin/sh
(cd scijava/scijava-taglets && mvn install)
curl -fsLO https://raw.githubusercontent.com/scijava/scijava-scripts/master/travis-build.sh
sh travis-build.sh $encrypted_844f7d2110b9_key $encrypted_844f7d2110b9_iv
34 changes: 18 additions & 16 deletions imagej/imagej-ops2/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
<groupId>net.imagej</groupId>
<artifactId>imagej-ops2</artifactId>

<name>ImageJ Ops</name>
<description>ImageJ Operations: a framework for reusable algorithms.</description>
<name>ImageJ Ops 2</name>
<description>ImageJ Operations 2: a framework for reusable algorithms.</description>
<url>http://imagej.net/ImageJ_Ops</url>
<inceptionYear>2014</inceptionYear>
<organization>
Expand Down Expand Up @@ -210,7 +210,8 @@
<license.projectName>ImageJ software for multidimensional image processing and analysis.</license.projectName>

<!-- NB While we depend on old scijava-common -->
<allowedDuplicateClasses>org.scijava.*</allowedDuplicateClasses>
<imagej-ops2.allowedDuplicateClasses>${scijava.allowedDuplicateClasses}, org.scijava.*,com.github.therapi.runtimejavadoc.repack.com.eclipsesource.json.*</imagej-ops2.allowedDuplicateClasses>
<allowedDuplicateClasses>${imagej-ops2.allowedDuplicateClasses}</allowedDuplicateClasses>

<!-- NB: Deploy releases to the ImageJ Maven repository. -->
<releaseProfiles>deploy-to-imagej</releaseProfiles>
Expand Down Expand Up @@ -272,7 +273,17 @@
</dependency>
<dependency>
<groupId>org.scijava</groupId>
<artifactId>scijava-ops</artifactId>
<artifactId>scijava-ops-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.scijava</groupId>
<artifactId>scijava-ops-spi</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.scijava</groupId>
<artifactId>scijava-ops-engine</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
Expand All @@ -297,10 +308,6 @@
</dependency>

<!-- Third party dependencies -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
Expand All @@ -320,18 +327,13 @@

<!-- Test scope dependencies -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
Expand Down
235 changes: 117 additions & 118 deletions imagej/imagej-ops2/src/main/java/module-info.java

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,9 @@

import org.scijava.function.Computers;
import org.scijava.function.Functions;
import org.scijava.ops.OpDependency;
import org.scijava.ops.core.Op;
import org.scijava.param.Parameter;
import org.scijava.ops.spi.Op;
import org.scijava.ops.spi.OpDependency;
import org.scijava.plugin.Plugin;
import org.scijava.struct.ItemIO;

/**
* This algorithm calculates Li et al.'s ICQ (intensity correlation quotient).
Expand All @@ -53,11 +51,6 @@
* Type of the second image
*/
@Plugin(type = Op.class, name = "coloc.icq")
@Parameter(key = "image1")
@Parameter(key = "image2")
@Parameter(key = "mean1")
@Parameter(key = "mean2")
@Parameter(key = "output")
public class LiICQ<T extends RealType<T>, U extends RealType<U>, V extends RealType<V>>
implements Functions.Arity4<Iterable<T>, Iterable<U>, DoubleType, DoubleType, Double> {

Expand All @@ -66,6 +59,15 @@ public class LiICQ<T extends RealType<T>, U extends RealType<U>, V extends RealT
@OpDependency(name = "stats.mean")
private Computers.Arity1<Iterable<U>, DoubleType> meanUOp;

/**
* TODO
*
* @param image1
* @param image2
* @param mean1
* @param mean2
* @return the output
*/
@Override
public Double apply(final Iterable<T> image1, final Iterable<U> image2, final DoubleType mean1, final DoubleType mean2) {

Expand Down Expand Up @@ -120,15 +122,19 @@ private double computeMeanUOf(final Iterable<U> in) {
}

@Plugin(type = Op.class, name = "coloc.icq")
@Parameter(key = "image1")
@Parameter(key = "image2")
@Parameter(key = "output")
class LiICQSimple<T extends RealType<T>, U extends RealType<U>, V extends RealType<V>>
implements BiFunction<Iterable<T>, Iterable<U>, Double> {

@OpDependency(name = "coloc.icq")
private Functions.Arity4<Iterable<T>, Iterable<U>, DoubleType, DoubleType, Double> colocOp;

/**
* TODO
*
* @param image1
* @param image2
* @return the output
*/
@Override
public Double apply(Iterable<T> image1, Iterable<U> image2) {
return colocOp.apply(image1, image2, null, null);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,8 @@
import net.imglib2.util.IterablePair;
import net.imglib2.util.Pair;

import org.scijava.ops.core.Op;
import org.scijava.param.Parameter;
import org.scijava.ops.spi.Op;
import org.scijava.plugin.Plugin;
import org.scijava.struct.ItemIO;

/**
* This algorithm calculates Kendall's Tau-b rank correlation coefficient
Expand Down Expand Up @@ -76,12 +74,16 @@
* @param <T>
*/
@Plugin(type = Op.class, name = "coloc.kendallTau")
@Parameter(key = "image1")
@Parameter(key = "image2")
@Parameter(key = "output")
public class KendallTauBRank<T extends RealType<T>, U extends RealType<U>>
/* extends Algorithm<T> */ implements BiFunction<Iterable<T>, Iterable<U>, Double> {

/**
* TODO
*
* @param image1
* @param image2
* @return the output
*/
@Override
public Double apply(Iterable<T> image1, Iterable<U> image2) {
if (!ColocUtil.sameIterationOrder(image1, image2))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,9 @@

import org.scijava.function.Computers;
import org.scijava.function.Functions;
import org.scijava.ops.OpDependency;
import org.scijava.ops.core.Op;
import org.scijava.param.Parameter;
import org.scijava.ops.spi.Op;
import org.scijava.ops.spi.OpDependency;
import org.scijava.plugin.Plugin;
import org.scijava.struct.ItemIO;
import org.scijava.util.IntArray;

/**
Expand All @@ -68,10 +66,6 @@
* @author Curtis Rueden
*/
@Plugin(type = Op.class, name = "coloc.maxTKendallTau")
@Parameter(key = "image1")
@Parameter(key = "image2")
@Parameter(key = "seed")
@Parameter(key = "output")
public class MTKT<T extends RealType<T>, U extends RealType<U>>
implements Functions.Arity3<RandomAccessibleInterval<T>, RandomAccessibleInterval<U>, Long, Double>
{
Expand All @@ -86,6 +80,14 @@ public class MTKT<T extends RealType<T>, U extends RealType<U>>
@OpDependency(name = "threshold.otsu")
private Computers.Arity1<Histogram1d<U>, U> thresholdOpU;

/**
* TODO
*
* @param image1
* @param image2
* @param seed
* @return the output
*/
@Override
public Double apply(final RandomAccessibleInterval<T> image1, final RandomAccessibleInterval<U> image2, final Long seed) {
// check image sizes
Expand Down Expand Up @@ -248,9 +250,6 @@ static double calculateKendallTau(final double[][] rank,
}

@Plugin(type = Op.class, name = "coloc.maxTKendallTau")
@Parameter(key = "image1")
@Parameter(key = "image2")
@Parameter(key = "output")
class MTKTSimple<T extends RealType<T>, U extends RealType<U>>
implements BiFunction<RandomAccessibleInterval<T>, RandomAccessibleInterval<U>, Double>
{
Expand All @@ -260,6 +259,13 @@ class MTKTSimple<T extends RealType<T>, U extends RealType<U>>

private long seed = 0x89302341;

/**
* TODO
*
* @param image1
* @param image2
* @return the output
*/
@Override
public Double apply(RandomAccessibleInterval<T> image1, RandomAccessibleInterval<U> image2) {
return colocOp.apply(image1, image2, seed);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,9 @@
import net.imglib2.view.Views;

import org.scijava.function.Computers;
import org.scijava.ops.OpDependency;
import org.scijava.ops.core.Op;
import org.scijava.param.Parameter;
import org.scijava.ops.spi.Op;
import org.scijava.ops.spi.OpDependency;
import org.scijava.plugin.Plugin;
import org.scijava.struct.ItemIO;

/**
* This algorithm repeatedly executes a colocalization algorithm, computing a
Expand All @@ -62,17 +60,21 @@
* Statistical Approach".
*/
@Plugin(type = Op.class, name = "coloc.pValue")
@Parameter(key = "image1")
@Parameter(key = "image2")
@Parameter(key = "op")
@Parameter(key = "nrRandomizations")
@Parameter(key = "psfSize")
@Parameter(key = "seed")
@Parameter(key = "executorService")
@Parameter(key = "output")
public class DefaultPValue<T extends RealType<T>, U extends RealType<U>> implements
Computers.Arity7<RandomAccessibleInterval<T>, RandomAccessibleInterval<U>, BiFunction<RandomAccessibleInterval<T>, RandomAccessibleInterval<U>, Double>, Integer, Dimensions, Long, ExecutorService, PValueResult> {

/**
* TODO
*
* @param image1
* @param image2
* @param op
* @param nrRandomizations
* @param psfSize
* @param seed
* @param executorService
* @param output
*/
@Override
public void compute(final RandomAccessibleInterval<T> image1, final RandomAccessibleInterval<U> image2,
final BiFunction<RandomAccessibleInterval<T>, RandomAccessibleInterval<U>, Double> op,
Expand Down Expand Up @@ -191,18 +193,22 @@ private static <V> RandomAccessibleInterval<V> trim(final RandomAccessibleInterv
}

@Plugin(type = Op.class, name = "coloc.pValue")
@Parameter(key = "image1")
@Parameter(key = "image2")
@Parameter(key = "op")
@Parameter(key = "nrRandomizations")
@Parameter(key = "executorService")
@Parameter(key = "output")
class PValueSimpleWithRandomizations<T extends RealType<T>, U extends RealType<U>> implements
Computers.Arity5<RandomAccessibleInterval<T>, RandomAccessibleInterval<U>, BiFunction<RandomAccessibleInterval<T>, RandomAccessibleInterval<U>, Double>, Integer, ExecutorService, PValueResult> {

@OpDependency(name = "coloc.pValue")
private Computers.Arity7<RandomAccessibleInterval<T>, RandomAccessibleInterval<U>, BiFunction<RandomAccessibleInterval<T>, RandomAccessibleInterval<U>, Double>, Integer, Dimensions, Long, ExecutorService, PValueResult> pValueOp;

/**
* TODO
*
* @param image1
* @param image2
* @param op
* @param nrRandomizations
* @param executorService
* @param output
*/
@Override
public void compute(RandomAccessibleInterval<T> in1, RandomAccessibleInterval<U> in2,
BiFunction<RandomAccessibleInterval<T>, RandomAccessibleInterval<U>, Double> in3, Integer in4,
Expand All @@ -214,17 +220,21 @@ public void compute(RandomAccessibleInterval<T> in1, RandomAccessibleInterval<U>
}

@Plugin(type = Op.class, name = "coloc.pValue")
@Parameter(key = "image1")
@Parameter(key = "image2")
@Parameter(key = "op")
@Parameter(key = "executorService")
@Parameter(key = "output")
class PValueSimple<T extends RealType<T>, U extends RealType<U>> implements
Computers.Arity4<RandomAccessibleInterval<T>, RandomAccessibleInterval<U>, BiFunction<RandomAccessibleInterval<T>, RandomAccessibleInterval<U>, Double>, ExecutorService, PValueResult> {

@OpDependency(name = "coloc.pValue")
private Computers.Arity5<RandomAccessibleInterval<T>, RandomAccessibleInterval<U>, BiFunction<RandomAccessibleInterval<T>, RandomAccessibleInterval<U>, Double>, Integer, ExecutorService, PValueResult> pValueOp;

/**
* TODO
*
* @param image1
* @param image2
* @param op
* @param executorService
* @param output
*/
@Override
public void compute(RandomAccessibleInterval<T> in1, RandomAccessibleInterval<U> in2,
BiFunction<RandomAccessibleInterval<T>, RandomAccessibleInterval<U>, Double> in3, ExecutorService in4,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,8 @@
import net.imglib2.util.IterablePair;
import net.imglib2.util.Pair;

import org.scijava.ops.core.Op;
import org.scijava.param.Parameter;
import org.scijava.ops.spi.Op;
import org.scijava.plugin.Plugin;
import org.scijava.struct.ItemIO;

/**
* A class that represents the mean calculation of the two source images in the
Expand All @@ -47,13 +45,17 @@
* @author Ellen T Arena
*/
@Plugin(type = Op.class, name = "coloc.pearsons")
@Parameter(key = "image1")
@Parameter(key = "image2")
@Parameter(key = "output")
public class DefaultPearsons<T extends RealType<T>, U extends RealType<U>> implements
BiFunction<Iterable<T>, Iterable<U>, Double>
{

/**
* TODO
*
* @param image1
* @param image2
* @return the output
*/
@Override
public Double apply(final Iterable<T> image1,
final Iterable<U> image2)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,11 +52,9 @@
import net.imglib2.type.numeric.real.FloatType;

import org.scijava.function.Computers;
import org.scijava.ops.OpField;
import org.scijava.ops.core.OpCollection;
import org.scijava.param.Parameter;
import org.scijava.ops.spi.OpCollection;
import org.scijava.ops.spi.OpField;
import org.scijava.plugin.Plugin;
import org.scijava.struct.ItemIO;

/**
* Converters for converting between Complex types
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,9 @@
import net.imglib2.type.Type;

import org.scijava.function.Functions;
import org.scijava.ops.OpField;
import org.scijava.ops.core.OpCollection;
import org.scijava.param.Parameter;
import org.scijava.ops.spi.OpCollection;
import org.scijava.ops.spi.OpField;
import org.scijava.plugin.Plugin;
import org.scijava.struct.ItemIO;

@Plugin(type = OpCollection.class)
public class Converters<I, O extends Type<O>> {
Expand Down
Loading