Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 391361

Summary: Java EE Tools should not depend on CVS
Product: [WebTools] WTP Java EE Tools Reporter: Konstantin Komissarchik <konstantin>
Component: jst.servletAssignee: Konstantin Komissarchik <konstantin>
Status: RESOLVED FIXED QA Contact: Chuck Bridgham <cbridgha>
Severity: major    
Priority: P3 CC: ccc, Mike_Wilson, paul.fullbright, shr31223
Version: 3.4.1   
Target Milestone: 3.5 M6   
Hardware: All   
OS: All   
Whiteboard:
Bug Depends on: 342203    
Bug Blocks:    

Description Konstantin Komissarchik CLA 2012-10-08 11:39:45 EDT
I discovered that org.eclipse.jst.servlet.ui depends on CVS plugins.
 
http://git.eclipse.org/c/jeetools/webtools.javaee.git/tree/plugins/org.eclipse.jst.servlet.ui/META-INF/MANIFEST.MF
 
org.eclipse.team.cvs.core;bundle-version="[3.3.0,5.0.0)",
org.eclipse.team.cvs.ui;bundle-version="[3.3.0,5.0.0)",
 
This makes it impossible to create an install with WTP, but no CVS plugins. Since CVS is becoming progressively less relevant, this requirement is progressively becoming more important.

Looking a bit deeper, the dependency seems to be due to CompressedJavaProjectCVSDecorator.java. 

servlet_ui/org/eclipse/jst/servlet/ui/internal/navigator/CompressedJavaProjectCVSDecorator.java

This class was authored by israelgd@mx1.ibm.com and committed by Carl.

There are two possible resolutions:

1. Create a separate feature and plugin for WTP/CVS integration. Obviously, there wouldn't be very much in this plugin.

2. Perhaps drop this functionality.

I'd like to target this to Kepler for resolution and can contribute my time to get this straightened out, but I need guidance as to the approach to to use from the above options.
Comment 1 Carl Anderson CLA 2012-10-08 11:53:41 EDT
This brings up a separate question that we should address, perhaps in a separate enhancement (or we could handle this all at the same time)-

The reason for this prereq is because of the specific node that we add to the Common Navigator view- it needs to handle CVS because CVS is (was) an extremely popular source control system, and we wanted our node to look/behave like all of the others.  Git is now becoming the Eclipse defacto source control system- does our node handle Git?  Do we need plugin(s) to handle these prereqs properly?
Comment 2 Konstantin Komissarchik CLA 2012-10-08 12:08:45 EDT
> Git is now becoming the Eclipse defacto source control system- does our node 
> handle Git?  Do we need plugin(s) to handle these prereqs properly?

Indeed. Then, of course, there are countless other source control systems. Besides creating separate source control system plugins, other possible resolution strategies include:

1. Perhaps source control decorations on virtual nodes aren't critical?
2. Perhaps go back to not having this node?
Comment 3 Paul Fullbright CLA 2012-10-08 12:16:30 EDT
Is there no "team" commonality to this functionality that could be scm-agnostic?
Comment 4 Roberto Sanchez Herrera CLA 2012-10-09 13:09:58 EDT
I agree with Paul. Maybe looking at some code independent from SCM to provide at least basic decoration.
Comment 5 Chuck Bridgham CLA 2012-10-09 13:19:46 EDT
We should take a look at the code added, and at least determine if it can be done without adding this dependency.  (Using common interfaces, adapters etc...)

Then in another bugzilla we can tackle providing an abstract "team" provider.
Comment 6 Konstantin Komissarchik CLA 2013-02-08 22:35:17 EST
I did not find any generic team decorator facility. All decoration code appears to be very system-specific.

To keep this moving, I went ahead and removed CompressedJavaProjectCVSDecorator feature based on the reasoning that this decorator is less important than ability install WTP without CVS Tools.

http://git.eclipse.org/c/jeetools/webtools.javaee.git/commit/?id=638c52c3b12600f6a3b0ef2e3995c623e8f452f2

If it is desirable to bring back this decoration without tying WTP to any one team provider (presumably by creating a multitude of plugins), that can be tracked by a separate enhancement request.

Resolving this bug as removal of CompressedJavaProjectCVSDecorator addresses the original reported issue.