Community
Participate
Working Groups
We need to have "null" providers that essentially do a no-op when they are called. An important use case will be to allow people to configure say the build service, but not have indexing services. Right now you have to configure all the services to proceed in the wizard (which is the correct behaviour), but there's no way to specify that you want a service to not do anything.
From a UI perspective it would be simpler to have "Not Configured" mean that the null service should be used. It seems like an unnecessary extra step to require the user to specify that they don't want a service to do anything, perhaps that should just be the default.
We should consider using a single Dynamic Proxy to implement the null services. It would require less code than having to explicitly write all the null services. It should be very easy to create a Dynamic Proxy that does nothing and implements all the service interfaces. More info: http://java.sun.com/j2se/1.3/docs/guide/reflection/proxy.html
Created attachment 113531 [details] proposed patch Patch adds null service providers for build and indexing. Also made some changes in the service model widget: - when no service provider is set then the default will be the null provider - when null provider is selected, there's no need to configure it so the configure button is disabled
I'm trying out the patch. I have an existing project, for which I've previously configured the services for a remote machine. If I go into the project properties and set the indexing service to the null provider, index operations are still going through via the old provider. Something is not quite right.
Created attachment 113627 [details] updated patch We used to only have 1 service provider for each service and now we have two. Need to set the new configuration to the active one.
I am reworking this patch. Using the null indexing provider causes NPEs in the indexing job. We don't want NPEs, what we want is operations that do nothing.
Fixed on HEAD, using Vivian's patch as a basis, with some additional modifications.