Feature Grid: 

Taking David’s suggestion, here is a breakdown of features that are expected for 1st class eclipse integration, I also added the current WTP virtual component support

I added some comments, but also left some blank, if I didn’t have any meaningful thoughts  J  I highlighted some of the major pain points.

 

 

Arbitary linking

Non-java “Source” folders

Project Filter mapping

Current WTP Support

Navigability

(Support from existing navigator views)

Shows “logical” view of resources

Shows physical view with “hidden” built content

Shows physical view with filtering

Shows physical view with “hidden” built content

Editing experience

(Support from core/WTP editors)

Existing editors remain working on existing runtime structure

Editors required to introduce flexibility for source structure

Existing editors introduce flexibility to work on source structure

Existing editors remain working on existing runtime structure

Deploy and Run

Run in Server space, Run in workspace

 

Resources already in runtime structure – Require servers to use IResource API

Resources assembled into runtime structure.  Servers point to output folders “as is”

N/A

Resources assembled into runtime structure.  Servers point to output folders “as is”

Existing Platform/JDT preferences/tools integration

All Supported

All Supported –

If adopted by base...

All Supported

Based on Projects – not components

Classpath setup

N/A

Classpath per module supported

Classpath per module supported

Multiple components “share” classpath

Doc Root/Context

Refers to a fixed folder location

For relative lookup

 

IResource would provide proper “runtime” root for relative links

Support needed to calculate “runtime” doc root

Support needed to calculate “runtime” doc root

Support needed to calculate “runtime” doc root

Resource Changed

Clients which are "resource changed" listeners need to know not just which Eclipse Project a resource is in, but also which Web component (etc.) it is in.

Supports resource changed deltas – no work required

Supports resource changed deltas – no work required

Supports resource changed deltas – no work required

New resource changed listeners required to map IResource to virtual resource/component

Markers

Each marker and each use of it, may be a different case ... but there needs to be some tie-in to the "parent project" ... for example, in JSP debugging, the breakpoint marker, or more precisely, the "SourceComputer"  needs to know the "context root" of the project.

Markers shared between links

Supported

N/A

Support required to map virtual resource to resource

Scheduling Rules

operations need to be able to compute the "smallest" "resource collection unit" to lock during execution.

Scheduling rule should be “link” aware possibly causing wider scope

Supported as is

Support required to be “filter” aware – could include other projects….

Scheduling rule should be aware of physical structure possibly causing wider scope

Team Support

End-users will want to check out/in and version control "whole web projects" or entire Maven like layouts.

 

Issues with team if linked from different projects

N/A

Team Project Sets required

Works as is

MetaData

Components need shared "meta data" that needs to be coordinated (e.g. CVS) with

rest of web project (even if whole web project in mulitple Eclipse projects).

N/A

N/A

Metadata stored in project root (could cause problems with existing structure)  May need alternative directory

Metadata stored in configured folder per component

Debug

Could use improved support for JSR45, since "deployed structure" different than "development structure" (and varies by server target)

Resources already in runtime structure

Debug required to introduce flexibility for source structure

(Mapping back to source structure)

Debug required to introduce flexibility for source structure

(Mapping back to source structure)

Debug required to introduce flexibility for source structure

(Mapping back to source structure)

Project Features

Current proposal expanding upon current Nature support

Module features could be defined

Module features could be defined

Module features could be defined

Would need to be mapped to components

Profiling/Testing

Resources already in runtime structure for testing

Resources assembled into runtime structure – test from assembled location

Resources assembled into runtime structure – test from assembled location

Resources assembled into runtime structure – test from assembled location

ContentType

refined definitions of JSP based on what's in web.xml (e.g default encoding, acceptable file extensions)

 

 

 

 

validateEdit

Listeners should be notified of each linked resource

Works as is

Works as is

Works as is