← 输入框|github.com|刷新
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
5e9836a
docs: add SciJava Common migration plan
ctrueden Sep 16, 2026
82cd7c8
scijava-ops-image: stop using SciJava Common utilities
ctrueden Sep 16, 2026
71852f7
scijava-discovery: make Discoverer yield lazy descriptors
ctrueden Sep 16, 2026
0771222
Pin scijava-discovery and scijava-priority versions
ctrueden Sep 16, 2026
4b8feff
Pin every consumed SciJava artifact version
ctrueden Sep 16, 2026
9084574
scijava-spi: add a module of framework-free interfaces
ctrueden Sep 16, 2026
9a5b15e
scijava-common3: absorb general utilities from SciJava Common
ctrueden Sep 16, 2026
24ba06b
scijava-common3: add FilePaths, from SciJava Common's FileUtils
ctrueden Sep 16, 2026
7d73482
scijava-index: port annotation indexing, with a lazy Discoverer
ctrueden Sep 16, 2026
313843f
docs: correct the Phase 2 injection design
ctrueden Sep 16, 2026
790ec74
scijava-io3: port locations, standalone on plain ServiceLoader
ctrueden Sep 16, 2026
c7842b0
scijava-io3: port data handles
ctrueden Sep 16, 2026
ea1ac3c
Make cancellation thread interruption
ctrueden Sep 16, 2026
ef68624
scijava-concurrent: let cancellation survive a parallel section
ctrueden Sep 16, 2026
df12101
docs: do not port io.nio
ctrueden Sep 16, 2026
80f4333
scijava-io3: port ByteBufferByteBank, keeping direct banks off-heap
ctrueden Sep 16, 2026
5039837
scijava-events: a typed event bus, written clean
ctrueden Sep 16, 2026
e09d280
docs: record incarnational versioning, and defer scijava-persist
ctrueden Sep 17, 2026
f65c690
scijava-io3: start at 3.0.0-SNAPSHOT
ctrueden Sep 17, 2026
caa9640
scijava-context: the container core
ctrueden Sep 17, 2026
7822074
scijava-context: the plugin tier
ctrueden Sep 17, 2026
394b956
scijava-context: declarative dependency injection
ctrueden Sep 17, 2026
de2e89f
scijava-context: @EventHandler scanning
ctrueden Sep 17, 2026
2e01213
docs: scrutinize the core services, and settle the preferences design
ctrueden Sep 17, 2026
9156ef6
docs: use TOML rather than YAML for the settings store
ctrueden Sep 17, 2026
634d940
scijava-execute: run things that declare their inputs and outputs
ctrueden Sep 17, 2026
1e1e662
scijava-execute: the pre/postprocessor chain
ctrueden Sep 17, 2026
95b4e57
docs: say how Fiji gets built on SciJava3
ctrueden Sep 17, 2026
0138735
scijava-execute: generalize beyond Java classes, for scripts
ctrueden Sep 17, 2026
0e4ac38
scijava-command: discoverable commands, and the metadata menus need
ctrueden Sep 17, 2026
80bab69
One opens, to the container
ctrueden Sep 17, 2026
cfead6d
Add the menu tree, and make Access a static utility
ctrueden Sep 17, 2026
b6ff554
scijava-harvest: prototype the parameter dialog model
ctrueden Sep 17, 2026
df48f01
Support computed parameter choices, closing the DynamicCommand gap
ctrueden Sep 17, 2026
58fd161
scijava-ui3 and scijava-swing: widgets, and dialogs to click on
ctrueden Sep 17, 2026
0a57e16
Fix the widget bugs the demos turned up, and fill in the gaps
ctrueden Sep 17, 2026
1384996
Ignore Eclipse's .factorypath
ctrueden Sep 17, 2026
46a5f3e
migration.md: the command row was ported two commits ago
ctrueden Sep 17, 2026
193a373
A Swing shell: menus, search, status -- the first whole-stack demo
ctrueden Sep 18, 2026
19e9d00
scijava-javafx: a second binding, and what it proved
ctrueden Sep 18, 2026
ad4ed60
scijava-awt: a third binding, and where the shared code belongs
ctrueden Sep 18, 2026
ada9894
scijava-convert3: one question, and it sits below the container
ctrueden Sep 18, 2026
22c0dc6
scijava-script3: a script is an Executable like any other
ctrueden Sep 18, 2026
40d687d
Scripts declare their presentation, and menus take more than one source
ctrueden Sep 18, 2026
7c100d4
Name the general thing what users call it: CommandInfo
ctrueden Sep 18, 2026
477a544
The legacy bridge, and the split package it found
ctrueden Sep 18, 2026
1f0084d
One name per foreign library: scijava-compat, -ops-compat, -imagej-co…
ctrueden Sep 18, 2026
1d8efbd
migration.md: say what the presentation metadata actually does
ctrueden Sep 18, 2026
3a2aa7e
scijava-cli: run the same commands without a display
ctrueden Sep 18, 2026
eccf33e
scijava-settings: one TOML file a person can read and edit
ctrueden Sep 19, 2026
7f4e5fa
Shorten submodule folder names
ctrueden Sep 20, 2026
680d702
Make Context.doDispose() less deadlock-prone
ctrueden Sep 25, 2026
a641987
Migrate incarnational versioning writeup to here
ctrueden Oct 26, 2026
e625d35
README: fix build badge
ctrueden Oct 26, 2026
ee70467
Fix wrong suggested scijava-ops-indexer version
ctrueden Oct 26, 2026
a3f8e24
Pin the migration plan's scijava-persist version
ctrueden Oct 26, 2026
289a91c
Fix javadoc errors
ctrueden Oct 26, 2026
e197fad
Make DiscoveryLazinessTest independent of test order
ctrueden Oct 28, 2026
ba91881
Address Copilot review feedback
ctrueden Oct 28, 2026
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
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,6 @@ target/

