Remove org.eclipse.equinox.concurrent dependency from ECF core#4
Draft
Remove org.eclipse.equinox.concurrent dependency from ECF core#4
Conversation
…rrent dependency - Added IExecutor, IFuture, IProgressRunnable interfaces - Added AbstractExecutor, AbstractFuture base classes - Added concrete implementations: JobsExecutor, ThreadsExecutor, ImmediateExecutor - Added support classes: FutureProgressMonitor, SingleOperationFuture, TimeoutException - Updated JobsExecutor to use new ECF-native interfaces - Made equinox.concurrent import optional in org.eclipse.ecf MANIFEST Co-authored-by: laeubi <1331477+laeubi@users.noreply.github.com>
…r/future interfaces - Replaced equinox.concurrent imports with org.eclipse.ecf.core.jobs imports - Updated AbstractClientService, AbstractClientContainer, AbstractRemoteService - Updated public API interfaces (IRemoteService, IRemoteServiceContainerAdapter, etc.) - Updated internal implementation classes - Made equinox.concurrent import optional in MANIFEST.MF - Updated Javadoc examples in Constants.java Co-authored-by: laeubi <1331477+laeubi@users.noreply.github.com>
…faces - Replaced equinox.concurrent imports in RegistrySharedObject and RemoteServiceContainer - Made equinox.concurrent import optional in MANIFEST.MF Co-authored-by: laeubi <1331477+laeubi@users.noreply.github.com>
- Updated org.eclipse.ecf.discovery: AbstractDiscoveryContainerAdapter, IDiscoveryLocator - Updated org.eclipse.ecf.sharedobject: ISharedObjectCallEvent, SharedObjectCallEvent - Made equinox.concurrent imports optional in MANIFEST.MF files Co-authored-by: laeubi <1331477+laeubi@users.noreply.github.com>
- Use System.nanoTime() instead of currentTimeMillis() for timeout calculations to avoid clock adjustment issues - Extract bundle ID constant to avoid duplication - Improved timeout handling with nanosecond precision Co-authored-by: laeubi <1331477+laeubi@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Remove dependency on Equinox bundle from JobsExecutor
Remove org.eclipse.equinox.concurrent dependency from ECF core
Dec 9, 2025
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
ECF depended on
org.eclipse.equinox.concurrentfor async execution primitives (IExecutor,IFuture,IProgressRunnable). This dependency is removed by implementing equivalent ECF-native interfaces inorg.eclipse.ecf.core.jobs.Changes
New Infrastructure (
org.eclipse.ecf.core.jobs)IExecutor,IFuture,IProgressRunnable,ISafeProgressRunnerAbstractExecutor,AbstractFutureJobsExecutor(Eclipse Jobs),ThreadsExecutor,ImmediateExecutorFutureProgressMonitor,SingleOperationFuture,TimeoutExceptionUpdated Bundles
org.eclipse.ecf- Replaced equinox.concurrent importsorg.eclipse.ecf.remoteservice- Updated public APIs and implementationsorg.eclipse.ecf.provider.remoteservice- Updated provider classesorg.eclipse.ecf.discovery- Updated discovery APIsorg.eclipse.ecf.sharedobject- Updated shared object eventsMANIFEST.MF Changes
Made
org.eclipse.equinox.concurrent.futureimports optional (resolution:=optional) in all affected bundles.API Impact
Public APIs now return
org.eclipse.ecf.core.jobs.IFutureinstead oforg.eclipse.equinox.concurrent.future.IFuture:Method signatures remain compatible - only the package changes.
Implementation Notes
System.nanoTime()for monotonic time handlingAbstractFutureimplements bothIFutureandISafeProgressRunnerfor dual-mode executionJobsExecutormaintains Eclipse Job scheduling semantics with progress monitoringWarning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
repo.eclipse.org/usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /usr/share/apache-maven-3.9.11/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/usr/share/apache-maven-3.9.11/bin/m2.conf -Dmaven.home=/usr/share/apache-maven-3.9.11 -Dlibrary.jansi.path=/usr/share/apache-maven-3.9.11/lib/jansi-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/ecf/ecf org.codehaus.plexus.classworlds.launcher.Launcher clean compile -pl framework/bundles/org.eclipse.ecf -am ider.filetransfer/src/org/eclipse/ecf/provider/filetransfer/browse/URLRemoteFile.java rep ure lToFactoryMapperorigin /usr/sbin/grep grep(dns block)If you need me to access, download, or install something from one of these locations, you can either:
Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.