| RAP offers almost single-source support for building RCPs that can be used both as destkop and web-based applications. However there are some areas that would need enhancement to be able create a fully-web based IDE type application. One area is the support for text editing and comparison (eclipse.text and eclipse.compare). Getting properly working read-only editors would be a great start, and is not trivial since those core bundles make heavy use of the GC. Another area is to support multi-users workspaces or something similar where many web based users access the tool, which would be needed too. Some work exists at Mozilla with bespin that could be either source of inspiration or integration too. Several project could be built to help grw RAP support towards a fully web-based IDE.

+

| RAP offers almost single-source support for building RCPs that can be deployed as destkop or web-based applications. However there are some areas that would need enhancement to be able create a fully-web based IDE type application. One area is the support for text editing and another is comparison (eclipse.text and eclipse.compare). Getting properly working read-only editors would be a great start, and is not trivial since those core bundles may make heavy use of the GC. The prize is full read-write and is not trivial. Another area is to support multi-users workspaces or something similar where many web based users access the tool, which would be needed too. Some work exists at Mozilla with bespin that could be either source of inspiration or integration too. Several students project could be proposed in each of those areas and beyond to help grow RAP support towards a fully web-based IDE capability.

The goal of this project is to update PDE to use EMF and Databinding under the covers. In PDE, we have a lot of models and editors backed by custom code that has shown its age and is difficult to maintain. This is an opportunity to modernize PDE and make it more extensible.

Leverage one of existing Python/Java bridges or Jython (which now supports Python 2.5x) to add Python support into e4. Ideally this would include a guide to do it step by step in the current version of Eclipse, glue code and plugins to support Python bundles, a sample application and possibly some wizards and add-ons to PDE to make the experience smooth.

Ant buildfiles can become large and complex and would benefit from refactoring. Currently there is no support beyond renaming within a buildfile to allow the developer to efficiently refactor Ant buildfiles. The goals would be to implement an infrastructure to support refactorings in Ant buildfiles, participate in other components refactorings and provide a starter set of Ant buildfile refactorings. See bug 89938 for some initial buildfile refactoring ideas.

XSL Tools provides editing and debugging support. Currently there is no refactoring support for XSLT 1.0 or XSLT 2.0 stylesheets. Refactorings could include Extract Template, Extract Call Template, etc. Refactorings should participate with the platform refactoring framework.

Currently the XQuery Development Tools is using an Antlr xpath parser from the XQPretty project. However this does not currently integrate well with the editor, and a javacc implementation that expands the current XML javacc parser would be ideal. This would leverage and hook into the existing parsing framework for the Structured Source Editor and provide identification of Regions and Partitions for the editor. A bonus would be to have validation of the XQuery syntax as well. See bug 226245 for more information in regards to the XPath 2.0 support.

VEX supports the visual editing in a word processor like feel of a variety of XML formats. With the use of CSS stylesheets for the XML, it can render a WYSIWYG presentation. VEX currently does not have a working Multipage Editor..meaning that switching from the Design view to a source view, the XML is not shown in the source view and not synchronized. The model is EMF based, and the XML editor from WTP is DOM based, this project would leverage the EMF2SSEDOM framework for providing the synchronization between the two. The project is also open to other alternatives, and will allow the candidate wide latitude in experimentation of ways to implement the synchronization.

RelaxNG is an alternative schema language to the more widely known XML Schemas and DTDs. This project would implement RelaxNG valadition using the WTP validation framework. This should allow for both the as you type validation, as well as batch validation.

Implement a full featured editor for the RelaxNG compact syntax, with optional editing of the RelaxNG XML syntax as well. Should offer syntax highlighting, content assistance, validation against the relaxng specification, file wizards, preference pages, etc. Ideally built off and leverages the Structured Source Editor from WTP.

Implement a set of CSS stylesheets and appropriate outline views and enhancements for DocBook 5 features. This may require enhancements to the VEX model to support XML Namespaces, and displaying of images. DocBook 4.5 and Simplified Docbook 1.0 are currently supported, and can be used as a basis to provide Docbook 5 support.

