Saturday, December 21, 2013

Eclipse for PHP Developers is Back

After a few years pause the Eclipse for PHP Developers package is back with the Luna M4 milestone of the Eclipse Simultaneous Release.

The package assembles the PHP Development Tools (PDT), the JavaScript Development Tools (JSDT), HTML, CSS and XML editors, and productivity tools like EGit and Mylyn. It is one of the easiest way to start using PDT for developing PHP applications.

The package can be downloaded from the Developer Builds section on the Eclipse Downloads page:

Friday, August 9, 2013

Comparing feature.xml Files With XMLUnit

Recently, I worked on a releng tool that compares two build results of an Eclipse-based product and reports the differences. Depending on how the build is modelled, there are metadata files, which content changes with each build, e.g. version timestamps in feature.xml. In order to avoid polluting the report with such changes, I wanted to filter them.

So, I needed a way to compare feature.xml files, but yet ignoring differences found in some xml attributes like "version", "download-size" and "install-size". Luckily, I stumbled upon XMLUnit, which saved me lots of efforts.

XMLUnit was designed as a helper for asserting test results for code that produces XML output. But it's also turns to be a great helper for any use case that involves comparison of XML data.

Comparing two XML files is as easy as creating a new Diff object and calling any of the two test methods: identical() and similar(). In my case, similar() worked better.

The above snippet compares the XML files, but it does not ignore the attributes I am not interested of. Customizing the comparison mechanism of XMLUnit is very easy by overriding the so called DifferenceListener with own implementation.

In my own implementation I simply check if the found difference is related to any of the three attributes I want to ignore. If this is the case then I simply tell XMLUnit to treat these difference as "similar".

And this is everything you need to get the job done.

Monday, July 15, 2013

Moving Forward

After more than 12 years working for SAP, it was time for a change. I decided to refresh my professional life and joined the Zend Studio team.

All these years at SAP will remain a cornerstone in my professional career. I built myself as a software engineering. I worked on exciting projects together with so many great colleagues in the lab in Sofia, in the headquarters in Walldorf, and across the globe. I engaged with the Eclipse open source community.

My participation in the Eclipse community was perhaps the most romantic part during that time. I am extremely happy that in my new job I will continue being part and contributing to the community.

After two months working for Zend Technologies, I can say that this was the right move for me. I am now having the environment I wished for some time: smaller company, less processes, less politics, faster decision making, ROWE, telecommuting, shared office space, using modern and friendlier tools... In short: more freedom.

Thursday, October 25, 2012

Committer Access to Git Repositories behind a Proxy

There are lots of Eclipse committers that are employed by corporations and spend their day in an office protected with strong security measures. In other words they work behind a corporate proxy and have not direct access to Internet, which makes it hard using some network protocols on their usual ports, like SSH on port 22.

These committers have three alternatives for committer access to
  1. Find a pubic WiFi or 3G network and temporarily switch to it. This is not always possible: requires WiFi / 3G adapter and available network, and not really convenient: requires to switch network adapters and proxy settings. 
  2. Request the Eclipse webmasters to provide HTTPS access to the respective Git repository. HTTPS works very well behind corporate proxies. Unfortunately it is not enabled by default for Git repositories and the webmasters have their security concerns for doing this. 
  3. Try the good old as we know it from the CVS Howto guide. If it worked for you for accessing the CVS repositories then it should work also for the Git repositories. This is a nice workaround - it tunnels the SSH protocol from to If the configuration of your corporate proxy is not absolutely paranoic then you should be able to take advantage of this option. Here is an example screenshot of EGit configured to clone the Eclipse Libra website repository:

Happy gitting!

Monday, August 27, 2012

Changing the Context Root of Web Applications

This article was originally posted in the SAP Community Network. I post it here with few changes that generalize it for all Eclipse WTP users.

Soon after the first steps in developing web applications with Eclipse WTP, developers often realize that the default context root of their applications is not exactly what they want. By default, the context root goes after the project name - if the name of your project is "HelloWorld" then it will be deployed with context root "/HelloWorld".

Changing the context root is a piece of cake. In this post we will see how you can do this in Eclipse WTP.

Setting the context root when creating a new web project

As described in the Web Tools Platform User Guide, when creating a new web application, you typically use the "New Dynamic Web Project" wizard. Instead of finishing it on the first wizard page, you should click on the Next button to advance to the "Web Module" wizard page. There you can set the context root of the application by modifying the value in the "Context root" text field. If you wish to deploy the application in the server's root then simply give "/" as context root.

Changing the context root of an existing web project

To change the context root of a web application that is already available in the Eclipse workspace, simply right-click on the web project and call the "Properties" action from the context menu. Then navigate to the "Web Project Settings" property page and you will find the text field where you can change the context root.

Depending on the server adapter you use, if your application is already deployed and started then you may need to redeploy it or restart it for the change to take effect. 

Wednesday, August 15, 2012

STS 3.0 and SAP NetWeaver Cloud

This article was originally posted in the SAP Community Network

One of the interesting news this week is the release of the Spring Tool Suite 3.0.0. In addition to the new features, the highlight is that the complete project is now available as open source software on GitHub under the Eclipse Public License. This is really great news for the Eclipse community! More details about this move can be found on the SpringSource Blog.

After reading this news, I was thrilled to try developing a Spring application with STS 3.0 and deploying it on my trial account in SAP NetWeaver Cloud. I went to the STS download site, grabbed a package and installed it. Then I followed the usual steps for installing the Eclipse Tools for SAP NetWeaver Cloud on top of STS. Since STS 3.0 is based on Eclipse 4.2, the Eclipse Tools for SAP NetWeaver Cloud must be installed from the Juno update site:

STS comes with a nice dashboard that brings you up to speed with the Spring technology. Luckily there is a nice example project "spring-mvc-showcase" that demonstrates the capabilities of the Spring MVC web framework through small, simple examples. Just a single click and the project was fetched from GitHub and installed in my Eclipse workspace.

The Maven Integration for Eclipse resolved all required libraries and the project was ready to deploy. I quickly got a functional Spring application, so I will skip any real Spring development for now.

Deploying it on the SAP NetWeaver Cloud required a few more clicks. I just called the "Run on Server" action from the project's context menu and deployed it successfully on the Local Test Server and on my trial account in SAP NetWeaver Cloud.

Trying out Spring with SAP NetWeaver Cloud was a really easy win for me!

Friday, July 6, 2012

Eclipse UI Tips now come on time

The first version of the Eclipse UI Tips for Android reached the astonishing adoption of 18 installations. 13 of which are still active. I am happy that there are people who find this app interesting and useful. Special thanks go to Lothar who submitted the only review in Google Play. I really appreciate it! And I really do care for the feedback that reaches me. 

A few days ago I published an update of the application. As requested, the time for the tip of the day is now configurable. It is not fixed to 8:30 am anymore and you can set it to whatever time you like.

Another improvement is that the welcome screen now includes a link to the User Interface Guidelines wiki page. This is a short term response to the request that it should be possible to browse all of the guidelines without waiting for the tip of the day to come. I will work on a more integrated solution later.

The new version includes also some minor improvements in the layout and a couple of bug fixes.

That's for now, folks! If you want to share any feedback, you are warmly welcome to write a review in Google Play or submit an issue in github.