<?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon()); # All on the same line to unclutter the user's desktop' | |
$pageTitle = ""; | |
$pageKeywords = ""; | |
$pageAuthor = ""; | |
ob_start(); | |
?> | |
<div id="maincontent"> | |
<div id="midcolumn"> | |
<h1>Java 2 CSharp translator</h1> | |
</p> | |
<?php | |
include_once($_SERVER['DOCUMENT_ROOT'] . "/projects/fragments/proposal-page-header.php"); | |
generate_header("Java 2 CSharp Translator"); | |
?> | |
<H2> | |
<SPAN>Introduction</SPAN> | |
</H2> | |
<P> | |
<SPAN>The Java 2 CSharp translator is a proposed open source project under the </SPAN><A href=http://www.eclipse.org/technology/><SPAN>Eclipse Technology | |
Project</SPAN></A><SPAN>.</SPAN> | |
</P> | |
<P> | |
<SPAN>This proposal is in the Project Proposal Phase (as defined in the </SPAN><A href=http://www.eclipse.org/projects/dev_process/ id=es-317><SPAN>Eclipse | |
Development Process document</SPAN></A><SPAN>) | |
and is written to declare its intent and scope. This proposal is written to | |
solicit additional participation and input from the Eclipse community. You are | |
invited to comment on and/or join the project. Please send all feedback to the | |
</SPAN><A href=http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.c-sharp> | |
<SPAN>http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.c-sharp</SPAN></A><SPAN> | |
newsgroup. </SPAN> | |
</P> | |
<H2> | |
<SPAN>Background</SPAN> | |
</H2> | |
<P> | |
<SPAN>With the .NET market growing, many | |
Java developers and vendors want to offer a true native .NET version of their | |
software. Since there is not a viable solution to have a single source policy | |
for both platforms, and since the Java and CSharp languages are very similar, | |
there is a growing need for conversion tool.</SPAN> | |
</P> | |
<P> | |
<SPAN>Some solutions already exist, but most | |
of them are too limited (i.e, to JDK1.3), have a "one shot" behavior, or are | |
not well integrated in the development environment. </SPAN> | |
</P> | |
<P> | |
<SPAN>Eclipse's highly flexible JDT | |
framework, in particular its refactoring capability, has been an excellent | |
start point for the Java 2 CSharp project.</SPAN> | |
</P> | |
<H2> | |
<SPAN>Scope</SPAN> | |
</H2> | |
<P> | |
<SPAN>The | |
The Java 2 CSharp translator is an extensible framework for translating Java code | |
to any similar language and an exemplary tool to translate Java to CSharp. It is built | |
on top of the JDT; it uses and extends the powerful refactoring capability and it is | |
integrated in the Eclipse user interface. </SPAN> | |
</P> | |
<H2> | |
<SPAN>Decription</SPAN> | |
</H2> | |
<P> | |
<SPAN>The Java 2 CSharp translator goal is to allow automatic translation | |
of Java source files into CSharp source files.</SPAN> | |
</P> | |
<P> | |
<SPAN>By design it's | |
extensible (you can add your own "transformations"), customizable (you can add | |
or modify the way a Java construct is mapped on a CSharp construct) and robust | |
(already used in industrial environment at ILOG to produce the Rules for .NET | |
business rules engine). </SPAN> | |
</P> | |
<P> | |
<SPAN>As | |
the user experience is important, translating code must be simple for a | |
developer. The tool is integrated in the Eclipse UI via wizards and popup | |
menus. The typical development phase workflow is as follows: write the Java | |
code normally in Eclipse as normal, execute tests, and when needed, use a | |
wizard to produce the C# version, compile it, and run tests. If needed, | |
the UI integration helps the developer with customization, e.g., adding | |
translator-aware Javadoc comments). </SPAN> | |
</P> | |
<P> | |
<SPAN>For | |
real-life projects, with many thousands of lines of code, a command line | |
version is available to allow fully automatic translation using standard tools | |
such as Maven.</SPAN> | |
</P> | |
<P> | |
<SPAN>Major features:</SPAN> | |
</P> | |
<P> | |
<SPAN><SPAN>*<SPAN> | |
</SPAN></SPAN></SPAN><SPAN><FONT>JDK6/Generics support</SPAN> | |
</P> | |
<P> | |
<SPAN><SPAN>*<SPAN> | |
</SPAN></SPAN></SPAN><SPAN>UI | |
Integration</SPAN> | |
</P> | |
<P> | |
<SPAN><SPAN>*<SPAN> | |
</SPAN></SPAN></SPAN><SPAN>Tests | |
translation (from junit/testng to NUnit)</SPAN> | |
</P> | |
<P> | |
<SPAN><SPAN>*<SPAN> | |
</SPAN></SPAN></SPAN><SPAN>Project | |
translation</SPAN> | |
</P> | |
<P> | |
<SPAN><SPAN>*<SPAN> | |
</SPAN></SPAN></SPAN><SPAN>Command | |
line version</SPAN> | |
</P> | |
<H2> | |
<SPAN>Organization</SPAN> | |
</H2> | |
<P> | |
<B><SPAN>Initial | |
committers</SPAN></B></FONT> | |
</P> | |
<P> | |
<SPAN>The | |
initial committers are:</SPAN> | |
</P> | |
<P> | |
<SPAN><SPAN>*<SPAN> | |
</SPAN></SPAN></SPAN><SPAN>Alexandre | |
FAU (ILOG): project lead</SPAN> | |
</P> | |
<P> | |
<B><SPAN>Interested parties</SPAN></B> | |
</P> | |
<P> | |
<SPAN>The following companies have expressed interest in this project. Key contacts | |
listed.</SPAN> | |
</P> | |
<P> | |
<SPAN><SPAN>*<SPAN> </SPAN></SPAN></SPAN><SPAN>EMF4.NET : Reinhold Bihler</SPAN> | |
</P> | |
<P> | |
<SPAN><SPAN>*<SPAN> </SPAN></SPAN></SPAN><SPAN>ILOG : Alexandre FAU</SPAN> | |
</P> | |
<P> | |
<SPAN><SPAN>*<SPAN> </SPAN></SPAN></SPAN><SPAN>SCORT : Thomas Colin de Verdiere</SPAN> | |
</P> | |
<H2> | |
<SPAN>Tentative Plan</SPAN> | |
</H2> | |
<P> | |
<SPAN>The project is already available at Sourceforge | |
(</SPAN><A href=http://sourceforge.net/projects/j2cstranslator/><SPAN>http://sourceforge.net/projects/j2cstranslator/</SPAN></A><SPAN>) | |
with a developers/users community. </SPAN> | |
</P> | |
<P> | |
<B><SPAN>Q4 2008:</SPAN></B> | |
</P> | |
<P> | |
<SPAN><SPAN>*<SPAN> | |
</SPAN></SPAN></SPAN><SPAN>Modify the tool | |
to allow translating Java to other Java-like languages</SPAN> | |
</P> | |
<P> | |
<SPAN><SPAN>*<SPAN> | |
</SPAN></SPAN></SPAN><SPAN>Eclipse 3.4 support</SPAN> | |
</P> | |
<P> | |
<SPAN><SPAN>*<SPAN> | |
</SPAN></SPAN></SPAN><SPAN>Re-work the | |
Maven integration</SPAN> | |
</P> | |
<P> | |
<B><SPAN>Q2 2009:</SPAN></B> | |
</P> | |
<P> | |
<SPAN><SPAN>*<SPAN> | |
</SPAN></SPAN></SPAN><SPAN>Improve the | |
mapping language to match AST subtrees instead of strings</SPAN> | |
</P> | |
<P> | |
<SPAN><SPAN>*<SPAN> | |
</SPAN></SPAN></SPAN><SPAN>Look at the extension point mechanism for the extensibility</SPAN> | |
</P> | |
<P> | |
<B><SPAN>Future directions:</SPAN></B> | |
</P> | |
<P> | |
<SPAN><SPAN>*<SPAN> | |
</SPAN></SPAN></SPAN><SPAN>Keep up with | |
Java and CSharp evolution </SPAN> | |
</P> | |
<P> | |
<B><SPAN>Mentors</SPAN></B> | |
</P> | |
<P> | |
<SPAN><SPAN>*<SPAN> | |
</SPAN></SPAN></SPAN><SPAN>Ed Merks</SPAN> | |
</P> | |
<P> | |
<SPAN><SPAN>*<SPAN> | |
</SPAN></SPAN></SPAN><SPAN>Chris Aniszcyzk</SPAN> | |
</P> | |
</div> | |
</div> | |
<?php | |
$html = ob_get_contents(); | |
ob_end_clean(); | |
# Generate the web page | |
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html); | |
?> |