Bug 21839 - [IDE] Can't remove Java Builder
Summary: [IDE] Can't remove Java Builder
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 2.0   Edit
Hardware: PC Windows 2000
: P3 enhancement (vote)
Target Milestone: ---   Edit
Assignee: Michael Van Meekeren CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-07-24 03:47 EDT by Dani Megert CLA
Modified: 2004-02-16 16:00 EST (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dani Megert CLA 2002-07-24 03:47:34 EDT
R2.0
The registered Java Builder (Project -> Properties -> External Tools Builders)
can't be removed and hence I can't replace it with my own build mechanism (e.g.
using Java 1.5 without getting errors from the current Java builder).
Comment 1 Dani Megert CLA 2002-07-24 03:53:59 EDT
Moving to Platform Core: All builders which are contributed via XML can neither
be removed nor edited.
I can not change the sequence either: all buttons are disabled.
How is the sequence specified?
Comment 2 John Arthorne CLA 2002-07-24 09:50:29 EDT
This is by design.  Users are only allowed to rearrange or otherwise modify 
their own tool script builders.  They are not allowed to touch the builders that 
have been installed programatically.  A builder installed by a given nature 
should only be removed or modified by the plugin that defined it.  I believe the 
reasoning was that unexpectedly removing or reordering a builder defined by a 
plugin may cause other functionality in that plugin to break.

This is discussed in more detail in a document by Jeem, "RFC 0009 - Improved 
Build Story" on the platform core web page.  That document also recommends:

"Individual builders provide a pre-project preference setting to allow the user 
to disable it if they can forsee users wanting to (and being permitted to) 
replace it. For example, it should be possible to disable the Java builder for a 
project so that the user can run an Ant script that calls a javac instead. "

Philippe, I don't know if Jeem ever discussed that with you, but did you have 
plans to allow users to turn off or otherwise replace the java builder?
Comment 3 Dani Megert CLA 2002-07-24 10:27:16 EDT
So, where is the order specified? I could not find it in the xml.
Comment 4 John Arthorne CLA 2002-07-24 15:11:44 EDT
The build order is specified in the build spec on the project description.  
Anyone can modify this programatically, but generally each builder will add 
their builder at the desired position in the list.  Nature dependencies can be 
used to ensure that particular builders are configured before other builders.  
Nature dependencies are specified in the XML for the nature definition.  Is 
there something in particular you're trying to accomplish?
Comment 5 Dani Megert CLA 2002-07-25 03:12:19 EDT
We did some SDK 1.5 testing. We tried to register an external builder to compile
the code but it failed because the built-in Java builder failed and because the
built-in one could not be removed hence locking us into what we already have. I
think it is a fair request that I can exchange (or at least disable) it if I want.
Comment 6 John Arthorne CLA 2002-07-25 10:11:35 EDT
Moving to JDT for consideration to add an option to disable (or replace or 
remove) the java builder from java projects.  We provide API to do this, so 
there's not much else for platform core to do here.  We don't want to allow the 
user to remove arbitrary builders from the project.
Comment 7 Philipe Mulet CLA 2002-08-13 08:00:37 EDT
I wouldn't expect all builder contributors to provide an option for disabling 
their builder, this would quickly become insane.

There should rather be a generic platform wizard allow to pick which builder is 
used for some natures. I could even envisage the external tools to be shown in 
there, and user would pick whichever he wants.

Furthermore, I would be curious to know how the platform would react to 
multiple Java builder contributions... as a user, I might want to have the 
option to pick the one I want to run.

Back to Platform.
Comment 8 DJ Houghton CLA 2002-09-24 12:53:35 EDT
Moving to Platform/UI for consideration of adding a builder 
configuration/removal wizard. Let us know if current API does not suffice.
Comment 9 Tod Creasey CLA 2002-09-26 10:21:27 EDT
After talking with John Arthorne and Jim desRivieres I think that allowing for 
general adding and removal of specified builders has too many implications 
throughout the workbench. The suggestion is that the Java Builder allow for 
greater configurability to allow for this switch - disabling it or replacing 
it is a pretty scary change.

I am returning this to JDT Core to consider what should be done to configure 
the builder. 
Comment 10 Philipe Mulet CLA 2002-10-28 09:17:35 EST
I disagree. I understand that given the current API, clients have to be 
responsible to register their own builder, preventing any generic control.

Deferring until some consensus is reached, e.g. 3.0 APIs could be changed.

Comment 11 Philipe Mulet CLA 2002-10-28 09:19:43 EST
Too be more precise. Suggested action from platform is only a work-around.
Comment 12 Philipe Mulet CLA 2003-06-12 06:52:41 EDT
Moving to Platform side for further consideration at generic level.
Comment 13 Adam Habermann CLA 2004-01-12 12:27:04 EST
Seems like it is possible to disable Java Builder in 3.0 M6.
Comment 14 Michael Van Meekeren CLA 2004-02-16 16:00:20 EST
You still can not remove the Java Builder but you can disable any builder in 
the Project > Properties > Builders  page.