Some other projects both Oracle and non-Oracle has requested a External Execution API that would have a really minimal (and small in size) dependencies.
This change introduce the extexecution.base for now on execution_split and later on server_split branch of jet-main. It only depends on org.openide.util.base and org.openide.util.lookup. The base API provides all the important machinery not related to the IDE.
The change is fully source and binary compatible. Old APIs are deprecated but still usable.
The change also incorporates some minor improvements from stalled issue #232434.
I plan to rewrite the clients to new methods before it will eventually get merged to default branch. In future deprecated methods and classes may be removed though it is not planned for now.
Created attachment 147117 [details]
$ hg diff --git
might provide more insight into what is going on...
Created attachment 147136 [details]
(In reply to Jaroslav Tulach from comment #3)
> $ hg diff --git
> might provide more insight into what is going on...
I'm sorry I forgot about that. Though it does not seem better. I guess I moved a module on the FS. Lesson learned :(
At least I can briefly describe what has been done:
-in package org.netbeans.api.extexecution ExecutionService and ExecutionDescriptor are still relevant, rest is deprecated and replaced by org.netbeans.api.extexecution.base.ProcessBuilder (and ProcessBuilder.getLocal()) and org.netbeans.api.extexecution.base.Processes
-org.netbeans.api.extexecution.input deprecated and refactored to org.netbeans.api.extexecution.base.input except four methods related to IO printing which have been moved to (existing) package org.netbeans.api.extexecution.print
-org.netbeans.spi.extexecution deprecated replaced by corresponding classes in org.netbeans.spi.extexecution.base
-org.netbeans.spi.extexecution.destroy.ProcessDestroyPerformer deprecated and replaced by org.netbeans.spi.extexecution.base.ProcessesImplementation
Created attachment 147139 [details]
Forgot to hide constructor.
Thanks for the review. I'll merge the change to server_split branch tomorrow.
Merged to server_split branch dbb500a2d1fa.
I think the intention to split is OK. I'd however like to use this review opportunity to fix issue that I run into recently:
Y01 make sure the overview page in Javadoc (of the complex module) describes the most frequent usecase - e.g. how to execute something and show the result in OutputWindow.
Fixed in jet-main, branch server_split 0d0619a64832.
(In reply to Jaroslav Tulach from comment #9)
> I think the intention to split is OK. I'd however like to use this review
> opportunity to fix issue that I run into recently:
> Y01 make sure the overview page in Javadoc (of the complex module) describes
> the most frequent usecase - e.g. how to execute something and show the
> result in OutputWindow.
Integrated into 'main-silver', will be available in build *201410180001* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
User: Petr Hejl <firstname.lastname@example.org>
Log: #244308 - Split extexecution to have a base API with minimal dependencies