-
Notifications
You must be signed in to change notification settings - Fork 326
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Package libraries Java code as Java Modules #10714
Draft
JaroslavTulach
wants to merge
97
commits into
develop
Choose a base branch
from
wip/jtulach/ClassPath7082
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from 1 commit
Commits
Show all changes
97 commits
Select commit
Hold shift + click to select a range
9c149b9
Must specify --repl to enable debug server
JaroslavTulach 76070ba
Use --repl to enable REPL changelog note
JaroslavTulach 873c418
Towards a ClassPath per Package
JaroslavTulach 3b1bc98
One ClassLoader per each Package
JaroslavTulach 45f62cf
Define ModuleLayer for each Package
JaroslavTulach 8700cc8
Load classes via ModuleLayer
JaroslavTulach 74f8111
Turning std-base and std-aws into Java modules
JaroslavTulach 7e865ce
Turn common-polyglot-core-utils into JPMS module
Akirathan 3a6c335
Add depedencies to org.enso.std.base JPMS module
Akirathan b23be3d
Turn std-database into JPMS module
Akirathan f0dd3f7
Add depedencies to org.enso.std.aws JPMS module
Akirathan c4c1842
Using module-info to register SPI services
JaroslavTulach 149dc7e
Removing another no longer needed dependency on NetBeans Lookup API
JaroslavTulach 48b29c7
Removing add to class path concept
JaroslavTulach dd5723e
Turn std-table into JPMS module
Akirathan 74fa9e1
Move tests that need internal access to Standard.Base into test/Base_…
JaroslavTulach 1e48979
Resolving merge conficts
JaroslavTulach bbe754c
No more of Polyglot.Java
JaroslavTulach 1514ad2
Nicer formatting with var
JaroslavTulach 09c6946
Allow Standard.Table to depend on modules from Standard.Base
JaroslavTulach 3148976
language-server/test compiles again
JaroslavTulach ae64b8a
Host Files values group_builder
JaroslavTulach c5e41ab
Merging in develop branch
JaroslavTulach 6fdd11c
Merge with most recent develop branch that includes many JPMS
JaroslavTulach cfdda7b
Using moduleDependencies and internalModuleDependencies for standard …
JaroslavTulach d50f006
There can be Enso sources without associated package
JaroslavTulach 202b1d8
Merging with develop
JaroslavTulach b04ce5c
Avoid duplicated modules. Use the one from boot layer.
JaroslavTulach d94a44d
Load all library Java modules with a single class loader
JaroslavTulach c71183c
Opening std-table.jar for reflection from Enso code
JaroslavTulach 9bc7a3a
Visualization_Tests run and yield just nine errors
JaroslavTulach 16b82c3
Standard.Test loads classes from Standard.Base
JaroslavTulach 405e88d
Always prefer modules from parent layers
JaroslavTulach 57e64e0
AWS requires access to Standard.Base and Standard.Database JARs
JaroslavTulach efda30f
Opening up std-table JAR, so Enso can access all Java classes
JaroslavTulach e9a0456
Less functional boilerplate
JaroslavTulach c0359e2
Merge remote-tracking branch 'origin/develop' into wip/jtulach/ClassP…
JaroslavTulach 5b14f89
Special Lookup class and registration via a property to allow searchi…
JaroslavTulach 841de5f
Turning Standard.Image into Java module
JaroslavTulach e6e5c09
Making test/Image_Tests pass OK
JaroslavTulach 3194f6d
Avoid DriverManager. Directly talk to Driver instances.
JaroslavTulach cbe625f
Register SQLServerConnectionDetailsSPI in std-bits/microsoft/*/module…
JaroslavTulach c72ab8e
No polyglot symbol for org.enso.base.encoding.NewlineDetector in Tabl…
JaroslavTulach 062b26e
No polyglot symbol for org.enso.table.data.table.Table in Table_Tests
JaroslavTulach e4cc4b4
No polyglot symbol for org.enso.table.data.table.join.between.SortedL…
JaroslavTulach 9c86f7a
Using for loop
JaroslavTulach 6992103
Make enso-test-java-helpers available to Table_Tests
JaroslavTulach 98eeb64
No need to generate .bindings index to run benchmarks
JaroslavTulach 60b4277
BenchProcessor puts runtime.jar into own layer. Use that one as bootL…
JaroslavTulach f482b72
test/Benchmarks need access to org.enso.table.data.index.OrderedMulti…
JaroslavTulach 3112158
Introducing AWS wrapper module
JaroslavTulach e51eb3e
Placeholders for exported packages
JaroslavTulach a263449
Remove placeholders
Akirathan d161f9e
Remove aws-wrapper/Compile/moduleDependencies.
Akirathan c03825c
javaModuleName is the first setting
Akirathan 3ec8ed0
Fix typo in cbor library dependency
Akirathan 41fd4c1
Typo in module name.
Akirathan 4bec7d9
Fix compilation of aws-wrapper
Akirathan 88aaa76
Remove empty settings from std-aws
Akirathan be66f1b
Fix typo in module name
Akirathan c97ec77
aws-wrapper-assembly.jar gets into component directory.
Akirathan 4a6e55c
Remove signature from aws-wrapper-assembly jar
Akirathan 011494e
aws-wrapper dependency of std-aws is "provided".
Akirathan 92bc7b4
Ensure aws-wrapper-assembly.jar gets into AWS/polyglot/java directory
Akirathan 06ca5ce
Fix NoSuchElementException in JPMSUtils
Akirathan 34dda82
Revert "aws-wrapper-assembly.jar gets into component directory."
Akirathan e788644
org.enso.std.aws exports org.enso.aws package
Akirathan 644357d
slf4j is module dependency of aws-wrapper
Akirathan 6c33fef
aws-wrapper depends on org.reactivestreams
Akirathan 4c98a58
aws-wrapper uses its own service.
Akirathan e81e27c
Add some dependencies to aws-wrapper
Akirathan 686f24d
Add necessary exports
Akirathan c5b1959
fmt
Akirathan 2bd96d4
FileSystemSPI uses Lookup instead of ServiceLoader
Akirathan cf605cd
org.enso.std.aws provides DataLinkSPI.
Akirathan 12ebe80
Better error message on duplicated service providers
Akirathan a31fb9c
Duplicate provider is just a warning
Akirathan 77dc8de
List is easier to == than Array
JaroslavTulach 6388881
runtime-integration-tests are loading classes with empty EnsoClassPath
JaroslavTulach 00b47b4
Java.lookup_class has been removed
JaroslavTulach 4173822
Using List() at the right places
JaroslavTulach f0c2ae4
std.table module isn't present in NI enso build
JaroslavTulach f11a26a
Use Lookup to lookup DatabaseConnectionDetailsSPI
JaroslavTulach b7f6542
An unexpected panic was thrown: (No_Such_Method.Error org.enso.base.n…
JaroslavTulach baeff36
Initialize ModuleLayer for a library sooner than a class is loaded fr…
JaroslavTulach a9bc32f
There is no runtime-fat-jar anymore
JaroslavTulach ec03e10
Add JDK_MODULES to small JDK of engine-runner native image
Akirathan 1d4b172
Catch also ResolutionException
JaroslavTulach 2bf4df1
Always add at least boot layer as parent
JaroslavTulach e8c220b
Make Tableau_Tests pass
JaroslavTulach bad898c
Bringing up-to-date with most recent develop
JaroslavTulach ee79b07
SQLServerDataLinkSPI is registered in module-info
JaroslavTulach 6b1d504
Merge remote-tracking branch 'origin/develop' into wip/jtulach/ClassP…
JaroslavTulach 4c46657
Backing out ec03e1080fbe19f7b7363206e876e72298bbc0f2
JaroslavTulach 208d05d
Include chrome and DAP debugging tools in the enso executable
JaroslavTulach 6d80539
Merge remote-tracking branch 'origin/develop' into wip/jtulach/ClassP…
JaroslavTulach 986fb62
uses/provides instead of @ServiceProvider
JaroslavTulach File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
module org.enso.aws { | ||
requires java.base; | ||
requires org.enso.base; | ||
|
||
provides FileSystemSPI with | ||
org.enso.aws.file_system.S3FileSystemSPI; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
import org.enso.base.enso_cloud.EnsoPathFileSystemSPI; | ||
import org.enso.base.file_system.FileSystemSPI; | ||
|
||
module org.enso.base { | ||
requires java.logging; | ||
requires org.graalvm.collections; | ||
Akirathan marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
uses FileSystemSPI; | ||
|
||
exports org.enso.base.file_system; | ||
|
||
provides FileSystemSPI with | ||
EnsoPathFileSystemSPI; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@radeusgd, there is a small terminology issue and encapsulation/security issue. SPI stands for service provider interface - e.g. interface towards providers of some service.
FileFormatSPI
is such an interface. HoweverByteFormatSPI
,TextFormatSPI
, etc. are not provider interfaces!Those are implementations. Thus adding
SPI
suffix to them isn't correct. I'd give themImpl
suffix. Moreover such implementations shouldn't be in a exported package. Modules should export only an absolute minimum to lower the conceptual surface of the API.Some refactoring is desirable.