tag:blogger.com,1999:blog-26211582707800516262024-02-08T06:06:00.908+02:00Kaloyan RaevYou have an idea. I have an idea. We swap. Now we each have two ideas.Kaloyan Raevhttp://www.blogger.com/profile/01871652990952962890noreply@blogger.comBlogger31125tag:blogger.com,1999:blog-2621158270780051626.post-35758509971774963002016-04-11T14:30:00.000+03:002016-04-13T10:50:03.857+03:00Why Does 'Building Workspace' Block Launching Programs?How often have you imported a large project in Eclipse and then immediately tried to launch it? But instead of going straight to the running program, you are stuck with the "User Operation is Waiting" dialog, because Eclipse is still building the workspace...<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqzJLuhyphenhyphenAgTRTxY0zIqN7JWyFE5FcywFrpZNSXeNzdRGzaktjRQhZUJs6r7MVIO1G0ic3Nwzvlaqj49yiky9cBILgnnMVxwTeGlsvxXnBB8hFGbF7S0Iexxfx6MJ9D2_lhE7zuTzu0sJY/s1600/user-operation-is-waiting.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="181" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqzJLuhyphenhyphenAgTRTxY0zIqN7JWyFE5FcywFrpZNSXeNzdRGzaktjRQhZUJs6r7MVIO1G0ic3Nwzvlaqj49yiky9cBILgnnMVxwTeGlsvxXnBB8hFGbF7S0Iexxfx6MJ9D2_lhE7zuTzu0sJY/s320/user-operation-is-waiting.png" width="320" /></a></div>
<br />
If you are a Java or C/C++ developer, this may seem absolutely natural. Of course, the code needs to be compiled before running it. But if your project is implemented in JavaScript or PHP, or in any of the myriad of interpreted languages then it is completely valid to ask yourself: "What the heck is Eclipse building?"<br />
<br />
<h3>
Why does this happen?</h3>
<br />
The term "building" is an abstraction in Eclipse denoting the process of transforming the available resources in the workspace into some result. Any plugin can contribute builders for processing the workspace's resources. Some of the builders are truly compilers that transform the source code into a binary form. But most of the builders in Eclipse are actually validators that just check the source code for problems and add error and warning markers.<br />
<br />
Eclipse started as a Java IDE. The primary reason for introducing the builders in the Eclipse Platform was to compile the Java source code into bytecode that can be executed by the JVM. It was important to ensure that the building process has finished before launching the Java program. Otherwise the launched program may be broken because some classes are still being compiled. Therefore, the launching infrastructure was implemented to block if any builders are still running and to wait for their execution to finish.<br />
<br />
While the above makes sense for Java, it does not for many other programming languages that Eclipse supports today. The builders that run for a PHP project, for example, are just to validate the code and are not a prerequisite for its successful execution.<br />
<br />
So...<br />
<br />
<h3>
What is the solution?</h3>
<div>
<br /></div>
<div>
Fortunately, the behavior of the program launching infrastructure can be configured. There is a preference that determines if the program launch should wait for the build to finish. </div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLGnPSvSOUpxfaMeK0gpK7JZzOVkqG-OOScda8hnJHfZBulVsrfPgH0R-GVhUThcebj6ij7rBYldf8TXIfY7czi536JaDcHUJ441v-hSE4oIqpbGH2Lqa5gCnRHXp9ipwUqmcKGbuSifY/s1600/wait-for-build-preference.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="136" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLGnPSvSOUpxfaMeK0gpK7JZzOVkqG-OOScda8hnJHfZBulVsrfPgH0R-GVhUThcebj6ij7rBYldf8TXIfY7czi536JaDcHUJ441v-hSE4oIqpbGH2Lqa5gCnRHXp9ipwUqmcKGbuSifY/s400/wait-for-build-preference.png" width="400" /></a></div>
<div>
<br /></div>
<div>
The preference is on the "Run/Debug > Launching" preference page. Look for the group of radio buttons with title "Wait for ongoing build to complete before launching". Usually the default value "Always" is selected, which follows the behavior described so far. Selecting "Never" will switch the waiting for the build off, while "Prompt" will display a dialog asking whether to wait for the build or not. The latter option is useful if your workspace contains programs written in both compiled and interpreted languages.</div>
Kaloyan Raevhttp://www.blogger.com/profile/01871652990952962890noreply@blogger.com2tag:blogger.com,1999:blog-2621158270780051626.post-26647887093320575282016-03-22T16:00:00.000+02:002016-03-23T09:02:23.047+02:00Why Does Canceling Operations in Eclipse Never Work?Well... saying "never works" is too extreme, so let's say "does not work often enough". Often enough, so the majority of users do not trust the red square button for canceling background operations.<br />
<br />
Let's have a look at some quotes from a famous <a href="http://www.ihateeclipse.com/">web site</a> for collecting (mostly negative) feedback about Eclipse.<br />
<blockquote class="tr_bq">
<i>When I cancel a task, it hangs and ends up taking longer than it would have taken to let it finish.</i></blockquote>
<blockquote class="tr_bq">
<i>Cancelling never works. Trying to build a project. It get's stuck. I cancel it. It cancels for 10 minutes. I have to force quit it again.</i></blockquote>
<blockquote class="tr_bq">
<i>Why in gods name do you have a cancel task option if it's never going to cancel the @#$% task?? Is this some kind of sick joke?</i></blockquote>
There is also a <a href="http://my-brain-on-eclipse.blogspot.bg/2006/11/cancel-means-cancel.html">blog post</a> written back in 2006, which gives a more detailed picture of a user experience with the cancel button.<br />
<br />
<h3>
Why does Eclipse provide a cancel button that does not work?</h3>
<br />
Let's have a look how the Cancel Operation button is implemented. When you click on the red square button, the Eclipse Platform raises a "cancellation" flag for the running background operation. Then it is up to the latter to check if that flag is raised and terminate itself.<br />
<br />
In other words, the Eclipse Platform has no power to terminate background operations, but only to send them a request for cancellation. If the operation is implemented in a proper way, i.e. frequently checks for the cancellation flag, it will promptly terminate itself. Alternatively, a poor implementation may totally miss checking the cancellation flag and finish as if the user has not pushed the cancel button.<br />
<br />
In an even worse scenario, the background operation may check for the cancellation flag, but instead of terminating itself immediately, it may try reverting everything it has done so far. While this may be a valid approach for some use cases where keeping data consistency is critical, most of the time it is just an over-engineering. This way an operation that was canceled in the middle of the execution, may take longer than if it has not been canceled at all. This leads to even more frustrating user experience.<br />
<br />
<h3>
What is the solution?</h3>
<div>
<br /></div>
<div>
Unfortunately, there is no direct solution for you as a user to apply to your IDE. The issue is caused by a weak code implementation in the plugins providing the background operations and it must be fixed there. There is no magic fix that can be implemented in the Eclipse Platform alone.<br />
<br />
However, there is still something you can do:</div>
<div>
<ol>
<li><a href="https://wiki.eclipse.org/FAQ_How_do_I_report_a_bug_in_Eclipse%3F">Report the issue</a> - yes, please open a bug if you stumble upon an operation that does not terminate promptly when you hit the cancel button. This is a good small step to make a difference.</li>
<li>Keep your Eclipse up-to-date with the latest version of all plugins with the hope that this kind of issues will be resolved over time.</li>
</ol>
<div>
If you are an Eclipse plugin developer then you should design carefully your background operation, so users are able to cancel them. It is natural to focus on the happy path when implementing a new operation. But it won't be always the case where users will trigger your operation and will patiently wait for it to finish. Quite often users will realize they've trigger your operation accidentally, or it is taking longer than expected and they don't want to wait for it any longer, or they just want to do something else like saving a file or shutting down the IDE, but your operations is blocking them, or... tons of other reason that may make users want to cancel your operation.<br />
<br />
And if users cannot cancel your operation within a few seconds, they will open the Task Manager and will kill the IDE. Which is a lose-lose situation - neither your operation will be completed, nor the user will be happy. So, give the user the chance to win :-)</div>
</div>
<div>
<br /></div>
<h3>
Code tips on improving the implementation of background operations</h3>
<div>
<br /></div>
<div>
The most fundamental thing to make your background operations responsive for cancellation is to check if the cancellation flag has been raised. You should have already been provided with an instance of <span style="font-family: "courier new" , "courier" , "mono"; font-size: 13.3333px;">IProgressMonitor</span> in your operation's implementation, whether it is a <span style="font-family: "courier new" , "courier" , "mono"; font-size: 13.3333px;">Job</span>, a <span style="font-family: "courier new" , "courier" , "mono"; font-size: 13.3333px;">WorkspaceJob</span>, a <span style="font-family: "courier new" , "courier" , "mono"; font-size: 13.3333px;">WorkspaceModifyOperation</span>, etc. Checking for the cancellation flag is simply calling the the monitor's <span style="font-family: "courier new" , "courier" , "mono"; font-size: 13.3333px;">isCanceled()</span> method.</div>
<div>
<br />
The below code examples check for the cancellation flag and interrupts the operation's workflow by returning the <span style="font-family: "courier new" , "courier" , "mono"; font-size: 13.3333px;">CANCEL_STATUS</span>.</div>
<div>
<pre style="font-family: 'Courier New', Courier, mono; font-size: 13.3333px;">if (monitor.isCanceled()) return Status.CANCEL_STATUS;</pre>
</div>
<div>
Checking for the cancellation flag should be done as often as possible. This check is a cheap operation and there should not be any concerns about the performance. In the end, if you have a long running operation, it is more important for users to cancel it promptly than having it a few milliseconds faster.<br />
<br />
Very often long running operations are processing lots of items in a loop. As the list of items may grow unpredictably long, there should be a check for cancellation <u>inside</u> the loop on every iteration. This ensures that the operation can be canceled promptly regardless of the number of items that are processed. See the example below:<br />
<pre style="font-family: 'Courier New', Courier, mono; font-size: 13.3333px;">while (hasMoreWorkToDo()) {
// do some work
// ...
if (monitor.isCanceled()) return Status.CANCEL_STATUS;
}
return Status.OK_STATUS;</pre>
Another common issue with unresponsive background operations is when they execute an external process or a long I/O operation and block on it waiting to finish. Waiting on external processes or I/O operations should no be done indefinitely. You should take advantage of any API that allows waiting for a limited amount of time. This way you can wait just for a short time (e.g. one second), then check if your operation is canceled, and if not, wait again for a short time. Below is an example how to wait for an external process to finish and check if your operation is canceled at the same time.<br />
<pre style="font-family: 'Courier New', Courier, mono; font-size: 13.3333px;">while (!process.waitFor(1, TimeUnit.SECONDS)) {
// process is still running
// check if the operation has been canceled
if (monitor.isCanceled()) {
process.destroy();
return Status.CANCEL_STATUS;
}
}</pre>
Finally, some further readings I highly recommend to every Eclipse plugin developer:<br />
<ul>
<li>A comprehensive tutorial on <a href="http://www.vogella.com/tutorials/EclipseJobs/article.html">Eclipse Jobs and Background Processing</a>. <a href="http://www.vogella.com/tutorials/EclipseJobs/article.html#eclipsejobs_cancel">Chapter 6</a> is dedicated on handling job cancellation and reveals a more efficient API coming with the new Eclipse Neon release.</li>
<li>An old but gold article on concurrency in Eclipse - <a href="https://eclipse.org/articles/Article-Concurrency/jobs-api.html">On the Job: The Eclipse Jobs API</a>.</li>
</ul>
</div>
Kaloyan Raevhttp://www.blogger.com/profile/01871652990952962890noreply@blogger.com15tag:blogger.com,1999:blog-2621158270780051626.post-69199272103609042832016-03-15T16:00:00.000+02:002016-03-15T16:01:52.196+02:00Why Does Plugin Installation in Eclipse Take so Long?How often have you tried installing a new simple plugin in your Eclipse and the installation process gets stuck on "Calculating requirements and dependencies" for ages?<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKLvrnxb71fvbRKWZRfILsh9XPM5spqe2oiHYa8rupI7TLbMs8hrqij-X-XukgVLsX2KlGMqq8Q8pe_fK_O6kJlwVYkGe03al2xOCA_ZxcaKva4IeE0GWDUKQSo3ZE2_jFJP6wmqWxVyw/s1600/calculating-dependencies.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="120" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKLvrnxb71fvbRKWZRfILsh9XPM5spqe2oiHYa8rupI7TLbMs8hrqij-X-XukgVLsX2KlGMqq8Q8pe_fK_O6kJlwVYkGe03al2xOCA_ZxcaKva4IeE0GWDUKQSo3ZE2_jFJP6wmqWxVyw/s400/calculating-dependencies.png" width="400" /></a></div>
<br />
<h3>
Why does this happen?</h3>
<br />
Eclipse is an extensible software platform comprised of plugins and each plugin depends on other plugins. The successful installation of a new plugin requires its dependencies to be successfully resolved. The ideal situation is when all required plugins are already installed in your Eclipse, but this is often not the case. Therefore, the dependencies must be fetched from an update site and installed together with the plugin you actually want to install.<br />
<br />
In order to resolve the above complex task, the Eclipse install manager (the one you invoke using the Install New Software wizard from the Help main menu) scans all update sites registered in the Eclipse workspace. The scanning process involves reading the update site's metadata and then trying to calculate the best match for the required dependencies.<br />
<br />
The problem with getting stuck may happen for a number of reasons: the number of update sites registered in the workspace has grown significantly or there is a networking problem with the user connection, one of the update site's server, a proxy or a VPN connection.<br />
<br />
<h3>
What is the relief?</h3>
<br />
Scanning all update sites is the default behavior of the Eclipse install manager. Fortunately, it can be changed.<br />
<br />
First, if you are still waiting on "Calculating requirements and dependencies" then hit the Stop button on the right side of the progress bar. This will immediately stop the installation process (yes - this is one of the rare cases where this button is implemented properly in Eclipse) and it will make the wizard's user interface responsive again.<br />
<br />
Now, simply deselect the "Contact all update sites during install to find required software" checkbox. This way the install manager will look for dependencies only on the update site providing the plugin being installed. None of the other update sites, registered in the workspace, will be contacted. This will significantly improve the time spent on the "Calculating requirements and dependencies" phase and it will reduce the size of the metadata that needs to be downloaded.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-vrfKhU7pfb3X8V5pM6eNHiJz7_JEwsgdXYf_oAIRQkHXV8S84e7DwOPiIJ1frDwCz881TfSIFC7eUBEokNB-XBiD7FAZ9hPqNyIN6rMBzHH1vmMFsJ5AebWEq2B4ssTGMEcZ5uUakQ4/s1600/contact-all-update-sites.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="119" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-vrfKhU7pfb3X8V5pM6eNHiJz7_JEwsgdXYf_oAIRQkHXV8S84e7DwOPiIJ1frDwCz881TfSIFC7eUBEokNB-XBiD7FAZ9hPqNyIN6rMBzHH1vmMFsJ5AebWEq2B4ssTGMEcZ5uUakQ4/s400/contact-all-update-sites.png" width="400" /></a></div>
<br />
There is one drawback of deselecting the checkbox. If the update site providing the plugin being installed is not self-contained, i.e. does not provide all the required dependencies, then the installation will fail with an error message for unresolved dependencies. However, this will be a fast failure and you can go back and select the "Contact all update sites..." checkbox again. In such case, I also recommend to go and review all registered updates sites in the Install/Update > Available Software Sites preference page and disable those that do not seem to be related to the plugin being installed.<br />
<br />
My personal experience is that the majority of Eclipse plugins install without any need for scanning additional update sites for the required dependencies. My recommendation is to deselect the "Contact all update sites..." checkbox and select it only if the installation process fails without it.<br />
<br />
<h3>
Is there such an option in the Eclipse Marketplace Client?</h3>
<br />
It's nice that the Install New Software wizard provides a checkbox that can be deselected, but why can't you find a similar checkbox in the Eclipse Marketplace Client?<br />
<br />
Well... because you don't need one. The Eclipse Marketplace Client is a smarter and user-friendlier version of the Install New Software wizard. It implements a fallback strategy - first, it tries to resolve the dependencies by only looking at the update site providing the plugin, and only if that fails it will automatically try contacting all update sites.<br />
<br />
Effectively, this is an automated implementation of the recommended manual workflow given above for the Install New Software wizard. In case you are curious about the details regarding the implementation of the fallback strategy, you may have a look at the discussion in <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=316362">bug 316362</a>.Kaloyan Raevhttp://www.blogger.com/profile/01871652990952962890noreply@blogger.com2tag:blogger.com,1999:blog-2621158270780051626.post-10534608468456003952016-02-19T10:53:00.000+02:002016-02-19T10:53:00.854+02:00Enable the CSS3 Profile in EclipseEclipse has a rich and powerful CSS editor. It provides the expected features like syntax highlighting, content assist and outline. If you have already tried it and you are already on CSS3, you may have noticed that the content assist misses the new CSS3 properties. It looks like the Eclipse CSS editor has somehow stuck on CSS2. But it is not really. The support for CSS3 is there, but ... guess what ... not enabled by default.<br />
<br />
Here is how you can enabled the CSS3 features:<br />
<ol>
<li>Right-click on a CSS file and call the Properties dialog.</li>
<li>Open the Web Content Settings page.</li>
<li>There you will find a field CSS Profile set to "none".</li>
<li>Change the CSS Profile value to "CSS3: Cascading Style Sheets, level 3".</li>
<li>Click the OK button.</li>
</ol>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiChXvd4l4gl885X9H7CpZnjwyzBG6fnhRfcziupDJVGUCRqvMb3zPe7llwbx8XnqvZXMuL6DN6NHA9Cg6rGPCj1nif5ju0tM229sJVuo3JXAaA1ZBoY6dGtkxM-65lxZwqZOWN6ODMPGU/s1600/css-profile.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="196" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiChXvd4l4gl885X9H7CpZnjwyzBG6fnhRfcziupDJVGUCRqvMb3zPe7llwbx8XnqvZXMuL6DN6NHA9Cg6rGPCj1nif5ju0tM229sJVuo3JXAaA1ZBoY6dGtkxM-65lxZwqZOWN6ODMPGU/s320/css-profile.png" width="320" /></a></div>
<br />
Now, try again the content assist in the CSS editor. It will suggest also the CSS3 properties like "border-radius".</div>
<div>
<br /></div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiylPJvDtnsddBzQgg-GyqpN-eFaQ9z_MSNqnzZ6Bf88LctbQ-8ORMd3pbvOBocCB-dSgaFJ1kUhVEy34ttPgls6p22xl6TcFlY8F06hoilBOsj13b7WCQ3zbcDOApsSV0YEA9JFA4qW5A/s1600/css-content-assist.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="182" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiylPJvDtnsddBzQgg-GyqpN-eFaQ9z_MSNqnzZ6Bf88LctbQ-8ORMd3pbvOBocCB-dSgaFJ1kUhVEy34ttPgls6p22xl6TcFlY8F06hoilBOsj13b7WCQ3zbcDOApsSV0YEA9JFA4qW5A/s320/css-content-assist.png" width="320" /></a></div>
<br />
This is how to change the CSS profile per file. It is also possible to change it per project using the same steps on the project's Properties page. But it only works if the project is a Dynamic Web Project or a Static Web Project one. The Web Content Settings page is not available for other project types like PHP projects. It is also not available as a workspace-wide preference. So, for the majority of project types it is only possible to change the CSS profile per file.</div>
<div>
<br /></div>
<div>
The good news is that with Neon M6 the default CSS profile becomes CSS3. See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=438283">bug 438283</a>. So, the above steps won't be necessary in the near future and users will see the CSS3 features off the shelf.</div>
Kaloyan Raevhttp://www.blogger.com/profile/01871652990952962890noreply@blogger.com0tag:blogger.com,1999:blog-2621158270780051626.post-49077863561174692842015-04-22T09:16:00.000+03:002016-12-19T22:25:26.602+02:00Making the Text Editor to be the Default One for All Unknown Files in Eclipse<i><b>NOTE.</b> <span style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; text-align: justify;">The functionality of the Default Text Editor plugin has been implemented in the Eclipse Platform with the Neon release. Check the </span><a href="https://www.eclipse.org/eclipse/news/4.6/platform.php#text-editor-selection-strategy" rel="nofollow" style="background-color: #fefdfa; color: #7d181e; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; text-align: justify; text-decoration: none;">release notes</a><span style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; text-align: justify;"> for details.</span></i><br />
<br />
Eclipse users usually work with many different file types. Some of the file types may be opened by default in an external editor instead of in the Eclipse workbench. This happens if Eclipse has no editor available to handle that particular file type, but there is one installed in the operating system. In such case Eclipse assumes that it is better for the user to have the file opened in the external system editor.<br />
<br />
Lots of users are quite annoyed by this behavior, especially when it comes to text-based files. They would prefer to have the file opened in the plain text editor of Eclipse instead of switching the context to the external program. Unfortunately, there is no easy way to change this in the preference settings. It's possible to associate a specific file extension with the plain text editor, but this must be done separately for every file extensions. There is no way to say "all text files of unknown type should open in the text editor".<br />
<br />
Here comes the <a href="https://github.com/eclipselabs/default-text-editor">Default Text Editor</a> plugin. It takes advantage of the <a href="http://help.eclipse.org/luna/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fextension-points%2Forg_eclipse_ui_ide_editorAssociationOverride.html">Editor Association Override</a> extension point introduced in Eclipse 3.8. When the plugin is installed it will change the default behavior of Eclipse and will opened all text files of unknown type in the plain text editor. Binary files like images may still be opened in an external system editor. As simple as that.<br />
<br />
The plugin is available on the <a href="https://marketplace.eclipse.org/content/default-text-editor">Eclipse Marketplace</a>. It can also be installed through an <a href="https://dl.bintray.com/kaloyan-raev/default-text-editor/">update site</a>. More info is available on the <a href="https://github.com/eclipselabs/default-text-editor">GitHub project</a>.Kaloyan Raevhttp://www.blogger.com/profile/01871652990952962890noreply@blogger.com2tag:blogger.com,1999:blog-2621158270780051626.post-74300995556900361212015-04-01T16:08:00.000+03:002015-04-21T21:54:24.806+03:00$150 Bug Bounty for Fixing a Dark Theme Issue<span style="background-color: white; color: #8c8c8c; font-family: Arial, sans-serif; font-size: 13.3333330154419px; line-height: 20px; text-align: justify;"><a href="http://www.zend.com/en/products/studio">Zend Studio</a> is an IDE based on the Eclipse Platform. The dark theme is an important feature and is very popular among PHP developers. The most annoying issue with the dark theme, we have at the moment, is that the expand/collapse toggle in trees is almost invisible on Windows, because it seems to be unaffected by the dark theme coloring. See Eclipse <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=434201">bug </a></span><span style="color: #8c8c8c; font-family: Arial, sans-serif;"><span style="font-size: 13.3333330154419px; line-height: 20px;"><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=434201">434201</a> for details.</span></span><br />
<span style="color: #8c8c8c; font-family: Arial, sans-serif;"><span style="font-size: 13.3333330154419px; line-height: 20px;"><br /></span></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixcPjzJ6cRIQEs6XslWaO678qpksfnpB4QNNHlj4f8g2kKYj93UoBkueo6kRNia-W7b_Ihyphenhyphenulae69QyilHJqPeGhTI11CWg3a84FgjIjA555gpV7qLi8evUT810Ciu2WBFzHJwSkZdye8/s1600/dark-theme-issue.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixcPjzJ6cRIQEs6XslWaO678qpksfnpB4QNNHlj4f8g2kKYj93UoBkueo6kRNia-W7b_Ihyphenhyphenulae69QyilHJqPeGhTI11CWg3a84FgjIjA555gpV7qLi8evUT810Ciu2WBFzHJwSkZdye8/s1600/dark-theme-issue.png" height="400" width="301" /></a></div>
<span style="background-color: white; color: #8c8c8c; font-family: Arial, sans-serif; font-size: 13.3333330154419px; line-height: 20px; text-align: justify;"><br /></span>
<span style="background-color: white; color: #8c8c8c; font-family: Arial, sans-serif; font-size: 13.3333330154419px; line-height: 20px; text-align: justify;">We decided to put some money on the table with the hope that someone will step in and fix this bug. This will benefit not only Zend Studio users, but all Windows users in the Eclipse ecosystem who want to use the dark theme.</span><br />
<span style="background-color: white; color: #8c8c8c; font-family: Arial, sans-serif; font-size: 13.3333330154419px; line-height: 20px; text-align: justify;"><br /></span>
<span style="background-color: white; color: #8c8c8c; font-family: Arial, sans-serif; font-size: 13.3333330154419px; line-height: 20px; text-align: justify;">We created a $150 bug bounty on the <a href="https://freedomsponsors.org/issue/666/dark-theme-tree-must-respect-the-foreground-color-for-items-arrows">FreedomSponsors</a> crowd-funding platform. Follow <a href="https://freedomsponsors.org/issue/666/dark-theme-tree-must-respect-the-foreground-color-for-items-arrows">this link</a> to open the sponsored issue. Since this is a crowd-funding platform, anyone else who is ready to give some money for resolving this issue is welcome to do it, so the offer becomes more attractive.</span><br />
<span style="background-color: white; color: #8c8c8c; font-family: Arial, sans-serif; font-size: 13.3333330154419px; line-height: 20px; text-align: justify;"><br /></span>
<span style="background-color: white; color: #8c8c8c; font-family: Arial, sans-serif; font-size: 13.3333330154419px; line-height: 20px; text-align: justify;">UPDATE. The bug has been fixed within days and it will be delivered with the Mars M7 milestone. Thanks to </span><span style="color: #8c8c8c; font-family: Arial, sans-serif;"><span style="font-size: 13.3333330154419px; line-height: 20px;"><a href="https://twitter.com/fabiofz">Fabio Zadrozny</a> for his great work. Kudos to <a href="https://twitter.com/vogella">Lars Vogel</a> for adding $100 more to the bounty.</span></span>Kaloyan Raevhttp://www.blogger.com/profile/01871652990952962890noreply@blogger.com2tag:blogger.com,1999:blog-2621158270780051626.post-21553781164065129022014-08-12T00:09:00.000+03:002014-08-12T00:09:49.506+03:00Highlighting Breakpoints Like in Zend Studio 5.5Looking at the feedback we receive, it seems that lots of our long-time users feel nostalgic to the pre-Eclipse era of Zend Studio. Here is one hint how you can bring the look and feel of the latest Zend Studio a little bit closer to the one experienced with the legendary Zend Studio 5.5.<br />
<br />
In Zend Studio 5.5 when adding a breakpoint the complete line was highlighted in pink color. In later releases of Zend Studio this was replaced by the usual way of the Eclipse Platform - a blue bullet appears in the marker area on the left side of the editor's line.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1SgW_JZYpSrb-wI8lfGhWJsXJJJ-7LxUjJBkFzXC8hMqHvJAkQvLYkTAUl4a0jIN5xG9HG_XfHdWi1YD7zt8Nx98Svypb8tQf8w8G-B1WWz2r5Wm7rRN_EK-ckHbGwKBobliYQ-16vlc/s1600/breakpoint_compare.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1SgW_JZYpSrb-wI8lfGhWJsXJJJ-7LxUjJBkFzXC8hMqHvJAkQvLYkTAUl4a0jIN5xG9HG_XfHdWi1YD7zt8Nx98Svypb8tQf8w8G-B1WWz2r5Wm7rRN_EK-ckHbGwKBobliYQ-16vlc/s1600/breakpoint_compare.png" height="153" width="400" /></a></div>
<br />
Luckily, this can be configured in the same way it was in Zend Studio 5.5, following these steps:<br />
<br />
<ol>
<li>Call Window > Preferences from the main menu.</li>
<li>Navigate to the General > Editors > Text Editors > Annotations preference page.</li>
<li>Select "Breakpoints" in the list of annotation types.</li>
<li>Select the "Text as" checkbox.</li>
<li>Select "Highlighted" from the drop-down list.</li>
<li>Change the color to #FFC0CB.</li>
<li>(Optional) If you want to remove the blue bullet then deselect the "Vertical ruler" checkbox.</li>
<li>Click the OK button.</li>
</ol>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirUiq_s3JYJdxIfWlQOO7SXewJyCcRKqxcScEayHJdzoKU1OtN-Pg27SVWTeOzvyvERBvg4cLUIWkfYDvN7dF00XuxQRBI_xA3UgVjMLOs_f3n8vGU1L-t9ggi1AbeXj6JaJ7HEL6Clks/s1600/breakpoint_preferences.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirUiq_s3JYJdxIfWlQOO7SXewJyCcRKqxcScEayHJdzoKU1OtN-Pg27SVWTeOzvyvERBvg4cLUIWkfYDvN7dF00XuxQRBI_xA3UgVjMLOs_f3n8vGU1L-t9ggi1AbeXj6JaJ7HEL6Clks/s1600/breakpoint_preferences.png" height="165" width="400" /></a></div>
<div>
<br /></div>
<div>
Note. You need to upgrade to the latest <a href="http://forums.zend.com/viewtopic.php?f=59&t=119008#p232898">Zend Studio 11.0.1 Early Access</a> build or wait for the official 11.0.1 release (due in a week) to take advantage of this hint. There was a <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=441365">bug</a> in the PHP editor that prevented breakpoint highlighting in previous releases.</div>
Kaloyan Raevhttp://www.blogger.com/profile/01871652990952962890noreply@blogger.com0tag:blogger.com,1999:blog-2621158270780051626.post-32368599336169170382014-07-08T00:34:00.000+03:002014-07-08T00:36:24.308+03:00Coding Like a Pro<div class="separator" style="clear: both; text-align: left;">
When switching to an Eclipse-based IDE like <a href="http://www.zend.com/en/products/studio">Zend Studio</a>, some developers become annoyed by the help they are provided in the code editors. Auto closing of braces, parentheses, tags and the like is helpful for beginners and advanced developers who got used to this feature. But for those migrating from tools where they used to have the full control in the editor, this is nothing but a hurdle.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Fortunately, you can switch this off. As you may guess it is hidden in the ocean of preferences. The easiest way to find it is to enter "typing" in the filter field of the Preferences dialog.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_fKAUWgVFyiifNBIATjZj7Qz9d_7HUbAaWBLE_bboW2xbVpYfthyeDdo0IwZxiyzkd3ndKJbGlnIW6O7AjDvoTOeazMlzoeP9yMdWVOAwj0GGnCY7Oqp6DEtgNTZ8pIjnNWNEbJsaFt8/s1600/typing_preferences.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_fKAUWgVFyiifNBIATjZj7Qz9d_7HUbAaWBLE_bboW2xbVpYfthyeDdo0IwZxiyzkd3ndKJbGlnIW6O7AjDvoTOeazMlzoeP9yMdWVOAwj0GGnCY7Oqp6DEtgNTZ8pIjnNWNEbJsaFt8/s1600/typing_preferences.png" height="376" width="400" /></a></div>
<br />
As you can see on the above image this filtering gives you the necessary pages where you need to go and deselect the desired checkboxes for the PHP editor, the JavaScript editor and so on in order to customize your typing experience in the IDE.Kaloyan Raevhttp://www.blogger.com/profile/01871652990952962890noreply@blogger.com0tag:blogger.com,1999:blog-2621158270780051626.post-17169422860557033062013-12-21T13:27:00.000+02:002014-07-08T00:36:01.507+03:00Eclipse for PHP Developers is Back<a href="http://www.eclipse.org/downloads/images/php.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://www.eclipse.org/downloads/images/php.jpg" /></a>After a few years pause the Eclipse for PHP Developers package is back with the Luna M4 milestone of the Eclipse Simultaneous Release.<br />
<br />
The package assembles the PHP Development Tools (<a href="http://eclipse.org/pdt">PDT</a>), the JavaScript Development Tools (<a href="http://eclipse.org/webtools/jsdt">JSDT</a>), HTML, CSS and XML editors, and productivity tools like <a href="http://eclipse.org/egit">EGit</a> and <a href="http://eclipse.org/mylyn">Mylyn</a>. It is one of the easiest way to start using PDT for developing PHP applications.<br />
<br />
The package can be downloaded from the Developer Builds section on the Eclipse Downloads page: <a href="http://eclipse.org/downloads/index-developer.php">http://eclipse.org/downloads/index-developer.php</a>Kaloyan Raevhttp://www.blogger.com/profile/01871652990952962890noreply@blogger.com3tag:blogger.com,1999:blog-2621158270780051626.post-71316598563679317462013-08-09T11:06:00.000+03:002013-08-09T11:06:14.365+03:00Comparing feature.xml Files With XMLUnitRecently, 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.<br />
<br />
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 <a href="http://xmlunit.sourceforge.net/">XMLUnit</a>, which saved me lots of efforts.<br />
<br />
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. <br />
<br />
Comparing two XML files is as easy as creating a new <a href="http://xmlunit.sourceforge.net/api/org/custommonkey/xmlunit/Diff.html">Diff</a> object and calling any of the two test methods: <a href="http://xmlunit.sourceforge.net/api/org/custommonkey/xmlunit/Diff.html#identical()">identical()</a> and <a href="http://xmlunit.sourceforge.net/api/org/custommonkey/xmlunit/Diff.html#similar()">similar()</a>. In my case, similar() worked better. <br />
<br />
<script src="https://gist.github.com/kaloyan-raev/6191789.js"></script>
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 <a href="http://xmlunit.sourceforge.net/api/org/custommonkey/xmlunit/DifferenceListener.html">DifferenceListener</a> with own implementation. <br />
<br />
<script src="https://gist.github.com/kaloyan-raev/6191847.js"></script>
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". <br />
<br />
<script src="https://gist.github.com/kaloyan-raev/6191859.js"></script>
And this is everything you need to get the job done.Kaloyan Raevhttp://www.blogger.com/profile/01871652990952962890noreply@blogger.com2tag:blogger.com,1999:blog-2621158270780051626.post-50985997241869427292013-07-15T11:20:00.000+03:002013-07-15T11:20:56.180+03:00Moving ForwardAfter 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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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. Kaloyan Raevhttp://www.blogger.com/profile/01871652990952962890noreply@blogger.com5tag:blogger.com,1999:blog-2621158270780051626.post-12354956834218995442012-10-25T10:37:00.000+03:002012-10-25T10:37:46.663+03:00Committer Access to Eclipse.org Git Repositories behind a ProxyThere 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.<br />
<br />
These committers have three alternatives for committer access to <i>git.eclipse.org</i>:<br />
<ol>
<li>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. </li>
<li>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 Eclipse.org Git repositories and the webmasters have their security concerns for doing this. </li>
<li>Try the good old <i>proxy.eclipse.org</i> as we know it from the <a href="http://wiki.eclipse.org/CVS_Howto#CVS_and_firewalls">CVS Howto</a> 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 <i>proxy.eclipse.org:443</i> to <i>git.eclipse.org:22</i>. 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:</li>
</ol>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDWi68BGu_69FPOu-GVUYgxd7nFeI2KcQcmjUhH77e_GeE98PIYOsCAmh0_CnivnPTwmu7lZD_huu0Zpr8ePsn6N2XJTIIKiSHcpJP7m0a_qqfBgvpRryF7PXCQlMmLTyelBPaGiyNKhI/s1600/clone_git_repo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDWi68BGu_69FPOu-GVUYgxd7nFeI2KcQcmjUhH77e_GeE98PIYOsCAmh0_CnivnPTwmu7lZD_huu0Zpr8ePsn6N2XJTIIKiSHcpJP7m0a_qqfBgvpRryF7PXCQlMmLTyelBPaGiyNKhI/s1600/clone_git_repo.png" height="358" width="400" /></a></div>
<br />
Happy gitting! <br />
<br />
<br />Kaloyan Raevhttp://www.blogger.com/profile/01871652990952962890noreply@blogger.com1tag:blogger.com,1999:blog-2621158270780051626.post-70764158940542166252012-08-27T17:39:00.000+03:002012-08-27T17:39:45.611+03:00Changing the Context Root of Web Applications<i style="background-color: #f1c232;">This article was originally posted in the <a href="http://scn.sap.com/community/developer-center/cloud-platform/blog/2012/08/14/changing-the-context-root-of-web-applications">SAP Community Network</a>. I post it here with few changes that generalize it for all Eclipse WTP users. </i><br />
<i style="background-color: #f1c232;"><br /></i>
Soon after the first steps in developing web applications with <a href="http://eclipse.org/webtools/">Eclipse WTP</a>, 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". <br />
<div style="height: 8pt; min-height: 8pt; padding: 0px;">
<br /></div>
Changing
the context root is a piece of cake. In this post we will see how you
can do this in Eclipse WTP.<br />
<h2>
Setting the context root when creating a new web project</h2>
As described in the <a href="http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.wst.webtools.doc.user%2Ftopics%2Ftwcreprj.html">Web Tools Platform User Guide</a>, 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.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLmFaKFxPUqD2t67VaW98Wbpi2ef0kD9aa6bHr_YIE7qpovyi_bgZC6VoYJEUAfK96nFev3btmrKMNLopHDrQHJrMUSNKpEcw9v8pCr7k1KeE2LENpGqg0SOJGJ_wox61YDZqKiLEvDjEV/s1600/web_facet_page.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="245" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLmFaKFxPUqD2t67VaW98Wbpi2ef0kD9aa6bHr_YIE7qpovyi_bgZC6VoYJEUAfK96nFev3btmrKMNLopHDrQHJrMUSNKpEcw9v8pCr7k1KeE2LENpGqg0SOJGJ_wox61YDZqKiLEvDjEV/s400/web_facet_page.png" width="400" /></a></div>
<br />
<h2>
Changing the context root of an existing web project</h2>
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.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJ2FQx-npc6GdDR1KUtiJj1jcDdZhJfNIFHy_JPsCTB_566jQfPFeCyO17UZs-gyC6t5KllBrj2rVKhkpOj4qOzb55kSQwy8AHAYe2dGPTHkSDNvqA2cgtOJHx6hi3iE5fAQl8WFUYU69c/s1600/web_project_settings.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJ2FQx-npc6GdDR1KUtiJj1jcDdZhJfNIFHy_JPsCTB_566jQfPFeCyO17UZs-gyC6t5KllBrj2rVKhkpOj4qOzb55kSQwy8AHAYe2dGPTHkSDNvqA2cgtOJHx6hi3iE5fAQl8WFUYU69c/s400/web_project_settings.png" width="400" /></a></div>
<br />
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. Kaloyan Raevhttp://www.blogger.com/profile/05833809158654827574noreply@blogger.com0tag:blogger.com,1999:blog-2621158270780051626.post-59761600014590509772012-08-15T21:59:00.000+03:002012-08-16T11:30:51.578+03:00STS 3.0 and SAP NetWeaver Cloud<i style="background-color: #f1c232;">This article was originally posted in the <span id="goog_1645931593"></span><a href="http://scn.sap.com/community/developer-center/cloud-platform/blog/2012/08/15/sts-30-and-sap-netweaver-cloud">SAP Community Network</a><span id="goog_1645931594"></span>. </i><br />
<br />
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 <a href="http://blog.springsource.org/2012/08/13/springsource-tool-suites-3-0-0-released-reorganized-open-sourced-and-at-github/">SpringSource Blog</a>.<br />
<br />
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 <a href="http://www.springsource.org/downloads/sts-ggts">download site</a>, grabbed a package and installed it. Then I followed the <a href="https://help.netweaver.ondemand.com/default.htm?setting_up_tools.html">usual steps</a> 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: <a href="https://tools.netweaver.ondemand.com/juno">https://tools.netweaver.ondemand.com/juno</a>. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhl1lSXmhNLWJrvBQ92yMmv889t8ei2ZsTxLA0oI0cFr4aWk2XA4BE-8zesdTy6e0pDl7hGHOdyie_vUCJGGmDa3SoLNLoOobMy7NLufnUNYKSfTTyReTbN1n_Kaz9oHmPFuf_SpeOTu-y5/s1600/sts_splash.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhl1lSXmhNLWJrvBQ92yMmv889t8ei2ZsTxLA0oI0cFr4aWk2XA4BE-8zesdTy6e0pDl7hGHOdyie_vUCJGGmDa3SoLNLoOobMy7NLufnUNYKSfTTyReTbN1n_Kaz9oHmPFuf_SpeOTu-y5/s400/sts_splash.png" width="400" /></a></div>
<br />
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.
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYD2PPzQQywTON0ZcF6LZu85-Jus6CNlqb-M4_YfpoDh1-9ewciEQEYUAw1GbgIyNZW4KAWb0u7H6Tm1pmzUNGwj7gsB8LO1zZt1RzypBSqrnAFByixZwkQWUVhBXYu98yr_Ph4_j_e1u/s1600/sts_example.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="322" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYD2PPzQQywTON0ZcF6LZu85-Jus6CNlqb-M4_YfpoDh1-9ewciEQEYUAw1GbgIyNZW4KAWb0u7H6Tm1pmzUNGwj7gsB8LO1zZt1RzypBSqrnAFByixZwkQWUVhBXYu98yr_Ph4_j_e1u/s400/sts_example.png" width="400" /></a></div>
<br />
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.<br />
<br />
Deploying it on the SAP NetWeaver Cloud required a <a href="https://help.netweaver.ondemand.com/default.htm?deploy_ide.html">few more clicks</a>. 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.
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKmtDOH2XCRRD3D4UWdBW4WVxXduHQCcWwxlfaV2r-71XsG6R_-pD622KNZhXngj1DK_OcWYlAsxCpNW1LNbNzysDnfQcmq1yVx7JOB75NWv0qmj-LNhxfj0s6vQv9QhUfOT0DB3VVGAxt/s1600/sts_nwcloud.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="330" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKmtDOH2XCRRD3D4UWdBW4WVxXduHQCcWwxlfaV2r-71XsG6R_-pD622KNZhXngj1DK_OcWYlAsxCpNW1LNbNzysDnfQcmq1yVx7JOB75NWv0qmj-LNhxfj0s6vQv9QhUfOT0DB3VVGAxt/s400/sts_nwcloud.png" width="400" /></a></div>
<br />
Trying out Spring with SAP NetWeaver Cloud was a really easy win for me!Kaloyan Raevhttp://www.blogger.com/profile/05833809158654827574noreply@blogger.com1tag:blogger.com,1999:blog-2621158270780051626.post-74031459605210927132012-07-06T13:39:00.000+03:002012-07-06T13:41:06.219+03:00Eclipse UI Tips now come on time<br />
The <a href="http://kaloyanraev.blogspot.com/2012/06/eclipse-ui-tips-for-android.html">first version</a> of the <a href="https://play.google.com/store/apps/details?id=name.raev.kaloyan.android.eclipseuitips">Eclipse UI Tips for Android</a> 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. <span style="background-color: white;">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. </span><br />
<br />
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.<br />
<br />
Another improvement is that the welcome screen now includes a link to the <a href="http://wiki.eclipse.org/User_Interface_Guidelines">User Interface Guidelines</a> 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.<br />
<br />
The new version <a href="https://github.com/kaloyan-raev/eclipse-ui-tips/issues?milestone=2&page=1&state=closed">includes</a> also some minor improvements in the layout and a couple of bug fixes.<br />
<br />
That's for now, folks! If you want to share any feedback, you are warmly welcome to write a review in Google Play or <a href="https://github.com/kaloyan-raev/eclipse-ui-tips/issues">submit an issue</a> in github.Kaloyan Raevhttp://www.blogger.com/profile/05833809158654827574noreply@blogger.com0tag:blogger.com,1999:blog-2621158270780051626.post-1825875775431930012012-06-25T17:51:00.001+03:002012-06-25T17:53:25.579+03:00Eclipse UI Tips for AndroidAs an Eclipse plug-in developer I am always looking for guidelines how to design my UI for the best user experience. Although not updated for quite a long time, the <a href="http://wiki.eclipse.org/User_Interface_Guidelines">User Interface Guidelines</a> wiki page is the best source of information I am familiar with. It's quite a lot of reading (big thanks to the contributors), but the time spent on reading really worth. <br />
<br />
Recently, I counted that there are exactly 144 guidelines described. Quite a lot, isn't it? Of course, there is a <a href="http://wiki.eclipse.org/UI_Checklist">short list</a> of the most important 18 guidelines, but this doesn't mean that I should neglect the other 126. Therefore, I was looking for an easy way to remember them all.<br />
<br />
It's quite modern now-a-days to use a smartphone for making one's life easier. I created a simple Android app that fires a status bar notification every morning with a randomly selected Eclipse UI guideline. This would remind me one of these guidelines every day. Since they are 144 total, this should keep me busy for nearly half a year and then for sure I would need to do another round :)<br />
<br />
I <a href="http://play.google.com/store/apps/details?id=name.raev.kaloyan.android.eclipseuitips">published</a> the application to Google Play, so you can try it yourself if you find this idea useful. The code <a href="https://github.com/kaloyan-raev/eclipse-ui-tips">is available</a> as open source under EPL on github. <br />
<br />
<a href="http://play.google.com/store/apps/details?id=name.raev.kaloyan.android.eclipseuitips">
<img alt="Android app on Google Play" src="http://www.android.com/images/brand/android_app_on_play_logo_large.png" /></a><br />
<br />
Please, note that I have designed the application
to fit my own needs. It's very likely that you have a different style of
learning. I am open for feedback, request for improvements and patches.
You are welcome to fork the project and submit your requests in the <a href="https://github.com/kaloyan-raev/eclipse-ui-tips/issues">issue tracking system</a> of github. <br />
<a href="http://play.google.com/store/apps/details?id=name.raev.kaloyan.android.eclipseuitips">
</a>Kaloyan Raevhttp://www.blogger.com/profile/05833809158654827574noreply@blogger.com0tag:blogger.com,1999:blog-2621158270780051626.post-40642474632562110252012-06-04T15:22:00.001+03:002012-06-25T17:53:49.252+03:00Eclipse Demo Camp in Sofia on June 18th<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://www.flickr.com/photos/sergi_nog/5670115126/" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://farm6.staticflickr.com/5184/5670115126_dbe2b846cb_m_d.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Photo by <a href="http://www.flickr.com/photos/sergi_nog/">sergi_nog</a></td></tr>
</tbody></table>
<br />
I am pleased to announce that just in a couple of weeks the 5th Eclipse Demo Camp in Sofia will take place. This time I am not in the organization, but there is a gang of extremely enthusiastic fellows who wish to continue the tradition.<br />
<br />
The special guest this time is Ralph Mueller - Director in Eclipse Foundation who is focused on growing the Eclipse community in Europe. We are also expecting some other guests from abroad. <br />
<br />
Of course, the most important content of an Eclipse Demo Camp are the demos prepared by you - the Eclipse geeks. So, if you have something interesting to show, please sign up in the <a href="http://wiki.eclipse.org/Eclipse_DemoCamps_Juno_2012/Sofia">wiki page</a>.<br />
<br />
If you plan to attend then please follow the <a href="http://wiki.eclipse.org/Eclipse_DemoCamps_Juno_2012/Sofia#Who_Is_Attending">instructions</a> how to register, so you can make the organization of the event easier.<br />
<br />
Let's make this Demo Camp the best one!<br />
<br />
<br />Kaloyan Raevhttp://www.blogger.com/profile/05833809158654827574noreply@blogger.com0tag:blogger.com,1999:blog-2621158270780051626.post-84637506600917449852011-10-23T22:13:00.000+03:002011-10-23T22:13:54.992+03:00Bundle Dependency Graph moved from Virgo to LibraThose of you who are familiar with the <a href="http://wiki.eclipse.org/Virgo/Tooling">Virgo Tooling</a> know about the rich tools in the Virgo server editor. It consists of editor parts like:<br />
<ul>
<li>The Bundle Repository that allow easy installation of bundles from the <a href="http://ebr.springsource.com/repository/app/">SpringSource EBR</a> into the OSGi framework.</li>
<li>The Bundle Overview that lists all bundles installed in the OSGi framework with their states, attributes, imported and exported packages and services, etc. </li>
<li>The Bundle Dependency Graph that visualizes the dependencies between the bundles as a graph.</li>
<li>The Server Console that allows executing shell commands in the OSGi framework (somewhat duplicating the standard Eclipse Console). </li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTMZwQ66ViF5mh6zxGvFh_9Tpc6crXnpqRJhGhuv8EfgCQUcnQCWUgqUKmjYfB57SuwPgxYPQYmdWx2jZVAgoFchNrmxQRK4gCfU3_eh5X3HSLWS91jGID5jYAJzP2w7rDg2aFDpJKkgqR/s1600/Libra_Bundle_Dependency_Graph.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="169" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTMZwQ66ViF5mh6zxGvFh_9Tpc6crXnpqRJhGhuv8EfgCQUcnQCWUgqUKmjYfB57SuwPgxYPQYmdWx2jZVAgoFchNrmxQRK4gCfU3_eh5X3HSLWS91jGID5jYAJzP2w7rDg2aFDpJKkgqR/s400/Libra_Bundle_Dependency_Graph.png" width="400" /></a></div>
<br />
The good news today is that three of these editor parts - Bundle Overview, Bundle Dependency Graph and Server Console - are now released from their Virgo dependencies and <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=357386">moved</a> to the <a href="http://eclipse.org/libra/">Libra</a> project, which allows using these tools with any OSGi framework as well as integrating them in adopter's server adapters for OSGi-based application servers. <br />
<br />
This move has been done in the timeframe of Juno M3 that will be officially released on November 11, 2011. From this date on, this new Libra feature will be able to be installed from the Juno Discovery Site. Until then, those who are eager to try it out now, can do this from the Libra <a href="http://download.eclipse.org/libra/nightly">Nightly repository</a>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjASFiuG4vMyna_QzzeaNX0JOW_aL8bQh4FhxQ4eGOQCaCVLh62L8eFNM2C7XqwU1CM-uPMJFdR9DZh4tCcX1DKACnx7Eg_axq_fVlSX9I-IYirgTxNcvpMmoEKCaYgda1pHywfFeYheji8/s1600/Libra_Installation.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="231" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjASFiuG4vMyna_QzzeaNX0JOW_aL8bQh4FhxQ4eGOQCaCVLh62L8eFNM2C7XqwU1CM-uPMJFdR9DZh4tCcX1DKACnx7Eg_axq_fVlSX9I-IYirgTxNcvpMmoEKCaYgda1pHywfFeYheji8/s400/Libra_Installation.png" width="400" /></a></div>
<br />
The new feature is called "OSGi Framework Editor". However, if you want to try it with the Libra server adapters for the open-source OSGi frameworks (like Equinox, Felix, etc.) you will need to install also the "OSGi Framework Launchers" feature. Watch these <a href="http://eclipse.org/libra/documentation/video/">great video tutorials</a> for an introduction to these server adapters.<br />
<br />
The Bundle Overview and the Bundle Dependency Graph editor parts retrieve the bundle information from the OSGi framework via JMX. Therefore, make sure you configure JMX correctly by following the <a href="http://wiki.eclipse.org/Libra/User_Guide#Configuring_the_Bundle_Information_and_Bundle_Dependency_Graph_editor_parts">user guide</a>.<br />
<br />
In case you like these tools and you want to integrate them in your own server adapter, then take a look at the comprehensive <a href="http://wiki.eclipse.org/Libra/Adopter_Guide">adopter guide</a> that explains how to do this. <br />
<br />
So, that's all folks for Juno M3. I plan making some enhancements for the next Juno milestones. My hope is that these editor parts become a useful tool for analyzing the state and the dependencies of OSGi bundles. <br />
<br />
<br />
<br />
<br />
<br />
<br />Kaloyan Raevhttp://www.blogger.com/profile/05833809158654827574noreply@blogger.com3tag:blogger.com,1999:blog-2621158270780051626.post-4264050326621008262011-09-09T15:10:00.001+03:002011-09-13T14:28:03.333+03:00Sharing Target Platforms and Launch Configurations in Version ControlLast week I had the pleasure to participate in the <a href="http://www.aqute.biz/MasterClass/MasterClass">Masterclass on OSGi</a> led by Neil Bartlett and Peter Kriens. The event was really fruitful and inspiring, and among other things I had to opportunity to work with <a href="http://bndtools.org/">Bndtools</a>. For a long-year user of Eclipse PDE like me, it was quite interesting to look at the OSGi bundle development from such a different perspective.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhc2VIeI7AcdLvK5AkAxlheXFBmkeQQzlRaKDBZP3lYouhA64iTJNeNOnVGlWOuBcrVxW3ADHbR7f9tJxqw7xrDcddEdpEJAPlByb3WgpkrdoHZgZYSfzDpBP2iwXyXnCLuUEo2EKYTAebU/s1600/masterclass.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhc2VIeI7AcdLvK5AkAxlheXFBmkeQQzlRaKDBZP3lYouhA64iTJNeNOnVGlWOuBcrVxW3ADHbR7f9tJxqw7xrDcddEdpEJAPlByb3WgpkrdoHZgZYSfzDpBP2iwXyXnCLuUEo2EKYTAebU/s200/masterclass.jpg" width="200" /></a></div>
<br />
One of the differentiators of Bndtools is that all resources of the OSGi development environment (like bundle repository, build and run configurations) are stored in projects in the Eclipse workspace and can be easily shared to a version control system using the Eclipse Team Provider. And indeed, this is a very useful feature - sharing such non-functional resources with your team members would enable them to quickly have the same working environment by just a quick checkout from the version control system.<br />
<br />
But... Does Eclipse PDE really miss this same feature?<br />
<br />
Not exactly! PDE has the "target platform" that is the equivalent of the bundle repository and the build-time configuration in Bndtools, and the "launch configuration" that is the equivalent for the run configuration in Bndtools. It's true that both target platforms and launch configurations are stored deep in the Eclipse workspace's metadata, which cannot be shared using the Eclipse Team Provider. But this is just the default behavior. Both artifacts can be exported to files in existing projects in the workspace so they can be shared.<br />
<br />
<span style="font-size: large;">Target Platforms</span> <br />
<br />
Let's first take a look at the target platforms. Users have two options: 1) create a new target platform from scratch as a file, or 2) export an existing target platform to a file.<br />
<br />
New target platforms can be created using the <i>New Target Definition</i> wizard. It can be found by following <i>New > Other... > Plug-in Development > Target Definition</i> from the main menu. You need to choose "Nothing" for "Initialize the target definition with". The result is an "empty" <i>.target</i> file in an existing project in the workspace.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfwJkTdHcvatTDR2Hh1wo_xZ7cFXwPdhkb-imIDqIimpNRxQ2EHsPJrdlqbkTo4Z1x3OW8-wRcQLwZaaWIn1U98LA2BE2AJnClObA4CTY0DgR7hQJyuzM7n6F-iRBgdwbNgJvPFSs5A9FI/s1600/new_target.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="234" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfwJkTdHcvatTDR2Hh1wo_xZ7cFXwPdhkb-imIDqIimpNRxQ2EHsPJrdlqbkTo4Z1x3OW8-wRcQLwZaaWIn1U98LA2BE2AJnClObA4CTY0DgR7hQJyuzM7n6F-iRBgdwbNgJvPFSs5A9FI/s320/new_target.png" width="320" /></a></div>
<br />
Exporting an existing target platform to a file can be done in a similar way. In the <i>New Target Definition</i> wizard choose the "Current Target" radio button instead of "Nothing". This way the wizard will export the <b>active</b> target platform. If you want to export a target platform that is not the active one at the moment, you need to first activate it (from <i>Window > Preferences > Plug-in Development > Target Platform</i> preference page).<br />
<br />
<b>Edit (Thank <a href="http://www.blogger.com/profile/07823163562402913233">Curtis</a> for this hint):</b> Another (even easier) way to export an existing target platform is by going to the <i>Target Platform </i>preference page (<i>Window > Preferences > Plug-in Development > Target Platform</i>) and using the <i>Share...</i> button. This will launch a wizard that will export the selected target platform as a <i>.target</i> file in the specified project. The wizard itself will not share the target platform in a version control system, but after having it in the project you can use the Eclipse Team Provider for doing this. <br />
<br />
The result <i>.target</i> file can be open and edited with the (default) <i>Target Editor</i>. It is important to mention that there may be many target definitions in the workspace, but only one can be activated as a target platform at the same time. This is a known issue (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=159072">bug 159072</a>) in PDE. It's not a problem for simple OSGi development scenarios, but could be really annoying for more complex ones. I have to admit that Bndtools has a better design here - every Bnd project can have its own target platform equivalent.<br />
<br />
<span style="font-size: large;">Launch Configurations</span><br />
<br />
Here the only option is to export an existing launch configuration. This can be done by calling the <i>File > Export... > Run/Debug > Launch Configurations</i> wizard from the main menu. The selected launch configuration will be exported as a <i>.launch</i> file at the given location on the file system. You need to browse the location of the respective project in the workspace. Don't forget to <i>Refresh</i> the project to see the exported file.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUY41dMRDBekCqx2rqomKqOMb4sniUsFbHT5w3hWZ3VQ7otnv57cVCNITffqvvAIhvEfU7gSU9137cIiDltis1l-0faBmHHT8S8Wd1PepRnuvmA7JP7yz6PGULa9op1hG4ZEn7IsJZIr1n/s1600/export_launch.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="50" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUY41dMRDBekCqx2rqomKqOMb4sniUsFbHT5w3hWZ3VQ7otnv57cVCNITffqvvAIhvEfU7gSU9137cIiDltis1l-0faBmHHT8S8Wd1PepRnuvmA7JP7yz6PGULa9op1hG4ZEn7IsJZIr1n/s320/export_launch.png" width="320" /></a></div>
<br />
The <i>.launch </i>files can be executed by using the <i>Run As </i>actions in the context menu. They can be edited by calling <i>Run As > Run Configurations...</i> action. Actually, every <i>.launch</i> file in the workspace is recognized as a launch configuration.<br />
<br />
Like target platforms, you can have many launch configurations in the workspace. And, luckily, you can launch as many as you like at the same time. Launch configurations can be configured to launch only a subset of the target platform - the bundles that you really want to run, plus additional bundles from the workspace. So, it's worth having several launch configurations if complex projects must be run in different contexts. <br />
<br />
<span style="font-size: large;">Additional Hints</span><br />
<br />
It's very important to remember that when sharing resources with a team provider you should avoid using absolute file paths. Otherwise, your team mates could see broken paths if they don't maintain the same directory structure like yours. Such file paths could be the working directory of a launch configuration or a directory of bundles included in a target platform.<br />
<br />
The Eclipse Platform has an excellent solution called <a href="http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.user%2Fconcepts%2Fcpathvars.htm">Path Variables</a>. The one that I like the most is the <b>${workspace_loc}</b> variable that always points to the root location of the current Eclipse workspace. I highly recommend using it when constructing file paths that will be shared with a team provider.<br />
<br />
Many dialogs in Eclipse provide the special <i>Workspace...</i> button that makes construction of paths relative to the workspace root very easy. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigW-YgTc-IcpJrV0ktUKjoENujWD7HVkvIEjeFgbHKaqzVdgkWAwKc8PqtFzBHHBnOOUVws7MdGjHkk2TCPNmCoK9chqYAHy9GRfndrnUo7PTmkpNI50yQ0o26pW-rjnOxLcqvtHyKznhl/s1600/workspace_loc.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="72" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigW-YgTc-IcpJrV0ktUKjoENujWD7HVkvIEjeFgbHKaqzVdgkWAwKc8PqtFzBHHBnOOUVws7MdGjHkk2TCPNmCoK9chqYAHy9GRfndrnUo7PTmkpNI50yQ0o26pW-rjnOxLcqvtHyKznhl/s320/workspace_loc.png" width="320" /></a></div>
<br />
<span style="font-size: large;">Conclusion</span><br />
<br />
We've seen that sharing project metadata like target platforms and launch configurations, although not so obvious at first sight, is easily possible in Eclipse PDE. Compared to Bndtools, PDE even provides some more flexibility, but at the same time has also some deficiencies. <br />
<div id="gmBFtt" style="background: none repeat scroll 0% 0% rgb(168, 236, 255) ! important; border-radius: 5px 5px 5px 5px ! important; border: 1px solid black ! important; color: rgb(0, 0, 0) ! important; display: inline ! important; font-family: Arial ! important; font-size: 12px ! important; font-weight: normal ! important; height: auto ! important; left: 555px ! important; line-height: normal ! important; margin: 0px ! important; padding: 2px ! important; position: absolute ! important; text-align: left ! important; top: 1251px ! important; vertical-align: middle ! important; visibility: visible ! important; width: auto; z-index: 1410065406 ! important;">
<div style="background: none repeat scroll 0% 0% rgb(168, 236, 255) ! important; border-bottom: 1px dotted black ! important; color: rgb(0, 0, 0) ! important; font-family: Arial ! important; font-size: 12px ! important; font-weight: normal ! important; line-height: normal ! important; padding-bottom: 2px ! important; padding-top: 2px ! important; vertical-align: middle ! important;">
<span id="bfconfigButton" style="background: none repeat scroll 0% 0% rgb(168, 236, 255) ! important; border: 1px dotted gray ! important; color: rgb(0, 0, 0) ! important; cursor: pointer ! important; font-family: Arial ! important; font-size: 12px ! important; font-weight: normal ! important; line-height: normal ! important; margin: 1px ! important; padding: 0px 2px ! important; vertical-align: middle ! important;" title="Choose source- and target- languages">Languages</span><span id="bfdetectButton" style="background: none repeat scroll 0% 0% rgb(168, 236, 255) ! important; border: 1px dotted gray ! important; color: rgb(0, 0, 0) ! important; cursor: pointer; display: none ! important; font-family: Arial ! important; font-size: 12px ! important; font-weight: normal ! important; line-height: normal ! important; margin: 1px ! important; padding: 0px 2px ! important; vertical-align: middle ! important;" title="Auto-detect language and translate!"></span><span id="bflangsSpan" style="background: none repeat scroll 0% 0% rgb(168, 236, 255) ! important; border: 1px dotted gray ! important; color: rgb(0, 0, 0) ! important; cursor: pointer ! important; font-family: Arial ! important; font-size: 12px ! important; font-weight: normal ! important; line-height: normal ! important; margin: 1px ! important; padding: 0px 2px ! important; vertical-align: middle ! important;" title="From English to Bulgarian (click to switch translation direction)">en>bg </span><span id="bfsvcSpan" style="background: none repeat scroll 0% 0% rgb(168, 236, 255) ! important; border: 1px dotted gray ! important; color: rgb(0, 0, 0) ! important; cursor: pointer ! important; font-family: Arial ! important; font-size: 12px ! important; font-weight: normal ! important; line-height: normal ! important; margin: 1px ! important; padding: 0px 2px ! important; vertical-align: middle ! important;" title="Translation service: Google (toggle service)">Google</span><span id="bfclipboardSpan" style="background: none repeat scroll 0% 0% rgb(168, 236, 255) ! important; border: 1px dotted gray ! important; color: rgb(0, 0, 0) ! important; cursor: copy ! important; font-family: Arial ! important; font-size: 12px ! important; font-weight: normal ! important; line-height: normal ! important; margin: 1px ! important; padding: 0px 2px ! important; vertical-align: middle ! important;" title="Copy result to clipboard">C</span><span id="bfeditButton" style="background: none repeat scroll 0% 0% rgb(168, 236, 255) ! important; border: 1px dotted gray ! important; color: rgb(0, 0, 0) ! important; cursor: pointer; font-family: Arial ! important; font-size: 12px ! important; font-weight: normal ! important; line-height: normal ! important; margin: 1px ! important; padding: 0px 2px ! important; vertical-align: middle ! important;" title="Edit selection">E</span><span id="bferrorSpan" style="background: none repeat scroll 0% 0% rgb(168, 236, 255) ! important; border: 1px dotted gray ! important; color: rgb(0, 0, 0) ! important; cursor: pointer ! important; display: none ! important; font-family: Arial ! important; font-size: 12px ! important; font-weight: normal ! important; line-height: normal ! important; margin: 1px ! important; padding: 0px 2px ! important; vertical-align: middle ! important; visibility: hidden ! important;" title=""></span><img id="bffishImg" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAOCAYAAAA8E3wEAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1QUUDyoqJjAqRwAAAN1JREFUOMu1lMkVwyAMBYe0JGpCNUFNVk3k4AUwxPGS+ILxkzX8jyTH/Sfu9nrmJ3cXlnMASyWRPwd2d5XlHCBZn1BthcbRAdxTZQDI8k3mQzg11rhF+QZ9jdNOcQib6GFQYJYgCFucSRf6GsLU6wEY5yubTFqF2yq1vRwr3INXdQUWG+je1pELX4ED1wDyRAR0WfuAA9gloITyvsFMIMgYInYRqF6rO9Sqz9qkO5ilyo0o3YBwJ+6vrdQonxWUQllhXeHcb/wabMPkP2n81ocAIoLZrMqn/4y2RwP8DcQ+d6rT9ATiAAAAAElFTkSuQmCC" style="border: medium none ! important; cursor: pointer ! important; display: inline ! important; float: none ! important; margin: 0px ! important; vertical-align: top ! important;" title="Auto-detect language and translate!" /></div>
<div style="border-bottom: 1px dotted black ! important; display: none ! important;">
<input id="bfeditField" style="background: none repeat scroll 0% 0% rgb(168, 236, 255) ! important; border: 0pt none ! important; color: rgb(0, 0, 0) ! important; font-family: Arial ! important; font-size: 12px ! important; font-weight: normal ! important; line-height: normal ! important; margin: 1px ! important; vertical-align: middle ! important;" /></div>
<div style="background: none repeat scroll 0% 0% rgb(168, 236, 255) ! important; color: rgb(0, 0, 0) ! important; font-family: Arial ! important; font-size: 12px ! important; font-weight: normal ! important; line-height: normal ! important; vertical-align: middle ! important; width: auto;">
за</div>
</div>
Kaloyan Raevhttp://www.blogger.com/profile/05833809158654827574noreply@blogger.com6tag:blogger.com,1999:blog-2621158270780051626.post-87279423020702384682011-01-15T02:59:00.001+02:002011-04-01T00:19:16.127+03:00Another sign in the Eclipse Zodiac<img src="http://www.openclipart.org/image/160px/svg_to_png/Gerald_G_Balance_Scale.png" alt="Libra Logo" /><br/><br/>The Eclipse Zodiac expands with one more sign. The <a href="http://www.eclipse.org/proposals/libra/">Libra</a> project arises next to the <a href="http://www.eclipse.org/gemini/">Gemini</a> and <a href="http://www.eclipse.org/virgo/">Virgo</a> runtime projects. This time it is about a project that will provide tools for the OSGi Enterprise specification, like development of Web Application Bundles and Persistent Bundles. <br/><br/>The Libra project has just passed successfully the Creation Review and is now being provisioned. The best source of information for the moment is the <a href="http://www.eclipse.org/proposals/libra/">proposal</a> document as well as the discussions in the <a href="http://www.eclipse.org/forums/index.php?t=thread&frm_id=200">forum</a>. <br/><br/>Some of the initial committers are already preparing their initial contributions, so stay tuned for announcement about the first features delivered to the community. The new project will be also presented at EclipseCon 2011: <a href="https://www.eclipsecon.org/submissions/2011/view_talk.php?id=2131">Libra - New Tools at Eclipse for OSGi Enterprise Development</a><br/><br/><a href="http://www.eclipsecon.org/2011/"><img border="0" src="http://www.eclipsecon.org/2011/static/image/friends/130x100_speaking.gif" height="100" width="130"></a>Kaloyan Raevhttp://www.blogger.com/profile/05833809158654827574noreply@blogger.com0tag:blogger.com,1999:blog-2621158270780051626.post-25186150113668427892010-09-16T01:59:00.001+03:002011-04-01T00:19:16.129+03:00JPA Diagram Editor 0.5 RC2 releasedThe JPA Diagram Editor project has just published the next release candidate - 0.5 RC2. This milestone build requires Graphiti 0.7.0 RC1. Check the project's wiki page for <a href="http://wiki.eclipse.org/JPA_Diagram_Editor_Project#How_to_Install">installation instructions</a>.<br/><br/>This RC comes with a significant <a href="https://bugs.eclipse.org/bugs/buglist.cgi?classification=WebTools;query_based_on=JPA%20Editor;query_format=advanced;component=wtp.inc.jpaeditor;target_milestone=0.5%20RC2;product=WTP%20Incubator;known_name=JPA%20Editor">list of bugs fixed</a>. There are still <a href="https://bugs.eclipse.org/bugs/buglist.cgi?classification=WebTools;query_based_on=JPA%20Editor;query_format=advanced;component=wtp.inc.jpaeditor;target_milestone=0.5%20RC3;product=WTP%20Incubator;known_name=JPA%20Editor">some more left</a>. So we are going to have one more RC in the next weeks and then we will officially release version 0.5, which will be compatible with Helios and Graphiti 0.7.<br/><br/>I'd like to thank my colleagues Stefan and Petya for their great job in driving the project. Kudos go also to Ram, Tuukka and Alex for the great bugs they have reported.<br/><br/>By the way, we have set up a <a title="Hudson build" href="https://hudson.eclipse.org/hudson/view/WTP/job/cbi-wtp.inc-jpaeditor/">Hudson build</a>, so everybody can have an early look at the bug fixes we commit to CVS. More info: <a href="http://wiki.eclipse.org/JPA_Diagram_Editor_Project#Build_Infrastructure">http://wiki.eclipse.org/JPA_Diagram_Editor_Project#Build_Infrastructure</a><br/><br/>And, by the way, the JPA Diagram Editor will be presented at the <a href="http://www.eclipsecon.org/summiteurope2010/sessions/?page=sessions&id=1680">Eclipse Summit Europe 2010</a> :-)<br/><br/>Stay tuned!Kaloyan Raevhttp://www.blogger.com/profile/05833809158654827574noreply@blogger.com0tag:blogger.com,1999:blog-2621158270780051626.post-30486579537828312822010-08-18T23:35:00.001+03:002011-04-01T00:19:16.136+03:00JPA Diagram Editor first milestone releasedI am happy to announce that the JPA Diagram Editor project made its first milestone release - 0.5 RC1. Just follow the <a href="http://wiki.eclipse.org/JPA_Diagram_Editor_Project#How_to_Install">installation instructions</a>, posted on the <a href="http://wiki.eclipse.org/JPA_Diagram_Editor_Project">project's wiki</a>, and you are ready to build your JPA model in a diagram. There is a nice <a href="http://wiki.eclipse.org/JPA_Diagram_Editor_Project_Tutorial">Getting Started tutorial</a> to help your first steps. If you want to take a quick look before installing, then check our <a href="http://www.youtube.com/watch?v=xZf6pOHX178">demo</a> on YouTube. <br/><br/><img src="http://wiki.eclipse.org/images/7/77/D1.jpg" alt="An example of a diagram created by the JPA editor" /><br/><br/>The JPA Diagram Editor is a new incubating project in the <a href="http://eclipse.org/webtools/incubator/">WTP Incubator</a>. The project is <a href="http://wiki.eclipse.org/WTP/JPA_Diagram_Editor/Proposal">initiated</a> by SAP and aims to contribute the existing JPA Diagram Editor from the SAP NetWeaver Developer Studio, and continue its future development in the Eclipse community. This contribution is based on the <a href="http://eclipse.org/graphiti/">Graphiti</a> project - the new graphics modeling infrastructure in Eclipse.<br/><br/>The official 0.5 version of the project will provide a stable release of the initial contribution. Due to the migration to Graphiti, there are some bugs to be cleaned and we are actively working on them. Nevertheless, we decided to release early to hear your feedback sooner. If you eventually find a bug, then please report it in the <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=WTP%20Incubator">WTP Incubator Bugzilla</a> (use component <strong>wtp.inc.jpaeditor</strong>). You can check the list of <a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced;component=wtp.inc.jpaeditor;product=WTP%20Incubator;classification=WebTools">already reported bugs</a> if that bug has already been found - we are actively testing at the moment. <br/><br/>Please, note that currently the JPA Diagram Editor supports only JPA 1.0 projects. This mean that you will not see the "Open Diagram" action in the context menu of JPA 2.0 projects. JPA 2.0 support is definitely on our radar screen. We will start working on it after releasing the stable 0.5 version. <br/><br/>Any feedback is very welcome. Especially with suggestions how to evolve the project in the future months. We are available on the <a href="http://www.eclipse.org/forums/index.php?t=thread&frm_id=114">WTP Incubator Forum</a> and <a href="https://dev.eclipse.org/mailman/listinfo/wtp-incubator-dev">wtp-incubator-dev@eclipse.org</a> mailing list.Kaloyan Raevhttp://www.blogger.com/profile/05833809158654827574noreply@blogger.com0tag:blogger.com,1999:blog-2621158270780051626.post-29931298985282251802010-06-07T18:33:00.001+03:002011-04-01T00:19:16.140+03:00Demo Camp Sofia 2010 RoundupLast Thursday all Bulgarian Eclipse enthusiasts met in Sofia to show some cool Eclipse stuff and share tips and tricks. More than 100 fans (the exact number is 112!) from over 30 companies and organizations took a day off from work and joined the best Eclipse Demo Camp in Sofia so far.<br/><p style="text-align: center"><a title="IMG_2316 by Kaloyan & Reni, on Flickr" href="http://www.flickr.com/photos/39560848@N04/4668663611/"><img class="aligncenter" src="http://farm2.static.flickr.com/1272/4668663611_e0db4ceaf8_m.jpg" alt="IMG_2316" width="240" height="160" /></a></p><br/><br/>The audience has been warmed up with a couple of morning talks: a <a href="http://www.slideshare.net/mmilinkov/eclipse-democamp-sofia">Community Update</a> by Mike Milinkovich and an Enterprise Perspective on the Eclipse platform [1] [<a href="http://wiki.eclipse.org/images/5/58/EclipseRT_Virgo_OSGi.pdf">2</a>] by Krasimir Semerdzhiev (SAP) and Chris Frost (SpringSource).<br/><p style="text-align: center"><a title="IMG_2301 by Kaloyan & Reni, on Flickr" href="http://www.flickr.com/photos/39560848@N04/4668662277/"><img class="aligncenter" src="http://farm5.static.flickr.com/4011/4668662277_219da1ec96_m.jpg" alt="IMG_2301" width="240" height="160" /></a></p><br/><br/>After the lunch the demo fight began. <a href="http://wiki.eclipse.org/Eclipse_DemoCamps_Helios_2010/Sofia#Agenda">Ten demos</a>, presented by 7 speakers, fought to grip the audience. We saw e4, Swordfish, Jazz, Virgo, RAP, Xtext and more. But, finally, <a href="http://bgmindstorms.wordpress.com/about/">Kiril Mitov</a> took the grand prize with indisputable advantage over the others.<br/><p style="text-align: center"><a title="IMG_2427 by Kaloyan & Reni, on Flickr" href="http://www.flickr.com/photos/39560848@N04/4668671055/"><img class="aligncenter" src="http://farm5.static.flickr.com/4060/4668671055_82462ee053_m.jpg" alt="IMG_2427" width="240" height="160" /></a></p><br/><br/>The demo camp turned out to be a great opportunity for networking. There were couple of breaks and a cocktail that were used by attendees to meet the speakers and talk each other. Personally, I met a lot of amazing people and each one of them had something interesting to share with me.<br/><p style="text-align: center"><a title="IMG_2293 by Kaloyan & Reni, on Flickr" href="http://www.flickr.com/photos/39560848@N04/4669286478/"><img class="aligncenter" src="http://farm5.static.flickr.com/4038/4669286478_d23cb95bfc_m.jpg" alt="IMG_2293" width="240" height="160" /></a></p><br/><br/>One of the most interesting parts for us, the organizers, is the feedback we've received. We have a big pile of feedback forms on our desks. Nevertheless, all of them are already processed and summarized. We are happy to see that the event met the expectations of most people.<br/><p style="text-align: center"><a title="Feedback Summary" href="http://wiki.eclipse.org/Eclipse_DemoCamps_Helios_2010/Sofia#Feedback"><img class="aligncenter" src="http://wiki.eclipse.org/images/e/e5/EclipseDemoCamp2010HeliosSofiaFeedback.png" alt="Feedback Summary" width="240" height="189" /></a></p><br/><br/>But the most astonishing part is the huge amount of hand-written comments. Dudes, we are really glad to see so many people that care making this event better! Be absolutely sure that we will take into account every single comment you have sent to us.<br/><br/>We hope to see all of you on the next demo camp. We believe it will be even better. Until then, make sure you subscribe to the <a href="http://wiki.eclipse.org/Regional_Communities/Bulgaria">Bulgarian Community mailing lists</a>, so you don't miss the news. We asked the morning speakers to share their slides. Once we have them, we will notify you on the mailing list.<br/><p style="text-align: center"><a title="IMG_2368 by Kaloyan & Reni, on Flickr" href="http://www.flickr.com/photos/39560848@N04/4669291548/"><img class="aligncenter" src="http://farm5.static.flickr.com/4018/4669291548_61457c71a8_m.jpg" alt="IMG_2368" width="240" height="160" /></a></p><br/><br/>See you and have a great time hacking Eclipse!Kaloyan Raevhttp://www.blogger.com/profile/05833809158654827574noreply@blogger.com1tag:blogger.com,1999:blog-2621158270780051626.post-22753374658087971152010-05-31T22:16:00.001+03:002011-04-01T00:19:16.144+03:00Demo camp in Sofia this Thursday!<a href="http://www.flickr.com/photos/gordontour/238213674/"><img src="http://farm1.static.flickr.com/96/238213674_5a0c7d3f28_m_d.jpg" alt="(away)" /></a><br/><br/>The <a href="http://dev.eclipse.org/blogs/raev/2010/05/12/eclipse-democamp-in-sofia-bulgaria/">Eclipse Demo Camp in Sofia</a> is just around the corner!<br/><br/>This year you will not only have the opportunity to meet Mike Milinkovich on a local ground, but also to watch ten demos on a variety of Eclipse topics. Although planned as a local meetup, the demo camp naturally developed into an international event. Two of the demo speakers come from abroad - Chris Frost from SpringSource UK and Silvije Horvat from IBM CEE (Croatia).<br/><br/>The <a href="http://wiki.eclipse.org/Eclipse_DemoCamps_Helios_2010/Sofia#Agenda">agenda</a> is already finalized. The registration starts at 9:00 am. Come early to avoid the crowd on the registration desk and have a morning coffee with the organizers. The program officially starts at 10:00 am.<br/><br/>We have more than 80 attendees already registered. There are still few free seats available. <a href="http://wiki.eclipse.org/Eclipse_DemoCamps_Helios_2010/Sofia#Who_Is_Attending">Register</a> on the wiki page to reserve your place! The cocktail after the demonstrations will give you the opportunity to commute with all these Eclipse friends in a relaxing environment.<br/><br/>See you at the demo camp!Kaloyan Raevhttp://www.blogger.com/profile/05833809158654827574noreply@blogger.com0tag:blogger.com,1999:blog-2621158270780051626.post-13275403846963527152010-05-12T14:23:00.001+03:002011-04-01T00:19:16.156+03:00Eclipse DemoCamp in Sofia, Bulgaria<a href="http://www.flickr.com/photos/richiecoot/4410763635/in/pool-44378395@N00"><img src="http://farm3.static.flickr.com/2502/4410763635_024545bf7e_m_d.jpg" alt="Alexander Nevsky Cathedral by Peet Peaks" /></a><br/><br/>Once again Sofia is going to host an Eclipse DemoCamp. The event will be part of the Eclipse DemoCamp Helios 2010 series, which cover almost 30 cities all over the world. The focus of the demo camp is again on short demonstrations of the Eclipse technology. There is no limitation of application areas to present.<br/><br/>Like before the demo camp is <strong>free and open for everyone</strong>. The same is valid for the demos – the presentation scene is open for anyone who’d like to demonstrate an interesting application of the Eclipse technology. The only requirement is to register your demo on the wiki page of the event: <a href="http://wiki.eclipse.org/Eclipse_DemoCamps_Helios_2010/Sofia">http://wiki.eclipse.org/Eclipse_DemoCamps_Helios_2010/Sofia</a><br/><br/>New this time is that we have a special guest – <strong>Mike Milinkovich</strong>, the President of the Eclipse Foundation. Mike will have a keynote that, we believe, will raise your attention.<br/><br/>The event will take place on <strong>June 3<sup>rd</sup></strong>, 2010 from <strong>10 am</strong> at <strong>Inter Expo Center</strong>, 147 “Tzarigradsko Chaussee” Blvd. The registration begins one hour earlier.<br/><br/>We invite all attendees and presenters <strong>to register on the event’s wiki page</strong>. The latter is the place to find more detailed information and news about the demo camp.<br/><br/>Help spreading the news by advertising the event in your network:<br/><ul><br/> <li>Facebook event: <a href="http://www.facebook.com/#!/event.php?eid=121686114515844">http://www.facebook.com/#!/event.php?eid=121686114515844</a></li><br/> <li>LinkedIn event: <a href="http://events.linkedin.com/Eclipse-DemoCamp-Helios-2010-Sofia/pub/319462">http://events.linkedin.com/Eclipse-DemoCamp-Helios-2010-Sofia/pub/319462</a></li><br/></ul><br/>The Eclipse DemoCamp in Sofia is organized by <a href="http://www.saplabs.bg/">SAP Labs Bulgaria</a> with the support of the Eclipse Foundation.Kaloyan Raevhttp://www.blogger.com/profile/05833809158654827574noreply@blogger.com0