An eclipse is an astronomical event that occurs when an astronomical object is temporarily obscured, either by passing into the shadow of another body or by having another body pass between it and the viewer. read more at WikiPedia

    • Use only Eclipse and try to buy codepro or found a free plugin that create java pattern templates and has refactoring capabilities..
    • Use only Borland if you need to do a RAD (Rapid applications development) applications
    • And for the text editor or xml or xsl or whatever, use only JEDIT, it is free and for sure the best editor, many of my colleagues are still fighting, convince that ultraedit or notepad or mpad are a lot better. You are clever only if you accept sometimes you are not right....
    • TCPviewer and Process viewer, free tools that can be download at
  •  I show You here (with screenshots) How to access Joomla Forge CVS system using the standard Eclipse CVS client.

    Click Read more !

    Go to the perspective CVS Repository Exploring
    New Repository LocationAdd a new repository location (the screenshots show a workspace I am using with all repositories already defined...)
    add CVS repositoryEnter the following informations:
    • Host is
    • Repository pathis /cvsroot/com_akocommentplus
    • Enter your user login (create one if needed here)
    • Enter your Password
    • Connection type should be extssh
    Click on button Finish
    check out HEAD from Joomla ForgeYoure done, you can now checkout the HEAD

  • ganymede

    Here is the list of all 380 default shortcuts keys for eclipse Ganymede in an easy to print layout (4 pages A4). I recommend you to print a booklet out of it.

    Nobody on Internet is currently providing such a list, except a sourceforge project but their keys binding is for eclipse 2.1,Others keys binding for eclipse will follows soon.

    3rd party plugin shortcuts:

    Download as PDF now eclipse.ganymede.shortcuts.keys.binding.pdf

  • When Eclipse meet Joomla!...from 0 to Joomla! in 3 minutes


    The easiest way to develop component, modules, plugin for Joomla! using best of the breed open source software.&160;
    In order to speed up development of Joomla software, I did develop a developer package "start and ready to work". So basically nothing special for any experienced developer, just a gain of time. Less experienced developer will enjoy the package!&160; Just unpack the big ZIP file on any drive, start 2 program and you have a running Eclipse and Joomla! environment for developing

    Read more in the WIKI

    To be release in a few hours from now

    Content of package

    eclipse logo
    Eclipse 3.4
    Eclipse is an open source community whose projects are focused on providing a vendor-neutral open development platform and application frameworks for building software. The Eclipse Foundation is a not-for-profit corporation formed to advance the creation, evolution, promotion, and support of the Eclipse Platform and to cultivate both an open source community and an ecosystem of complementary products, capabilities, and services.
    PDT 2.0 The PDT project provides a PHP Development Tools framework for the Eclipse platform. This project encompasses all development components necessary to develop PHP and facilitate extensibility. It leverages the existing Web Tools Platform (WTP) and Dynamic Languages Toolkit (DLTK) in providing developers with PHP capabilities.
    XAMPP 1.7.0
    XAMPP is an easy to install Apache distribution containing MySQL, PHP and Perl. XAMPP is really very easy to install and to use - just download, extract and start.
    apache http server
    • Apache HTTPD 2.2.11 + Openssl 0.9.8i

    The Apache HTTP Server Project is an effort to develop and maintain an open-source HTTP server for modern operating systems including UNIX and Windows NT. The goal of this project is to provide a secure, efficient and extensible server that provides HTTP services in sync with the current HTTP standards.

    Apache has been the most popular web server on the Internet since April 1996.
    with mod_rewrite
    php logo
    • phpMyAdmin 3.1.1
    • FileZilla FTP Server 0.9.29
    • Mercury Mail Transport System 4.52
    PHP is a popular open-source programming language used primarily for developing server-side applications and dynamic web content, and more recently, other software. The name is a recursive acronym for "PHP: Hypertext Preprocessor".

    with PHPdg debugger support
    with GD2 image manipulation library
    PphpMyAdmin 3.1.1
    phpMyAdmin is a tool written in PHP intended to handle the administration of MySQL over the Web. Currently it can create and drop databases, create/drop/alter tables, delete/edit/add fields, execute any SQL statement, manage keys on fields.

    Accessible through:
    joomla logo
    Joomla 1.0.15
    Joomla! is one of the most powerful Open Source Content Management Systems on the planet. It is used all over the world for everything from simple websites to complex corporate applications. Joomla! is easy to install, simple to manage, and reliable.

    configured to access mysql dev10x database
    admin panel login: admin
    admin panel pwd: admin
    joomla logo
    Joomla 1.5.9
    configured to access mysql dev15x database
    admin panel login: admin
    admin panel pwd: admin
    mysql logo
    MySQL 5.1.30&160;
    root login: root
    root password: empty
    Eclipse Launcher Version 2.0.2 A tool for java developers using eclipse IDE. The eclipse launcher provides developers to manage multiple workspaces and to start those. The program is shown in system tray from which it is possible to edit or start the workspace definition in an easy way.
    KDK 1.6u11
    Java Development Kit from Sun Microsystems that implements the basic set of tools needed to write, test and debug Java applications and applets. Needed to run Eclipse.

    &160; MySQL Administrator is a powerful visual administration tool that makes it easy to administer and monitor your MySQL environment and gain significantly better visibility into how your databases are operating. MySQL Administrator now integrates database management and maintenance into a single, seamless environment, with a clear and intuitive graphical user interface.

    MySQL Query Browser is the easiest visual tool for creating, executing, and optimizing SQL queries for your MySQL Database Server. The MySQL Query Browser gives you a complete set of drag-and-drop tools to visually build, analyze and manage your queries.

    The MySQL Migration Toolkit is a powerful framework that enables you to quickly migrate your proprietary databases to MySQL. Using a Wizard-driven interface, the MySQL Migration Toolkit implements a proven methodology and walks you through the necessary steps to successfully complete a database migration project.

    Some figures

    • Distribution is available as zip
    • You will have to accept and Read all licenses in directory SolarJoomla\licenses\
    • start one program to enjoy a running a Joomla developer environment in no time!
  • I will show you in an Apache Maven configuration file how to copy files to server each time the package phase is executed.

    Solution with Ant SCP task

    This snippet of code is a ready to use code that make use of Apache Ant task scp, Just put this snippet of code in your Maven module where the assembly is executed or anywhere else to push all tar.gz files to a server just run a maven mvn package, you can add as many ant task and push to many server the same file during the reactor build.

                <echo message="Push to server/home/"/>
                <scp trust="yes"
                    <fileset dir="${basedir}/target">
                        <include name="**/*.tar.gz"/>

    Solution with maven-deploy-plugin

    The maven-deploy-plugin allows you to configure the deploy phase to deploy to a server using scp. There is a page in the documentation that describes how it can be done.

    Deploy maven artifact using Maven Wagon SCP

    Another alternative would be to use Maven Wagon SCP like described in this post for example

  • apache_maven

    In which order are Apache Maven profiles executed? are Apache Maven profiles ordered? how can you insured that Apache Maven profiles are activated in the right order?

    You normally don’t end up with these questions, issues may only appear if

    • Some profiles are dependent each other,
    • Some profiles can not run in any order,

    The use case behind this article is very simple, as I have a a continuous build were:

    • 5 web applications have  to be deployed into a remote tomcat in phase pre-integration-test,
    • 2 databases are created for test cases in phase generate-test-resources
    • 1 more database is created and needed for runtime, done in phase pre-integration-test
    • One of these web applications is able to inject data into database using web services, a profile do this in a profile in phase pre-integration-test
    • Selenium test cases are run in phase integration-test

    All these steps are done using several Apache Maven pom profiles.

    As it is a bit complicated to explain, lets first refresh some Apache Maven concepts

    Apache Maven Goals

    First you’ll have to keep in the mind Apache Maven lifecycle of modules, 21 goals out of the box:

    • Validate: validate the project is correct and all necessary information is available 
    • generate-sources: generate any source code for inclusion in compilation    
    • process-sources: process the source code, for example to filter any values    
    • generate-resources: generate resources for inclusion in the package    
    • process-resources: copy and process the resources into the destination directory, ready for packaging  
    • compile: compile the source code of the project    
    • process-classes: post-process the generated files from compilation, for example to do byte code enhancement on Java classes    
    • generate-test-sources: generate any test source code for inclusion in compilation
    • process-test-sources: process the test source code, for example to filter any values    
    • generate-test-resources : create resources for testing 
    • process-test-resources: copy and process the resources into the test destination directory    
    • test-compile: compile the test source code into the test destination directory    
    • test: run tests using a suitable unit testing framework. These tests should not require the code be packaged or deployed
    • prepare-package: perform any operations necessary to prepare a package before the actual packaging. This often results in an unpacked, processed version of the package    
      package     take the compiled code and package it in its distributable format, such as a JAR    
      pre-integration-test: perform actions required before integration tests are executed. This may involve things such as setting up the required environment   
    • integration-test: process and deploy the package if necessary into an environment where integration tests can be run     (selenium test cases for example)
      post-integration-test: perform actions required after integration tests have been executed. This may including cleaning up the environment
    • verify     run any checks to verify the package is valid and meets quality criteria    
    • install     install the package into the local repository, for use as a dependency in other projects locally
    • deploy    code is deployed in artifactory or copied with ftp/scp for distribution

    if you run the goal compile

    mvn compile

    on a simple multi module project, EVERY modules, one after the others,  will go through these phases
    validate –> generate-sources –> process-sources –> generate-resources –> process-resources –> compile

    Apache Maven reactor

    The reactor is the part of Apache Maven that allows to execute a goal on a set of modules. As mentioned in the Apache Maven 1.x documentation on multi-modules builds, while modules are discreet unit of work, they can be gathered together using the reactor to build them simultaneously and:

    The reactor determines the correct build order from the dependencies stated by each project in their respective project descriptors, and will then execute a stated set of goals. It can be used for both building projects and other goals, such as site generation.

    The reactor is what makes multi-modules build possible: it computes the oriented graph of dependencies between modules, derive the build order from this graph and then execute goals on the modules. In other words, a "multi-modules build" is a "reactor build" and a "reactor build" is a "multi-modules build".

    A simple multi modules project

    For the sake of the exmaple, it has modules and profiles dependencies, in myProject/pom.xml


    or if you prefer the directory layout

        |_ pom.xml
        |_ web
        |_ remoting
        |_ services
        |_ web

    Lets assume also I would like to apply a list of profiles named

    • deployWeb, deploy the war module using cargo to a running tomcat instance
    • createDatabase, create a mysql database from scratch
    • runSelenium, run selenium test in phase integration test against web, assume database is created first
    • deployMonitoring, deploy the war module using cargo to a running tomcat instance, query the web at startup to get some infos.

    Maven calculate the module order in reactor based on dependencies, as seen in logs file after running

    mvn compile

    [INFO] Reactor build order:  Unnamed - com.waltercedric:myproject:pom:0.0.1-SNAPSHOT
    Unnamed - com.waltercedric:common:jar:0.0.1-SNAPSHOT
    Unnamed - com.waltercedric:services:jar:0.0.1-SNAPSHOT
    Unnamed - com.waltercedric:remoting:ear:0.0.1-SNAPSHOT
    Unnamed - com.waltercedric:web:war:0.0.1-SNAPSHOT
    Unnamed - com.waltercedric:monitoring:war:0.0.1-SNAPSHOT


    It start to be complicated when you provide a list of profile using Apache Maven command line like this

    mvn post-integration-test –PdeployWeb,createDatabase,runSelenium,deployMonitoring

    Chances are high that you will get profile executed in wrong order, too early or too late..

    Rule 1 profiles are activated (if found) following reactor modules order

    The first rule is that profiles are activated in module reactor order first, if myProject is first it will go through all 18 phases of  Apache Maven (from validate to post-integration-test in my example). Keep in mind also that the list of profiles will be applied to EVERY modules in EVERY phase starting at the top most module in reactor.

    • On modules myproject:
      •  Apache Maven will activate profiles PdeployWeb,createDatabase,runSelenium,deployMonitoring if one or more in the list are present in myproject/pom.xml
    • On modules common,
      • Apache Maven will activate profiles PdeployWeb,createDatabase,runSelenium,deployMonitoring if one or more in the list are present in common/pom.xml
    • and so on….

    Rule 2  Reactor modules order “may” be changed

    And now the tricky part, you can normally NOT change the module order in reactor, that’s ok but….

    The order you define in myProject/pom.xml for   (=module aggregation) is still kept if the maven dependencies resolver don't see any problems

    Not clear enough? look at the 2 examples below:

    myProject/pom.xml mvn post-integration-test
    Reactor build order (seen in logs)


    1. myProject
    2. common
    3. services
    4. remoting
    5. web
    6. monitoring
    Maven adapt the order based on oriented graph of dependencies between modules.


    1. myProject
    2. common
    3. services
    4. remoting
    5. monitoring
    6. web
    Swapping module having no direct connections each others and having no conflicting dependencies to other may result in a different order in reactor!!!! and also different profile execution order.

    Since Apache Maven has detected that the module monitoring and web have no connections, it accept the “human/natural” order found in myproject/pom.xml.

    You may have to use this technique to distribute your profiles in pom.xml while still keeping the profile order execution under control.

    Rule 3 Maven profile order is not taken from command line

    The order of profile in the Apache Maven command line  –P list is not taken into account, running the expected profiles order

    mvn post-integration-test –PdeployWeb,createDatabase,runSelenium,deployMonitoring

    is equivalent to

    mvn post-integration-test –PcreateDatabase,deployMonitoring, deployWeb,runSelenium



    It is a good things, as it  simply make no sense across all modules and all Maven phase all combined together.

    Rule 4 You can force profiles to run in an order if you SORT them accordingly into ONE pom.xml

    Apache Maven recommend to place profiles into the module where they are acting.

    If I want to insure that profiles deployWeb, createDatabase are run before the profiles runSelenium you have to keep that order in the pom.xml even if these profiles are acting in different Maven phase

    • createDatabase  may run in phase generate-test-resources 
    • deployWeb run in phase pre-integration-test
    • runSelenium run in phase integration-test

    Considering the module ordering in reactor, a good pom.xml candidate could be web/pom.xml like this






  • Some samples chapter which discusses the different approaches to code generation and looks at best practices for applying code generation techniques to the development of enterprise software for the J2EE platform. From the Book  Rapid J2EE™ Development: An Adaptive Foundation for Enterprise Applications (Prentice Hall PTR)
    Code generation methods offer a means of delivering enterprise solutions extremely rapidly by reducing the mundane, repetitive tasks developers face. is also hosting Eclipse Modeling Framework (EMF) EMF is a modeling framework and code generation facility for building tools and other applications based on a structured data model. From a model specification described in XMI, EMF provides tools and runtime support to produce a set of Java classes for the model, a set of adapter classes that enable viewing and command-based editing of the model, and a basic editor. Models can be specified using annotated Java, XML documents, or modeling tools like Rational Rose, then imported into EMF. Most important of all, EMF provides the foundation for interoperability with other EMF-based tools and applications.

  • iceSoft

    ICEsoft Technologies, Inc., is a leading provider of standards-compliant, Ajax-based solutions for developing and deploying Java EE, rich Internet applications. ICEfaces is a leading open source Ajax framework for Java EE.

    I search a lot in forums for resolving this small inconvenience in eclipse Helios. The solution is easier as you think:

    Are you using some custom file extensions?

    Name your facelets templates *.jspx if you are using any other extension, Eclipse JSP editor wont be used and you may have limited auto completion support.

    if you still want to use *.xhtml, .iface

    1. Go to Windows – Preferences – General – Content Types –  Text - JSP – and add your extensions
    2. into 'File Associations' and made the 'JSP editor' the default for .xhtml

    Auto completion for facelets, html and core components

    Use Jboss Tools which has enables content assist for f: ui: s: h:

    To install JBoss Tools, start up Eclipse 3.6 then:

    Help > Install New Software... >
    and add this URL:

    Locate your project in eclipse, right click, select configure and choose “Add JSF capabilities” as seen in the picture below


    Now open any files with the HTML editor/JSP editor, in fact it will work now with any editors and for all tags


    Another solution

    You do not need to install Jboss Tools (I recommend it through) but what about Icefaces support?

    Icefaces provide a plugin 3.5.0 that support auto completion of tags in Eclipse Galileo (3.5) for icefaces 1.8.2.  While Eclipse Helios is only supported with icefaces 2.0 (plugin > 3.6.2)

  • eclipse_home_header

    Eclipse is an open source community whose projects are focused on building an open development platform
    comprised of extensible frameworks, tools and runtimes for building, deploying and managing software across
    the lifecycle.

    I am using these settings for more than a year now, and the speed gain you can expect is in the range
    of 40%. Eclipse is more responsive, start up time is nearly divided by 2! These gains are reproducible
    on different machines in the office.


    • You must have a dual processor or quad core, (better if you use VMarg1)
    • You must start Eclipse with Java 1.6, note that you can still compile your project with Java 1.5
      (see windows - preferences - java - Installed JRE's)

    The tricks is to use the optimization done in JDK 1.6 (VMarg2) and the new agresivityof the Just In Time
    compiler (JIT) for VMarg3

    Add theses VM arguments to eclipse.ini (file is located in your Eclipse directory)

    -XX:-UseParallelGC -XX:+AggressiveOpts -XX:-UseConcMarkSweepGC

    Some details about what these parameters are doing:

    VMarg1 -XX:-UseParallelGC

    Use parallel garbage collection for scavenges. (Introduced in 1.4.1) this will create more threads running in parallel, so the second processor will be put in use

    VMarg2 -XX:-UseConcMarkSweepGC

    Use concurrent mark-sweep collection for the old generation. (Introduced in 1.4.1)

    The Eclipse GUI will feel more responsive as memory will be reclaimed without blocking VM executions.

    VMarg3 -XX:+AggressiveOpts Turn on point performance compiler optimizations that are expected to be default in upcoming releases. (Introduced in 5.0 update 6.)


    More about tuning Garbage collector HERE and at the Java HotSpot VM Options page

  • eclipse_home_header&160; After the huge success and feedback of my first tips on how to speed eclipse, here are more performances tips, some are obvious some not:

    Disabled/Exclude the virus scanner for the eclipse directory: while obvious It will or may be difficult to achieve if you're not administrator on your machine (while not impossible) and that may not make some people happy especially security officers ;-) It is obvious that scanning on the fly every resources in a workspace, is detrimental for speed. You'll get at least 15 to 20% more raw input output speed and gain 5 to 15% CPU cycles.

    Defragment often: NTFS fragment, File get changed, added or remove, so NTFS will fragment very fast, it is time to defragment&160; your disks. And since there is a lot of free program floating around, why not trying to get the last 20% loses in access time and transfer rate? Defragment at least one time a week your Eclipse workspace.

    Get more memory! Windows Server 64bits or Linux 64bits allow you to start with 3GB contiguous memory without complaining, the more memory the better!

    Get a faster disk for your notebook (western Digital black edition / Seagate momentus 1.3 are cheap), or better build yourself a RAID0 array made of 3 disks as you'll get the IO output of 3 disks. Since we do usually more READ access&160; (searching code, browsing hierarchy of objects) than write (writing code, let the compiler run)

    RAID 0 (striped disks) distributes data across several disks in a way that gives improved speed and full capacity, but all data on all disks will be lost if any one disk fails.

    Stop as many thread as possible that are not needed, in this category go all 3rd party nice to have software you may have authorized or not on your notebook: Google desktop search , Windows desktop search, widgets, Rss feeds... the less threads running in the background the better...

    Change for another operating system :-) Linux file systems are blazing fast compare to the venerable NTFS, and threading seems to be a lot better on any 2.6 Linux Kernel.

  • Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard.
    It automates the process of checking Java code to spare humans of this boring (but important) task. This
    makes it ideal for projects that want to enforce a coding standard. Checkstyle is highly configurable and can
    be made to support almost any coding standard. An example configuration file is supplied supporting the
    Sun Code Conventions. As well, other sample configuration files are supplied for other well known conventions.


    Some facts about checkstyle:


    Java 71%
    XML 26%
      XSL Transformation 2%
      CSS 1%
      HTML <1%
      Emacs Lisp <1%
      MetaFont <1%

    Project Cost

    This calculator estimates how much it would cost to hire a team to write this project from scratch.
    Codebase 68,028 LOC
    Effort (est.) 16 Person Years
    Avg. Salary $/year
  • Debugger are full-featured PHP debugger engine. They are interactive tools that allows
    you to debug PHP scripts locally or remotely, from an IDE or from the console. There is 3
    debugger on the market, XDEBUG (open source) , ZEND (closed source), DBG (commercial
    but source code available) by luck all are free :-)

    I recommend you to develop with Eclipse PDT: The Eclipse Foundation has released the 1.0
    of the Eclipse PHP Development Tools (PDT) project. Eclipse PDT is a set of tools and
    frameworks that enhance the productivity of developers using PHP, a popular, general-purpose
    dynamic language that is especially suited for development of web applications and web services.

    I have prepared a HowTo also for eclipse PDT, but it is still not ready for prime time.


  • Native debugger.
  • Debug locally or remotely
  • JIT. When enabled it can start debugging Just In Time when an error happens.
  • Supports back-trace, e.g. displays a list of all procedures with their local variables,
  • Step-in, step-out, step-over, run to cursor, change execution point withing current scope...), evaluate any valid php expression(s) or inspect arrays, classes and simple variables, modify their values on the fly and even create any new variables.
  • Supports conditional breakpoints and even global ones
  • Allows to change execution point
  • has embedded profiler,
  • Allows multiple debugger processes running simultaneously.
  • Has open COM interfaces for integration with win32-based 3rd party IDEs.
  • Linux, BSD, SunOs, MacOs and Win32 are supported.
  • &160;



    Xdebug provides:


    Debugger Extension can be downloaded from Zend Downloads

    Zend debugger in Eclipse also works for MySQL statements!

    Installing ZEND debugger in Eclipse

    The Zend Executable Debugger Eclipse plugin adds PHP debugging capabilities to the Eclipse environment.

    Add the following remote location to the eclipse manager, even if you have eclipse PDT

    ZEND debugging mysql statement

    You'll have to configured the PHP binary included with the ZEND debugger to be able to debug SQL queries. Search for a PHP.ini in your eclipse/plugins directory, you'll find 2 files.


    • E:\eclipse\bin\PDT\plugins\org.zend.php.debug.debugger.win32.x86_5.2.12.v20071210\resources\php4\php.ini
    • E:\eclipse\bin\PDT\plugins\org.zend.php.debug.debugger.win32.x86_5.2.12.v20071210\resources\php5\php.ini

    And add these line in one of these files according to your PHP version

    extension_dir = "xampp_path/php/ext"
    include_path =".;xampp_path/php;"

    Installing Zend debugger server in XAMPP

    Please note that the Zend Executable Debugger is not available from the Eclipse PDT update Manager, so download ZEND debugger (Free) from Zend Downloads, you must extract the zip

    In the zip file, you'll see multiple directories

    Use the version that match the one in XAMPP (you have note at chapter A, for me 5.2.3 so copy files from 5_2_x_comp) and copy the dll in


    Open the file php.ini located at xampp_path\apache\bin\php.ini
    and add these keys if they do not already exist:

    ;; Only Zend OR (!) XDebug

    ; this is to see output while debugging
    implicit_flush = On

    Switch off all other debugger as it may conflict with Zen


    Restart apache, check for proper operations by going to http://localhost

    Apache will crash if you have more than one key in php.ini with the name zend_extension_ts, so uncomment all other entries!


    Debugging PHP in Eclipse PDT

    Go to Debug dialog for creating and managing run configurations

    • Choose as Server Debugger: Zend Debugger
    • Choose as PHP Server: XAMPP
    • File should point to the root of your Joomla! installation ex: /PROD2/index.php because in XAMPP htdocs directory I have a subdirectory /PROD2 with Joomla! 1.5 inside
    • Remove the option Break at First Line
    • Keep URL to Auto Generate

    As seen in the screen shot below


    Now click on button configure

    • Give a Name, not important here, lets keep XAMPP
    • Enter the root URL that points to the document root of this server, for me it is http://localhost/PROD2


    Go to tab "Path Mapping"

    • As Path on server enter E:\xampp\htdocs\PROD2
    • Choose Path in Workspace /PROD2



    Confirm all windows, and you can now start the debugger by clinking on debug button zend.debugging.eclipse.joomla_3

    You're done, you can now set breakpoint and debug Joomla! or your code easily






    Installing Joomla in Eclipse

    We will now install Joomla 1.0.15 and Joomla 1.5.1 (newest version at time of writing into eclipse)
    Create two new PHP project in your workspace, one name joomla1.0.x the other joomla1.5.x for example

    Attention: the root workspace must be located at xampp_path/htdocs


    Setting Zend Debugger in Eclipse PDT for Joomla!

    In the PHP perspective of eclipse, go to the menu debug

  • While the Brits are lighting up for Bonfire Night and burning effigies of Guy Fawkes, the Eclipse development team has delivered their 3rd Eclipse 3.1 milestone build. Here are some of the more noteworthy things available in milestone build M3 (November 5, 2004) which is now available for download. See the M3 build notes for details about bugs fixed and other changes.
  • eclipse

    It is always difficult to discover what’s new in every Eclipse release, as the number of features is just growing over the years. More difficult is even to locate the new and noteworthy page, that’s why I list them all below for eclipse 3.5

    News and noteworthy pages contains interesting or significant changes made to the Eclipse Platform for the 3.5 release of Eclipse.



    I have personally saved them all (since eclipse 3.3) in a directory for further references. I wish eclipse would list them all in their wiki

    You’ll find a “What’s new page” also in your local help at but it look smaller in size than the html counterpart.

  • Community Bulletin

    Eclipse is turning 5! It was November 7, 2001 when IBM first released Eclipse as an open source project. To celebrate, a number of activities are being organized for the Eclipse community.

    Birthday Card

    An electronic birthday card has been setup to allow individuals in the the Eclipse community to show their support for Eclipse. Everyone in the Eclipse community is encouraged to sign the Eclipse birthday card.

    Individuals signing the card before December 1, 2006 will qualify for a random draw to win one of 20 Eclipse sweaters.

    Product Hall of Fame

    Over the last five years, the Eclipse community has built hundreds, if not thousands, of Eclipse based products. Therefore, an Eclipse Product Wall of Fame has been setup to showcase these products. Organizations and individuals that have created Eclipse based products and plug-ins are invited to add their solution to the Product Wall of Fame.

    Eclipse Birthday Parties

    There are over 25 local Eclipse birthday parties organized in cities around the world to celebrate this event. Locations, dates, and RSVP links can be found here.

    And here is my submission

  • The goal of the Callisto Simultaneous Release is to release ten major Eclipse projects at the same time. We are doing this simultaneous release to support the needs of the ecosystem members who integrate Eclipse frameworks into their own software and products. While those product producers naturally accept the ultimate responsibility for their customers' experiences, Callisto's goal is to eliminate uncertainity about project version numbers, and thus to allow ecosystem members to start their own integration, cross-project, and cross-product testing efforts earlier. Callisto is about improving the productivity of the developers working on top of Eclipse frameworks by providing a more transparent and predictable development cycle; Callisto is about developers helping developers serve the whole Eclipse community.

    from Calisto

    I am using Calisto now and YOU?

  • The major news I was waiting for:

    Eclipse Foundation, Zend Technologies, and IBM Announce the Approval of the PHP IDE Project
    The Eclipse Foundation, an open source community committed to the implementation of a universal software development platform, Zend Technologies and IBM, today announced that the Eclipse PHP IDE project has been approved by the Eclipse Foundation. The technology project was proposed by Zend and IBM on October 21, 2005. It will deliver a PHP Integrated Development Environment framework for the Eclipse Platform and will encompass the development components necessary to develop PHP-based web applications and will leverage the existing Eclipse Web Tools Project.

    Read the proposal here, If youre are in the area of Santa Clara, Zend is showing  demo at EclipseCon. Do someone know what wwill happen wwith ???

  • eclipse.galileo

    For the sixth year in a row, the Eclipse community has delivered its annual release train on its scheduled date. Galileo, the 2009 release train, is the largest ever release from the Eclipse community, comprising 33 projects and over 24 million lines of code. Over 380 committers from 44 different organizations participated to make this release possible.



    Download it now

    Note: Subversive is part of Galileo, but the first time you sync your code, you may get in SVN console a red error message:

    Selected SVN connector library is not available or cannot be loaded.
    If you selected native JavaHL connector, please check if binaries are available or install and select pure Java Subversion connector from the plug-in connectors update site.
    If connectors already installed then you can change the selected one at: Window->Preferences->Team->SVN->SVN Client.

    That’s because SVN connectors are not part of Galileo…

    The site where you’ll be able to download subversive connectors is HERE

  • I found today the mother of all shortcuts in eclipse, by accident....

    Type CTRL-3 in eclipse and a pop windows will appear where you can type any part of
    a keyword

    The windows will propose you anything related to your search (here I am searching
    the rename refactoring, for the example)


    This is the most easiest way to learn new tricks (news and noteworthy release note being the second).

    If you prefer the old way, that is by printing a huge list of shortcut list, here is what
    I found to be the most up to date:

  • eclipse_indigo_aka_3_7

    Eclipse Indigo is the annual release of Eclipse projects on June 22 2011; this year 62 project teams are part of the release.

    New and Noteworthy


  • The PDT project is working towards providing a PHP Development Environment framework. This project was formerly known as PHP IDE.

    Make Eclipse PDT work for Joomla development

    Install a PHP debugger

    In order to be able to perform debugging using eclipse PDT, you must download one of the following extra packages:&160; XDEBUG or ZEND debugger. I was not able to get the debugger running with XDEBUG even after reading many tutorials and trial error approach. Both packages are free, and it has work nicely for me with ZEND debugger after 5 minutes...

    Unfortunately, XDEBUG/ZEND can not be packaged with PDT due to license restrictions, so both tools are not just running out of the box without few efforts.

    PDT and Zend Debugger


    PDT + Zend in one package thanks to (118MB), highly recommended

    OR PDT (105MB) and add Zend debugger through software update later

    • Open Eclipse and go to Help-> Software Updates-> Find and Install
    • Select "Search for new features to install" and click "Next"
    • Create a New Remote Site with the following details:
    • Name: PDT
    • URL:
    • Check the PDT box and click "Next" to start the installation

    XAMPP, Zend debugger working together

    open the php.ini located at \xampp\apache\bin\php.ini

    and add the following



    • Only one key zend_extension_ts is allowed per php.ini file, un-comment all other or it wont work,
    • Attention: I did not move ZendDebugger.dll but use the one coming with eclipse Zend plugin, this may cause issues, if you update this plugin and the path change...

    Restart XAMPP apache

    By going to http://localhost/xampp/phpinfo.php check that you have a section Zend Debugger

    Put now a breakpoint in index.php of any Joomla! installation or deeper in any component you want to debug

    And right click on index.php, debug as PHP Web Page (Alt-Shift-D, W)


    While the first page get properly rendered in the internal browser of eclipse PDT, I was getting some strange rendering issues (html code produced look fine), by using an external browser like Chrome, Firefox, the problem has disappear.

    PDT and XDebug

    Installing with PEAR/PECL is as easy as opening a command prompt and typing

    # \xampp\php\pecl install xdebug

    open the php.ini located at \xampp\apache\bin\php.ini

    and un-comment the following



    ;; Only Zend OR (!) XDebug


    1. Modify the correct php.ini file, check the page phpinfo, normally the right php.ini is located at \xampp\apache\bin\php.ini
    2. You need to comment out any other references to &8220;zend_extension_ts&8221; in the php.ini file (the zend optimizer use it already as default)
    3. Restart apache, and check the page http://localhost/xampp/phpinfo.php to make sure XDebug has been successfully installed

    debugging AkoBookPlus:



    Add subversion plugin

    Install subversive by pointing the update manager to subversive update site


    You need also to install SVN connectors by adding a new update site: - [required] Subversive SVN Connectors


    Eclipse will restart, you should be able to browse repositories.

    Happy Joomla! development and PHP debugging!

  • My platform of development is Suse 9.0 and Eclipse 3.0M4

    eclipse launcher (link)

    The best eclipse launcher available as today, written in smalltalk by my friends of

    xdt Eclipse Launcher V1.0 RC2(761 KB) ist ein Tool für Java-Entwickler die mit Eclipse arbeiten.Mit dem xdt Eclipse Launcher verwalten Sie ihre Workspaces und können diese von einem Ort aus starten. Der xdt Eclipse Launcher startet als System-Tray Program, von wo Sie die Möglichkeit haben neue Definitionen einzutragen, oder die bestehenden Definitionen einfach und schnell zu starten.

    HP Nimius/E3 launcher

    Plugin for starting a HP Nimius application, Hewlett Packard Nimius informations can be found at This plugin was originally developped at work, and has been totally rewritten to avoid any copyright infrigment.
    Why is the difference with a Eclipse Launcher? you have 3 icons...


    This plugin assume that you are using a project for E3 which have the following structure (but you can change the default location of components):

    Project XXX/etc contains xml files, properties  
    Project XXX/log    
    Project XXX/lib contains applications E3 services and java code  

    This plugin is based on Tomcat sysdeo plugin and was simply extended. Since the original code is based on the MIT licence, I am also giving you this code under the same conditions.

    The MIT Licence:
    Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
    The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.






    Starting Tomcat in eclipse

    i get the following exceptions:

    2004-07-14 14:40:55,540 0 [main] ERROR org.apache.commons.digester.Digester - Digester.getParser:
    javax.xml.parsers.ParserConfigurationException: AElfred parser is namespace-aware
    at com.icl.saxon.aelfred.SAXParserFactoryImpl.newSAXParser(
    at org.apache.commons.digester.Digester.getParser(
    at org.apache.commons.digester.Digester.getXMLReader(
    at org.apache.commons.digester.Digester.parse(
    at org.apache.catalina.startup.Catalina.start(
    at org.apache.catalina.startup.Catalina.execute(
    at org.apache.catalina.startup.Catalina.process(
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(
    at java.lang.reflect.Method.invoke(
    at org.apache.catalina.startup.Bootstrap.main(


    "With tomcat 4.x, things become simpler, but this version of tomcat uses the jaxp sax parser factory. Moreover, this version of tomcat requires a validating parser, and it doesn"t check whether the parser actually is validating. If the AElfred parser is supplied in the system properties, an exception will be thrown when tomcat attempts to set validating on. I"d recommend using the (validating) xerces 1.4.4 sax parser rather than AElfred parser. It"s not safe to rely on the default parser, by not setting system properties, because it"s very likely there are several versions of the JAXP classes in the classpath, and who knows when you might get another one. The practice by the distributors of XML tools to include implementations of the JAXP classes in their own jar files is, of course, rather insane, but that"s the way it is.

    Do this,
    but also do this
    since many third party tools base the parser choice on =
    "org.xml.parsers.sax.parser" rather than use the SAXParserFactory.

    Daniel Parker"

    in eclipse add the following key to the launcher in VM arguments

    -Djavax.xml.transform.TransformerFactory=com.icl.saxon.TransformerFactoryImpl -Djavax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl




  • maven-logo-2 eclipse

    I did develop this solution at work for our internal purpose at Going away from the paradigm “As a developer I run everything locally” isn’t easy to accept but in some rare cases, it make sense. Below I list what I consider to be the main advantages and drawbacks.


    • Not everybody is changing the developer environment as you need admin right to be able to do changes, more stability.
    • The developer environment is standardized: convention over configuration always pays like in Apache Maven.


    • you can work from anywhere as long as you have an internet/VPN connection
    • You can move your working place around, show your workspace to a colleague, reduce your coupling to Windows, use Linux, use a Mac!


    • The source code stay on the server, if someone steal notebooks you don’t loose your software assets.


    • Somebody maintains the developer environment and settings for you, some developers can still beta test a new eclipse version before till it is considered stable.
    • Rollout is limited to a minimum loss of time, as you will see below 
    • Setting up a new developer account is basically settings up a new account on the shared server, running 3 lines of shell.
    • The server  is not full of unwanted applications running in background, only java.exe. eclipse.exe, databases can still run on another server (MYSQL, Oracle), runtime environment (Tomcat).

    Speed, speed and speed

    • A server is cheap compare to one big notebook for every developer.
    • Server is most of the time fully 64bits, may have up to 8 cores, RAID 5 typically  output 350Mb/s read (a good notebook: 32 bits, 2 cores and 80Mb/s without SSD)


    • A shared developer environment is a Single point of failure –> you need a very good backup, and eventually hardware fallback machine in hot standby!
    • You can not work if developer have no or limited internet access, in train for example.
    • It required a bit of initial engineering, hence this article.



    Use Windows Remote desktop connection, define a DNS entry to access the server.



    Linux has a free remote desktop implementation of Microsoft protocol, if it not installed, run either on Debian

    # apt-get install rdesktop

    or in OpenSuSE

    # zypper install rdesktop

    or in RED HAT

    # yum install rdesktop

    Create a script .sh file to save the connection parameters:

    rdesktop -A -C -k de-ch -r PRIMARYCLIPBOARD -u username -p password -xl  ipadress



    One install for all users

    1. Unpack the latest eclipse in any location, I recommend on c:\eclipse-3.5, but any location where you have some space will work.
    2. Start eclipse as administrator and install all required 3r party plugin: we use M2Eclipse, Subversive for example.
    3. Stop Eclipse,
    4. Remove ALL write rights to ALL users including admin if needed.
    5. When Eclipse will start under a developer account, it will copy its configuration files into C:\Users\%USERNAME%\.eclipse
    6. Every users will be able to adjust the eclipse.ini but these settings are a good start (adapt memory to your requirements)
    7. Create a shortcut for every developer on their desktop pointing to c:\eclipse\eclipse.exe



    Updating Eclipse

    A rollout of new Eclipse version is easy thanks to symbolic link. Download junction.exe, a small tool to create symbolic links

    Windows 2000 and higher supports directory symbolic links, where a directory serves as a symbolic link to another directory on the computer.

    and run as admin

    junction.exe c:\eclipse c:\eclipse-3.5

    Now thanks to symbolic links any update to a major new version of eclipse will be plain easy: just delete the symbolic link c:\eclipse and create a new one to the new version!

    Users with Multiple Eclipse workspaces

    1. Create an empty directory for hosting your new workspace, for example at
    2. Create a new shortcut with this content
      C:\eclipse\eclipse.exe --launcher.ini
      -data e:\\%USERNAME%\workspace\maven

    Apache Maven

    Maven Local repository, every user has it’s own

    It is not recommend to share the local Maven repository cache among users as Maven has no locking concept in place. The local maven repository is expected to be located at


    If you have enough space there for all your users, you can skip that chapter, Otherwise I will show you how to locate it anywhere on the file system.

    Let’s store it at e:\%USERNAME%\repository, here I have choose another drive with more space as Maven local repository can be quite big (700Mb per user today)

    The design chosen impose me to one more time play with symbolic links, using junction.exe in c:\users\%USERNAME%\.m2\repository pointing to e:%USERNAME%\repository

    When you are logged in as a normal developer account, in a dos windows, run the following

    junction.exe c:\users\%USERNAME%\.m2\repository e:\%USERNAME%\repository

    Maven settings.xml, one for all users

    I like the idea to maintain only one settings.xml. Apache Maven recommend to have one settings.xml per user (located in c:\users\%USERNAME%\.m2\settings.xml). This is true if you have different responsibilities among all your developers. For example some may not be able to deploy in Artifactory/Nexus while other can. Luckily, this is not the case as for today in our company. That is why I will only have one Settings.xml on server, located at c:\server.xml

    I will use a hard link to c:\settings.xml. When you are logged in as a normal developer account, in a dos windows, run the following

    fsutil hardlink create c:\users\%USERNAME%\.m2\settings.xml c:\settings.xml

    This make Apache Maven think that the settings.xml is in the default location c:\users\%USERNAME%\.m2\

    Updating Maven

    I do use the same trick for having a unique version of maven binary on the server while keeping some flexibility thanks to symbolic links.

    1. Unpack Apache Maven anywhere
    2. As an admin, in a dos windows, run the following:
      junction.exe c:\maven-3.0-beta1 c:\maven

    Now you can let all your developer reference in M2Eclipse this virtual directory c:\maven. Switching all developers to a new version is done by deleting and pointing to an older/newer version of Maven.

    It is not finished

    Our shared developer environment setup also virtualizes MYSQL (multiple schema per developer ) and Tomcat (per developer port range) using –D system variables in eclipse.ini


    Scenario 2 - shared install

    In this scenario, a single install area is shared by many users. The "configuration" directory under the install area is home only to the config.ini as shipped with the product (it is not initialized). Every user has their own local standalone configuration location.

    The set up for this scenario requires making the install area read-only for regular users. When users start Eclipse, this causes the configuration area to automatically default to a directory under the user home dir. If this measure is not taken, all users will end up using the same location for their configuration area, which is not supported.

  • Eclipse version 3.1 is AVAILABLE. New features added in this release: full support for Java 5.0 and improved support for developing rich client applications. Performance has been also significantly enhanced across the board since the 3.0 release. (what a blast with Jrockit 1.4.2!!!) . SWT can make a lot more graphical tricks, and has more widgets
    Do not forget to read what is maybe the best documentation online: 
    New and Noteworthy, (because You can get the substance of the new features in very few pages)
  • I came across this article at IBM developerworks, which explain how to use the RDT: Ruby IDE for the Eclipse platform. I decide also to give You here an overview of all languages supported by eclipse:

    • JDT: The JDT project provides the tool plug-ins that implement a Java IDE supporting the development of any Java application, including Eclipse plug-ins. It adds a Java project nature and Java perspective to the Eclipse Workbench as well as a number of views, editors, wizards, builders, and code merging and refactoring tools. The JDT project allows Eclipse to be a development environment for itself.

    • RDT is an open source Ruby IDE for the Eclipse platform.
      Features supported are syntax highlighting, on the fly syntax check, graphical outline, Test::Unit view/runner, Ruby application launching, content assist, source formatter, and a Ruby debugger.

    • CDT (C/C++ Development Tools) Project is working towards providing a fully functionalC and C++ Integrated Development Environment(IDE) for the Eclipse platform. 

    • Cobol: Eclipse fundation is hosting one COBOL CDT project but there is also a commercial plugin: theACUCOBOL-GT Eclipse Plug-in,

    • PHP:   PHPeclipse (open source CPL) PHP parser, debugger, code formatter, outline view, templates. Note also that ZEND has joined the eclipse board, so their flagship product ZEND Studio Pro may have a future as an eclipse plugin.

    • PERL: EPIC is an opensource Perl IDE for the Eclipse platform. Features supported are syntax highlighting, on the fly syntax check, content assist, perldoc support, source formatter, templating support and a Perl debugger. A regular expression plugin and support for the eSpell spellchecker are also available.

    • Python: PyDev is a plugin that enables users to use Eclipse for Python and Jython development. It comes with many goodies such as code completion, syntax highlighting, syntax analysis, refactor, debug and many others.
    • Eiffel: The Eclipe Eiffel Development Tools (EDT) are a set of plugins which eventually implement a full-fledged, highly integrated Eiffel development environment based on the Eclipse Platform
    • Groovy: The plugin provides a Groovy editor for editing scripts or classes in Groovy (Groovy is an object-oriented programming language designed for the Java platform as an alternative to Java with features from Python, Ruby and Smalltalk. see WikiPedia) language. Groovy makes writing scripts and applications for the Java Virtual Machine fast and easy.
    • Microsoft C#: Improve C# code editing with: Creation of new C# files (with a basic structure) - Syntax highlighting - Content assistant for C# keywords - Auto-indentation - C# code compilation etc  Unfortunately no more active development since June 2004

    And the list goes on......beside this nearly all minor scripting languages are supported (jsp, javascript... for ex.) and minor markup language (XML, HTML, JSF...) with the tremendous list of plugins:

    • Eclipse Plugin Central (EPIC) offers the Eclipse community and users of IBM WebSphere Studio application development environments (WSAD, WSSD, WSED, etc.) a convenient, information-rich portal that helps software developers find open source and commercial Eclipse plug-ins, tools, and products that enhance the entire Java software development life-cycle.