XSL Tools provides good support for the XSLT 1.0 specification in the way of content assistance. It however does not provide support for some more advance features in XSLT 2.0 like custom functions, and content assistance for these features. Custom functions can be written in xslt 2.0, and then used within the stylesheet within XPath expressions. This allows for the generation of reuseable libraries like FXSL, to be created entirely in XSLT 2.0.

The goal of this project is to add support to API Tools to work with the extension registry. For example, there are things in extensions that can be considered API. For example, the id of a view can be referenced by anyone. This should be considered API and changing it has the potential of breaking downstream clients.

We'd like to find a way to bridge the gap between DTP and ECF to find a way to use a shared connection framework in E4. The idea would be to have an ECF connection for JDBC (would require jdbc url, jar list, uid/pwd, and any other properties) that could then be used to get the raw JDBC connection to be used in DTP...

With JWT processes can be modeled in different views: a business view which is more abstract (e.g. in BPMN) or a technical view which includes much more execution details (e.g. using UML activity diagrams with extensions). In order to configure these views, we developed a view editor. But this view editor is currently only usable for the core metamodel. In the meanwhile we developed an aspect-oriented mechanism for vendors to extend the metamodel with their specific details. These aspects need to be considered in the views, but are currently neglected. This project shall extend the existing JWT view editor and adapt the views to the aspects.

XSL Tools received a code contribution from the author of the PsychoPath XPath 2.0 java processor. This was developed before the finalized spec so is based on a draft version of the specification. The W3C has created a test suite that implementors of XPath 2.0 can use to verify their implementations. This project would help implement the test suite, identify, and provide patches for the XPath 2.0 processor so that it passes the tests. This is currently tracked in bug 262765.

Thanks to GEF3D and EMF Compare, it's now possible to display diagrams,