# vim #
*.swp

# Eclipse annotation processing
.factorypath
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[![Build Status](https://github.com/scijava/incubator/actions/workflows/build.yml/badge.svg)](https://github.com/scijava/incubator/actions/workflows/build.yml)
[![Build Status](https://github.com/scijava/scijava/actions/workflows/build.yml/badge.svg)](https://github.com/scijava/scijava/actions/workflows/build.yml)

# SciJava core

Expand Down
249 changes: 249 additions & 0 deletions awt/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,249 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>org.scijava</groupId>
<artifactId>pom-scijava</artifactId>
<version>44.0.0</version>
<relativePath />
</parent>

<artifactId>scijava-awt</artifactId>
<version>1.0.0-SNAPSHOT</version>

<name>SciJava AWT</name>
<description>AWT widgets and platform plumbing, with no Swing anywhere.</description>
<url>https://github.com/scijava/scijava</url>
<inceptionYear>2026</inceptionYear>
<organization>
<name>SciJava</name>
<url>https://scijava.org/</url>
</organization>
<licenses>
<license>
<name>Simplified BSD License</name>
<distribution>repo</distribution>
</license>
</licenses>

<developers>
<developer>
<id>ctrueden</id>
<name>Curtis Rueden</name>
<roles>
<role>founder</role>
<role>lead</role>
<role>reviewer</role>
<role>support</role>
<role>maintainer</role>
</roles>
</developer>
<developer>
<id>gselzer</id>
<name>Gabriel Selzer</name>
<roles>
<role>founder</role>
<role>debugger</role>
<role>reviewer</role>
<role>support</role>
</roles>
</developer>
</developers>
<contributors>
<contributor>
<name>Johannes Schindelin</name>
<properties><id>dscho</id></properties>
</contributor>
</contributors>

<mailingLists>
<mailingList>
<name>Image.sc Forum</name>
<archive>https://forum.image.sc/tag/scijava</archive>
</mailingList>
</mailingLists>

<scm>
<connection>scm:git:https://github.com/scijava/scijava</connection>
<developerConnection>scm:git:git@github.com:scijava/scijava</developerConnection>
<tag>HEAD</tag>
<url>https://github.com/scijava/scijava</url>
</scm>
<issueManagement>
<system>GitHub Issues</system>
<url>https://github.com/scijava/scijava/issues</url>
</issueManagement>
<ciManagement>
<system>GitHub Actions</system>
<url>https://github.com/scijava/scijava/actions</url>
</ciManagement>

<properties>
<package-name>org.scijava.awt</package-name>

<license.licenseName>bsd_2</license.licenseName>
<license.copyrightOwners>SciJava developers.</license.copyrightOwners>

<!-- Note: These versions must match across all component POMs! -->
<scijava-command3.version>3.0.0-SNAPSHOT</scijava-command3.version>
<scijava-context.version>1.0.0-SNAPSHOT</scijava-context.version>
<scijava-discovery.version>1.0.1-SNAPSHOT</scijava-discovery.version>
<scijava-index.version>1.0.0-SNAPSHOT</scijava-index.version>
<scijava-ui3.version>3.0.0-SNAPSHOT</scijava-ui3.version>
<scijava-ui3-test.version>3.0.0-SNAPSHOT</scijava-ui3-test.version>
<scijava-script3.version>3.0.0-SNAPSHOT</scijava-script3.version>
<scijava-common3.version>1.0.1-SNAPSHOT</scijava-common3.version>
<scijava-execute.version>1.0.0-SNAPSHOT</scijava-execute.version>
<scijava-harvest.version>1.0.0-SNAPSHOT</scijava-harvest.version>
<scijava-priority.version>1.0.1-SNAPSHOT</scijava-priority.version>
<scijava-struct.version>1.0.1-SNAPSHOT</scijava-struct.version>
</properties>

<dependencies>
<dependency>
<groupId>org.scijava</groupId>
<artifactId>scijava-common3</artifactId>
<version>${scijava-common3.version}</version>
</dependency>
<dependency>
<groupId>org.scijava</groupId>
<artifactId>scijava-command3</artifactId>
<version>${scijava-command3.version}</version>
</dependency>
<dependency>
<groupId>org.scijava</groupId>
<artifactId>scijava-context</artifactId>
<version>${scijava-context.version}</version>
</dependency>
<dependency>
<groupId>org.scijava</groupId>
<artifactId>scijava-discovery</artifactId>
<version>${scijava-discovery.version}</version>
</dependency>
<dependency>
<groupId>org.scijava</groupId>
<artifactId>scijava-index</artifactId>
<version>${scijava-index.version}</version>
</dependency>
<dependency>
<groupId>org.scijava</groupId>
<artifactId>scijava-ui3</artifactId>
<version>${scijava-ui3.version}</version>
</dependency>
<dependency>
<groupId>org.scijava</groupId>
<artifactId>scijava-execute</artifactId>
<version>${scijava-execute.version}</version>
</dependency>
<dependency>
<groupId>org.scijava</groupId>
<artifactId>scijava-harvest</artifactId>
<version>${scijava-harvest.version}</version>
</dependency>
<dependency>
<groupId>org.scijava</groupId>
<artifactId>scijava-priority</artifactId>
<version>${scijava-priority.version}</version>
</dependency>
<dependency>
<groupId>org.scijava</groupId>
<artifactId>scijava-struct</artifactId>
<version>${scijava-struct.version}</version>
</dependency>

<!-- Third-party dependencies -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>

<!-- Test scope dependencies -->
<!-- NB: so the demo shell can put scripts in its menus, as Fiji does. -->
<dependency>
<groupId>org.scijava</groupId>
<artifactId>scijava-script3</artifactId>
<version>${scijava-script3.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.groovy</groupId>
<artifactId>groovy</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.groovy</groupId>
<artifactId>groovy-jsr223</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.scijava</groupId>
<artifactId>scijava-ui3-test</artifactId>
<version>${scijava-ui3-test.version}</version>
<scope>test</scope>
</dependency>
<!--
NB: so that the demos can say what they are doing. Turn it up with
-Dorg.slf4j.simpleLogger.defaultLogLevel=debug
-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

<build>
<plugins>
<!--
NB: the annotation index comes from scijava-index's annotation
processor, which must be on the processor path: javac will not find
it on the module path, and says nothing when it finds no processor at
all, so the build would simply produce no index.
-->
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.scijava</groupId>
<artifactId>scijava-index</artifactId>
<version>${scijava-index.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
<plugin>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-package-rules</id>
<goals>
<goal>enforce</goal>
</goals>
<phase>test</phase>
<configuration>
<rules>
<NoPackageCyclesRule implementation="org.scijava.maven.plugin.enforcer.NoPackageCyclesRule" />
<NoSubpackageDependenceRule implementation="org.scijava.maven.plugin.enforcer.NoSubpackageDependenceRule" />
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<links>
<link>https://javadoc.scijava.org/Java11/</link>
</links>
</configuration>
</plugin>
</plugins>
</build>
</project>
46 changes: 46 additions & 0 deletions awt/src/main/java/module-info.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
/*
* #%L
* AWT widgets and platform plumbing, with no Swing anywhere.
* %%
* Copyright (C) 2026 SciJava developers.
* %%
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
* #L%
*/

module org.scijava.awt {

exports org.scijava.awt;

// NB: one opens, to the container alone, so that it can inject and
// construct these plugins. `opens` is not `exports`.
opens org.scijava.awt to org.scijava.context;

requires transitive java.desktop;
requires transitive org.scijava.ui3;
requires transitive org.scijava.command3;
requires transitive org.scijava.context;
requires org.scijava.discovery;
requires org.scijava.priority;
requires org.slf4j;

}
Loading
Loading