compare the semantic model, and show the differences through a 3D
representation. This project is about integrating those tools and
experimenting with such visualization (one can easily imagine a "Time
Machine"-like view for his diagrams.

EMF Compare uses an heuristic-based algorithm to compare two models, while

doing so its keeping processing data in memory (more important the models are,
more memory is used). This project is about leveraging CDO and writing another
implementation of match algorithm to be able to compare any size of model,
even ones with millions of elements.

Working on huge projects is a common task for many Java EE developers. Sooner or later the developer would fall in a situation where he or she needs to find an exact Java EE artifact by just remembering a portion of the artifact's name or description, but not the its exact location. In such situation the developer should try different methods of searching, including file search, full-text search, etc. It would be much more convenient if the IDE provides a Java EE metadata search.

Solution

We are all familiar with the Open Type and Open Resource index searches in the workbench and how useful they are when we try to quickly locate our files and Java classes in the huge projects we are working with. The Java EE perspective should naturally evolve these features to Java EE metadata index search, where developers can search for certain metadata in their Java EE projects.

This new feature should introduce new dialog box that looks similar to the Open Type and Open Resource dialogs. There should be a hotkey combination available that enables users to quickly call the dialog. Typing a portion of the Java EE metadata name or description should filter the available Java EE artifacts and assist the user choice.

Examples for Java EE metadata are:

EJB beans

Web servlets

EJB references

Security roles

There is a new Eclipse project proposed - EMF Index - that could help with the realization of this idea.

Currently the J2EE Preview adapter, that ships with WTP, utilizes the embedded Jetty server and makes possible for users to develop and run Web application without the need to install additional J2EE runtime and servers.

It would be useful if an EJB container is embedded in the J2EE Preview adapter, too. This will make possible EJB development "out of the box" the same way as web development.

There is a suitable embeddable EJB container - OpenEJB. There is a guide how to embed OpenEJB in Tomcat. So, it should be possible to embed it in a similar way in the Jetty web container.

In the end the J2EE Preview server adapter should be able to deploy and run WEB, EJB and EAR modules.

Zest currently provides an API for generating node-link diagrams (graphs), however, it doesn't contain any way for end users to construct their own views. Adding a DSL similar to GraphViz (DOT) would allow users to construct and render graphs on the fly. This could be accomplished by providing a language model in EMF or XText Grammar and through code generation (via JET or XPand, an equivalent Zest program could be generated).

Debugging cases where features cannot be installed into Eclipse due to inability to reconcile requirements of existing features and the new features being installed is quite challenging. It would be useful to create a tool for capturing the details of the environment and what was being installed to aid in reporting problems. Once it is possible to generate these dumps, a graphical explorer tool that would allow the developers to trace the dependencies and see the problems would make it significantly easier to debug these problems.

The current Eclipse p2 Update UI is targeted to both Eclipse SDK users and end-users of Eclipse-based products. Since the UI must support users with less knowledge than the typical Eclipse SDK user, the end result is a wizard-style (modal), task-based approach. Many power users, in particular Linux users, prefer a modeless, "dashboard" style of interaction. The current p2 "Admin UI" is targeted toward p2 developers who need to see every detail of the underlying p2 model objects. There is a need for something in between these two extremes. Users have mentioned Linux package management front ends such as Synaptic Package Manager as appropriate UIs for this audience. If appropriate, this UI could replace the p2 admin UI, but it's not clear if that should be the goal.

The aim of this project is to provide a facility that will allow for searching commit comments. The facility should be able to scan selected CVS project, find commits that match specific query and present them using the Compare Editor.

Customer explained how it would be nice to have a
"blue-arrows" Toggle button feature parallel to the current
"Yellow-arrows" Toggle button feature.Just like "Yellow-Arrows"
button has the tooltip -- "link open editors with Navigator
contents" , the "blue-arrows" feature can have the tool-tip
"Link open editors with current logical hierarchy view item"

That feature will provide the following functionality :
If the user clicks on an open editor , the focus in the project
explorer will go back to the logical item in the hierarchy view
under the Deployment descriptor (in its Sub-tree) rather than
going to the file on the file-system in the "ejbmodule" -
subtree (for eg. clicking EmpLocalhome.java in editor view
should go to the "EmpLocalHome" logical entity being shown in
the Deployment descriptor sub-tree. The Current "yellow-arrows"
feature rather makes the focus go into the "ejb module" folder
and focuses on the EmpLocalHome.java file itself. )

If the above "blue-arrows" feature is made availalbe the
developer never has to leave the Deployment descriptor subtree
during the entire EJB project development work flow. Currently ,
the "yellow-arrows" feature makes the focus go back into the
"ejbmodule" folder containing the corresponding .java . In
situations where the EJB project might contain 100's of EJB's
inside them, "ejbmodule" might contain 1000's of files
including the Deploy Code etc. The user then needs to scroll all
the way up to the Deployment Descriptor sub-tree to go
double-click and open any other logical view item ,say another
Entity bean component (eg. LocalHome or home interface etc.)
The customer complained that he ends up clicking on the
"collapse-all" feature in this case there by losing the whole
work-flow and then has to go back to the logical hierarchy view
under the Deployment descriptor sub-tree to find a particular
ejb component for editing.

---

This proposal opens the question for an extensible link with editor feature. There might be more then one model (eg resource model, Java EE model, WS model, Persistence Model) and the same editor could be linked to all the models. A solution is to make the whole link with editor very extensible with different models contributing to this extension. The models will have a priority and a shortcut could be defined to link with the next (by prio) model.

Even thought the feature request is in Java EE tools the solution will probably involve an "extensible part" in the platform ui and an "extension part" in Java EE tools.

The main aim of this project is to provide integration of a policy derivation tool for WTP Policy Editor.Policy derivation tool is a component which basically reads a WS Compliant XML type message(ie:-SOAP) and derives single/multiple policies corresponding to the msg(It will be usefull in web services scenarios such as for clients to build a compatible policy reading the soap messages coming from the Service side if the web service itself don't wish to publish it's policies.. ).With the Integration of such a tool we could feed the derived policy instances to the editor itself and users can therefore edit the derived policy/policies to their liking (ie:- add, edit delete policy assertions) as policy editor supports rich functionality for such work. Among other objectives of the project are providing out the capability for correctly displaying standardized WS specs such that policy editor will be aware of different specs such as WS-SEC,WS-RM,MTOM,Addreesing,etc on the policy instances ,users are working on/ hoping to work on ,AND making Policy Editor compatible for other WS policy constructs that are currently not supported..

Implement a EPL'd version of the Yahoo messaging protocol and than code an ECF provider implementation for that. The baseline goal of this project is to just implement messanging for Yahoo... things like file transfer can come later or if there's time.

ECF allows messaging protocols to be plugged in as providers. AIM isn't currently supported. The student can choose to implement the AIM (OSCAR) protocol themselves, or wrap an existing Java library like JOscar.

Virtual Network Console is a popular screen sharing technology. It would be useful to have an implementation of VNC protocol for ECF. See mailing list entry by Marek Zawirski for a more detailed description of idea.

SIP is a popular signaling protocol, widely used for setting up VoIP calls with 2 or more participiants. This project aims to create working SIP/VoIP implementation, that will provide ECF Call API. Implementation should allow VoIP calls using SIP from Eclipse and will make Eclipse a more functional softphone with an another protocol supported (already working implementations are jingle and Skype).

Improvement of distributed development process is common goal of Mylyn and ECF projects. There have been some efforts of integrating these projects. However, there are still some fields where integration could be further extended. This especially covers contacting easily with other developers when doing issue-oriented development with Mylyn. Goal of this project is to extend integration between Mylyn and ECF to allow easy task-oriented communication or task exchange.

Many service providers using a REST based API to offer developers access to their services, i.e. Twitter, Facebook and so on. The result of this is that some third parties provide Java based libraries which covers this API's. The ECF team played a little bit with the Twitter API and use therefore a library called Twitter4J. The disadvantage of this technique is a dependency to the third partie library. This means a ECF container based on such a library is dependend on the diversity of this.

To decouple these dependencies an own ECF based REST abstraction would be the best. Based on this many new ECF containers can be created easily without using any other libraries.

A plugin using ECF to make snippet codes available on a snippet view/template view and in an organized way, snippets codes that comes from some "place"(CVS/SVN, Web Service, REST, HTTP, and others), and a way to share snippets from the eclipse editor, using ECF behind the scenes and maybe probably Equinox, OSGi Services.... For example, imagine that several snippets codes that there are on the SWT project available on a palette into the eclipse, or even several projects making important snippets code available into Eclipse, in ECF case for example code to create a container and etc. Maybe in this case the student can find some synergy with Eclipse Search feature with this "Sharing Snippets".

The goal of this project is to provide a video chat over ECF, embedded on Eclipse in synergy with DocShare for real-time shared editing, using ECF provider mechanism to deliver screen capture video probably in SWF format (focus on the compact format and low bandwidth delivery) for a remote viewer.

BPEL is an emerging standard for Web service compositions. Although BPEL processes are typically modeled by using graphical tools, the language is so powerful that testing is as necessary as for traditional programming languages. Apache ODE [3] is an open source BPEL engine, Eclipse offers a graphical BPEL editor [4], and BPELUnit [5] is an open source testing framework, which provides means for mocking services and for calculating test coverage. However, they haven't been integrated yet.

The goal of this project is, in conjunction with Project Apache ODE Integration in BPELUnit [6], to provide a convenient, tightly integrated “unit testing environment” for BPEL processes in Eclipse / Apache ODE. For this particular piece, the UI portion of BPELUnit must be integrated into the Eclipse BPEL Designer to enable automatic unit testing directly from the modeling environment. To support the tester/developer better, a method for visualizing test coverage shall be developed and evaluated. For instance, it could be beneficial to mark executed activities in the graphical editor to display test coverage results.
If the student is interested, it is possible to evaluate methods for automatic generation of Unit Test Data and to integrate them into BPELUnit.

The recent addition of remoting and discovery capabilities to OSGI R4.2 (RFC 119) enables us to easily set up a distributed system. Combined with the well known JUnit, a testing framework for distributed application can be build on top. This test fw can then be consumed by ECF directly (eat your own dogfood) to prove its usefulness.

The goal of this project is to define a (textual) DSL for EclipseLink and create an Xpand-based code generator that generates best-practice EclipseLink code. The project will be mentored by two mentors (from Xtext/Xpand and EclipseLink) to ensure best-practice use of the technologies.

Given any Ecore model, you can create a basic editor for this model. This editor, in conjunction with the properties panel, is quite functional, but not something you could integrate in your application without spending some time polishing it. would be great to have EMF generate a Forms-based Editor for a given Ecore model. See http://ekkes-corner.blogspot.com/2009/03/using-rcp-views-to-view-uml-diagrams.html for an example. Of course, it would even be cooler if we could dynamically build up UIs like that, but that's maybe a second step (or a second GSoC project).

Following the improvements done by the Web tools project (233505) on semantic highlighting, the PHP Source Editor can now set semantic rules for better coloring techniques that will improve its performance and functionality. For example, currently, all variables are highlighted in the same color. Although members / static / constants variables should be colored in separate colors just like the Java editor does.

Each semantic rule should have a preference page which describes its rule color and functionality.

The main idea is to expose a thin-client, web-based, visual editor for manipulating graph-like, Ecore-based models, as opposed to the SWT-based editor that lives inside of Eclipse. This is desirable, because a browser-based editor can go many places that Eclipse and SWT cannot go, like being embedded in a web page. There are many possible applications that could then be built using this technology, that would not otherwise be possible, for example a wiki for collaborating on models. I'd therefore like to propose a project that would be divided into two parts.

The first part would be infrastructure-related, and would entail the following tasks:

Develop a concrete syntax layer that would be implemented using Open Web technologies, and could thus be purely browser-based.

Expose models based on Ecore so that they are remotely accessible via web services.

The second part of the project might be to ensure that some existing formalisms based on EMF work well in the new editor. UML Class Diagrams seem like a good first target, and I believe it should be possible to reuse the work from the UML2 project directly here. I would also like to see a Finite State Machine/Statechart editor running in the browser. For an idea of what this might look like, please see the (very rough) prototype here. (Firefox 3+ only, at the moment).

RAP offers almost single-source support for building RCPs that can be deployed as destkop or web-based applications. However there are some areas that would need enhancement to be able create a fully-web based IDE type application. One area is the support for text editing and another is comparison (eclipse.text and eclipse.compare). Getting properly working read-only editors would be a great start, and is not trivial since those core bundles may make heavy use of the GC. The prize is full read-write and is not trivial. Another area is to support multi-users workspaces or something similar where many web based users access the tool, which would be needed too. Some work exists at Mozilla with bespin that could be either source of inspiration or integration too. Several students project could be proposed in each of those areas and beyond to help grow RAP support towards a fully web-based IDE capability.

Online judges are getting a lot of acceptance and response worldwide these days. Primarily, An Online judge is something which'll accept a piece of code (sent Online), compile and execute it and run it against a set of test cases to verify the correctness of the program. Not only this, but an Online Judge also calculates other details such as Memory taken, Time of execution, Size of the Source code and so on. These judges are mostly used for conducting programming matches among a group of passionate people. But it can still be tweaked to do a lot of other stuffs. An online Judge can be used in a classrooms and make programming more exciting. It can be also use to teach basic programming concepts and carefully modified for it. In addition to this, the online judge is implmented in a group chat environment (On jabber servers). This would enhance the interaction and further increase the excitement.

This project will add an Online Judge feature. Any one in the world can host an online competition/ programming session/ share codes online etc.

VE is a WYSIWYG UI editor. It provides basic visual edition features. Some features need to be improved to be more user-friendly. The propose of this project is to change the default properties by using the Tab property to separate some most used properties in Tab property view by category.

VE is a WYSIWYG UI editor. It provides a visual edition of UI written in Java. The new UI programming paradigm in Declarative UI becomes more and more popular, particularly in Web development. e4 schedules to provide a declarative UI. XWT is a candidate of this solution, which is already accessible in e4 distribution.

The purpose of this project is to provide the visual edition of XWT on top of VE.

Java 1.5 introduces several new features that offer significant improvements over older Java technology, e.g., the new enum construct, which provides language support for enumerated types. Prior to Java 1.5, programmers needed to employ various patterns (e.g., static final int ...) to compensate for the absence of enumerated types in Java. Unfortunately, these compensation patterns lack several highly-desirable properties of the enum construct, most notably, type safety. The Convert Constants to Enum refactoring for Eclipse is a research prototype plugin that provides an automated approach for transforming legacy Java code to use the new enumeration construct. The semantics-preserving tool increases type safety, produces code that is easier to comprehend, removes unnecessary complexity, and eliminates brittleness problems due to separate compilation.

The current status of the plugin can be found at bug 200152. There are several facets currently lacking from the plugin which are obstacles to wide distribution, namely, a graphical user interface, test suite, conformance with other refactoring plugins in Eclipse, e.g., undo functionality, refactoring history, refactoring preview pane.