<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DkECRnk8cCp7ImA9WxBbFk4.&quot;"><id>tag:blogger.com,1999:blog-5914783</id><updated>2010-03-15T12:01:07.778+05:30</updated><title>eclipse PDE and Me</title><subtitle type="html">It's all about Eclipse Plug-in Development Environment</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.ankursharma.org/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.ankursharma.org/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Ankur Sharma</name><uri>http://www.blogger.com/profile/17061727296754376984</uri><email>sharma.ankur@gmail.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>35</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/EclipsePdeAndMe" /><feedburner:info uri="eclipsepdeandme" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>EclipsePdeAndMe</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry gd:etag="W/&quot;DkEFQnY4fyp7ImA9WxBVE0w.&quot;"><id>tag:blogger.com,1999:blog-5914783.post-4621160973509176951</id><published>2010-02-16T15:33:00.000+05:30</published><updated>2010-02-16T15:33:33.837+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-16T15:33:33.837+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse Day" /><category scheme="http://www.blogger.com/atom/ns#" term="PlanetEclipse" /><title>Eclipse Day Submissions</title><content type="html">Thanks everyone for showing such&amp;nbsp;enthusiasm for Eclipse Day. We already have&amp;nbsp;received some nice proposals. And as requested by many we are relaxing the last date to submit the talk proposals till Feb 28, 2010.&lt;br /&gt;
&lt;br /&gt;
You may find the submitted proposals here&amp;nbsp;&amp;nbsp;&lt;a href="http://bit.ly/EclipseDaySubmissions"&gt;http://bit.ly/EclipseDaySubmissions&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5914783-4621160973509176951?l=blog.ankursharma.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EclipsePdeAndMe/~4/wFM7AsU-LAI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.ankursharma.org/feeds/4621160973509176951/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5914783&amp;postID=4621160973509176951" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/4621160973509176951?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/4621160973509176951?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/EclipsePdeAndMe/~3/wFM7AsU-LAI/eclipse-day-submissions.html" title="Eclipse Day Submissions" /><author><name>Ankur Sharma</name><uri>http://www.blogger.com/profile/17061727296754376984</uri><email>sharma.ankur@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="16521799200073626060" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.ankursharma.org/2010/02/eclipse-day-submissions.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8CQnwycCp7ImA9WxBWFkg.&quot;"><id>tag:blogger.com,1999:blog-5914783.post-261813927637153349</id><published>2010-02-09T00:51:00.000+05:30</published><updated>2010-02-09T00:51:03.298+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-09T00:51:03.298+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse Day" /><category scheme="http://www.blogger.com/atom/ns#" term="PlanetEclipse" /><title>Did you register for Eclipse Day India 2010?</title><content type="html">&lt;div style="text-align: justify;"&gt;Registrations opened today for Eclipse Day India 2010 and it has been a great response. Half the seats already booked on day one. Attendees from over 20 companies have already registered and the number will only go up further only so &lt;a href="http://eclipsedayindia.eventbrite.com/"&gt;register&lt;/a&gt; quickly.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;We will be publishing the agenda by mid-March. So if you are an Eclipse enthusiast then it will be a great opportunity to not only attend some really nice presentations but also network with the community.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;And if you are a company which consumes Eclipse, then what better occasion to show your support by becoming a joint sponsor. &lt;a href="http://www-01.ibm.com/software/rational/"&gt;IBM Rational&lt;/a&gt; has already come forward to joint sponsor event.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;We would love to hear from you if you have been doing some nice work with Eclipse and plug-ins. Do submit your thoughts at &lt;a href="http://eclipseday.in/"&gt;http://EclipseDay.in&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5914783-261813927637153349?l=blog.ankursharma.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EclipsePdeAndMe/~4/J2pLlu2Gkqk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.ankursharma.org/feeds/261813927637153349/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5914783&amp;postID=261813927637153349" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/261813927637153349?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/261813927637153349?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/EclipsePdeAndMe/~3/J2pLlu2Gkqk/did-you-register-for-eclipse-day-india.html" title="Did you register for Eclipse Day India 2010?" /><author><name>Ankur Sharma</name><uri>http://www.blogger.com/profile/17061727296754376984</uri><email>sharma.ankur@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="16521799200073626060" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.ankursharma.org/2010/02/did-you-register-for-eclipse-day-india.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQFQXwzcSp7ImA9WxBWEUk.&quot;"><id>tag:blogger.com,1999:blog-5914783.post-5724373133327285669</id><published>2010-02-03T01:55:00.000+05:30</published><updated>2010-02-03T01:55:10.289+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-03T01:55:10.289+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PlanetEclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="Preferences" /><category scheme="http://www.blogger.com/atom/ns#" term="build.properties" /><title>[New in 3.6 M5] Configurable problem severities for build.properties</title><content type="html">&lt;div style="text-align: justify;"&gt;User will now have a finer control over build.properties related problems. Till now there was one catch all preference setting.&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_dqhq-tO9EaM/S2iEzwCUIsI/AAAAAAAACYU/1pVWt921nj0/s1600-h/preferences_build.properties_1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="395" src="http://2.bp.blogspot.com/_dqhq-tO9EaM/S2iEzwCUIsI/AAAAAAAACYU/1pVWt921nj0/s400/preferences_build.properties_1.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;In 3.6 several new validations have been added to ensure &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;build.properties&lt;/span&gt; reflects the project build path and environment settings. These can be turned on-off using the new additional preferences which looks like this&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://download.eclipse.org/eclipse/downloads/drops/S-3.6M5-201001291300/images/build-severities.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="363" src="http://download.eclipse.org/eclipse/downloads/drops/S-3.6M5-201001291300/images/build-severities.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;source.&lt;library&gt;&lt;/library&gt;&lt;/span&gt; and &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;output.&lt;library&gt;&lt;/library&gt;&lt;/span&gt; preferences will control the problem reporting for all the source and output entries. A &lt;a href="http://blog.ankursharma.org/2009/11/source-and-output.html"&gt;previous post&lt;/a&gt; discusses the validation rules in detail.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;bin.includes&lt;/span&gt; and &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;src.includes&lt;/span&gt; related preferences will handle the problem reporting for the corresponding entries. They are typically checked for files and folders existence. &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;src.includes&lt;/span&gt; is also validated for presence of source folders. These entries were discussed in this &lt;a href="http://blog.ankursharma.org/2009/10/source-folders-and-srcincludes_11.html"&gt;post&lt;/a&gt;.&lt;/div&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;Java compliance properties preference refers to the problems reported for &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;javacSource&lt;/span&gt;, &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;javacTarget&lt;/span&gt; and &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;jre.compilation.profile&lt;/span&gt; entries. The validations rules have been discussed earlier in another &lt;a href="http://blog.ankursharma.org/2009/10/execution-environment-and-javac-entries_21.html"&gt;post&lt;/a&gt;.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The last one remains as catch all for remaining entries.&lt;/div&gt;&lt;br /&gt;
&lt;i&gt;See Also&lt;/i&gt;&lt;br /&gt;
&lt;a href="http://download.eclipse.org/eclipse/downloads/drops/S-3.6M5-201001291300/eclipse-news-M5.html"&gt;Eclipse 3.6 M5 - New and Noteworthy&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5914783-5724373133327285669?l=blog.ankursharma.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EclipsePdeAndMe/~4/UOKB6l4r4hw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.ankursharma.org/feeds/5724373133327285669/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5914783&amp;postID=5724373133327285669" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/5724373133327285669?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/5724373133327285669?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/EclipsePdeAndMe/~3/UOKB6l4r4hw/new-in-36-m5-configurable-problem.html" title="[New in 3.6 M5] Configurable problem severities for build.properties" /><author><name>Ankur Sharma</name><uri>http://www.blogger.com/profile/17061727296754376984</uri><email>sharma.ankur@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="16521799200073626060" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_dqhq-tO9EaM/S2iEzwCUIsI/AAAAAAAACYU/1pVWt921nj0/s72-c/preferences_build.properties_1.JPG" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.ankursharma.org/2010/02/new-in-36-m5-configurable-problem.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08FQHo-eCp7ImA9WxBQFUs.&quot;"><id>tag:blogger.com,1999:blog-5914783.post-269724534706676057</id><published>2010-01-15T21:06:00.000+05:30</published><updated>2010-01-15T21:06:51.450+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-15T21:06:51.450+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse Day" /><category scheme="http://www.blogger.com/atom/ns#" term="PlanetEclipse" /><title>Eclipse Day India 2010</title><content type="html">&lt;b&gt;Eclipse Day India 2010&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;I and &lt;a href="http://blog.eclipse-tips.com/"&gt;Prakash&lt;/a&gt; are organizing Eclipse Day India 2010 on Friday, April 9, 2010. Since this is the first time it is being organized in India, we are keeping the theme fairly broad and simple - Eclipse Plug-in Development. You can find the details at &lt;a href="http://eclipseday.in/"&gt;http://eclipseday.in&lt;/a&gt;.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Sponsorship&lt;/b&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Unlike &lt;a href="http://wiki.eclipse.org/Eclipse_DemoCamps_November_2009/Bangalore"&gt;Eclipse Demo Camp&lt;/a&gt; last year, this will be on a slightly bigger scale and thus we need sponsors. If you wish to support the event by extending a sponsorship please do get in touch with us. This will be a great opportunity to reach a gathering of more than 100 Eclipse developers and users from around a dozen companies.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Call for Talks&lt;/b&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;The Eclipse Day India is now inviting proposals for talk. Last day to submit&amp;nbsp; your proposals is Feb 15, 2010. See the details on the event wiki. &lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Attendee Registration&lt;/b&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;The event is &lt;i&gt;FREE&lt;/i&gt;. There is no cost to attend however preregistration is must due to limited seats. Registrations open Feb 1, 2010.&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5914783-269724534706676057?l=blog.ankursharma.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EclipsePdeAndMe/~4/dEMLsXder8Y" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.ankursharma.org/feeds/269724534706676057/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5914783&amp;postID=269724534706676057" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/269724534706676057?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/269724534706676057?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/EclipsePdeAndMe/~3/dEMLsXder8Y/eclipse-day-india-2010.html" title="Eclipse Day India 2010" /><author><name>Ankur Sharma</name><uri>http://www.blogger.com/profile/17061727296754376984</uri><email>sharma.ankur@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="16521799200073626060" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.ankursharma.org/2010/01/eclipse-day-india-2010.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkAMR3s5fyp7ImA9WxBRF0w.&quot;"><id>tag:blogger.com,1999:blog-5914783.post-3840416860525736474</id><published>2010-01-06T00:43:00.000+05:30</published><updated>2010-01-06T00:43:06.527+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-06T00:43:06.527+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PlanetEclipse" /><title>I came third</title><content type="html">This came as a complete surprise to me. Am at number three in '&lt;b&gt;Most contributed patches approved for IP Log&lt;/b&gt;' list.&lt;br /&gt;
&lt;br /&gt;
Reproducing the list from &lt;a href="http://dev.eclipse.org/blogs/eclipsewebmaster/2010/01/04/2009-from-bugzillas-perspective/"&gt;Denis Roy's post&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Most contributed patches approved for IP Log&lt;/b&gt;&lt;br /&gt;
&lt;pre&gt;68 Ian Tewksbury       @ibm.com
51 Matthew Piggott     @piggot.ca
&lt;span style="background-color: yellow;"&gt;46 Ankur Sharma        @ibm.com&lt;/span&gt;
46 Chris Jaun          @ibm.com
44 Ian Bull            @eclipsesource.com
40 Tim Buschtoens      @eclipsesource.com
37 Pawel Pogorzelski   @ibm.com
36 Benjamin Cabé       @sierrawireless.com
31 Danny Ju            @oracle.com
&lt;span style="background-color: #fff2cc;"&gt;29 Raksha Vasisht      @ibm.com&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Am also glad for Raksha (who is part of same team as I am) that she too made it in Top Ten. We got committers right in September '09 so playing in a bigger league now. Hope to report (if not resolve) lots of bugs in 2010 :)&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5914783-3840416860525736474?l=blog.ankursharma.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EclipsePdeAndMe/~4/Suilt8fxpnY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.ankursharma.org/feeds/3840416860525736474/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5914783&amp;postID=3840416860525736474" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/3840416860525736474?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/3840416860525736474?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/EclipsePdeAndMe/~3/Suilt8fxpnY/i-came-third.html" title="I came third" /><author><name>Ankur Sharma</name><uri>http://www.blogger.com/profile/17061727296754376984</uri><email>sharma.ankur@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="16521799200073626060" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://blog.ankursharma.org/2010/01/i-came-third.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUEBQ3s9fCp7ImA9WxBRE04.&quot;"><id>tag:blogger.com,1999:blog-5914783.post-6025717370760787984</id><published>2009-12-31T06:00:00.000+05:30</published><updated>2010-01-01T13:44:12.564+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-01T13:44:12.564+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="E4Application" /><category scheme="http://www.blogger.com/atom/ns#" term="Part" /><category scheme="http://www.blogger.com/atom/ns#" term="Application.xmi" /><category scheme="http://www.blogger.com/atom/ns#" term="PlanetEclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="Part Sash Container" /><category scheme="http://www.blogger.com/atom/ns#" term="Part Stack" /><category scheme="http://www.blogger.com/atom/ns#" term="How to" /><title>Writing an RCP application using e4 modeled UI - part II</title><content type="html">&lt;div style="text-align: justify;"&gt;&lt;b&gt;Understanding what we did and why&lt;/b&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;In the &lt;a href="http://blog.ankursharma.org/2009/12/writing-rcp-application-using-e4.html"&gt;previous post&lt;/a&gt; we wrote a very minimalistic RCP application using e4 modeled UI. Before adding more stuff to it, lets quickly revisit few steps and try to make sense of them.&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;In &lt;a href="http://blog.ankursharma.org/2009/12/writing-rcp-application-using-e4.html#step1"&gt;Step 1&lt;/a&gt; we unchecked the &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Generate an activator&lt;/span&gt; &lt;span style="font-family: inherit;"&gt;button&lt;/span&gt;. This was because right now we don't want to do anything on bundle start or stop events. We will later add one if we find the need to do so.&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;In &lt;a href="http://blog.ankursharma.org/2009/12/writing-rcp-application-using-e4.html#step2"&gt;Step 2&lt;/a&gt;, we add a dependency to &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;org.eclipse.core.runtime&lt;span style="font-family: inherit;"&gt; plug-in. This was to bring the extension &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;org.eclipse.core.runtime.products&lt;span style="font-family: inherit;"&gt; in visible scope. If we don't add this dependency, we will get prompted to add it when we add the extension.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: inherit;"&gt;We also gave the value &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;product&lt;/span&gt; to the extension id. This was to get the product registered as projectname.product. That is why we created a new product config in &lt;a href="http://blog.ankursharma.org/2009/12/writing-rcp-application-using-e4.html#step5"&gt;Step 5&lt;/a&gt;, the product &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;org.example.e4.rcpapp.product&lt;span style="font-family: inherit;"&gt; was already available to us.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: inherit;"&gt;e4 provides an out of the box application which understands the modeled UI. This application is &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;org.eclipse.e4.ui.workbench.swt.E4Application&lt;/span&gt;&lt;span style="font-family: inherit;"&gt; which is why we assigned it to the application property of our product.&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;The &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;applicationXMI&lt;/span&gt; property is what points to the UI model which the &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;E4Application&lt;/span&gt; will use to render the&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;/span&gt;UI. The format for the value is the plugin-name/project-relative-path. The file extension doesn't really matter. But an xmi extension will make it open the Toolkit Model Editor.&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;In &lt;a href="http://blog.ankursharma.org/2009/12/writing-rcp-application-using-e4.html#step3"&gt;Step 3&lt;/a&gt;, we had to manually add and modify the &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Application.xmi&lt;/span&gt; file. The New wizard doesn't have a option for it yet. &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=284413"&gt;Bug 284413&lt;/a&gt; shall address the issue.&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;In &lt;a href="http://blog.ankursharma.org/2009/12/writing-rcp-application-using-e4.html#step4"&gt;Step 4&lt;/a&gt;, we gave proper shape to the model.&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Application&lt;/span&gt; - this node represents the complete application. It will contain all UI elements plus their handlers, etc. Basically everything has to be child of this node.&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Window&lt;/span&gt; - represents the visible window that will form the RCP application GUI. Whatever Label we give to it, is what we will see in the window title bar. Lets play with it a bit. Change the Label property to give it a new title. Give the &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;X&lt;/span&gt; and &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Y&lt;/span&gt; property as 10 each. Save the editor and launch the application. You will see the application now has the new title and it shows up very close to the top-left corner of the screen. The X and Y properties represents the distance from the top-left corner of the screen.&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Part Sash Container&lt;span style="font-family: inherit;"&gt; - is a container for our &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Part&lt;/span&gt;. In e4 both view and editor are treated equally as &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Part&lt;/span&gt;. All the children Parts will share the space among them.&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Part Stack&lt;/span&gt; - is a collection of sibling Parts. Only one visible as a time - like we deck various views currently.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Part&lt;/span&gt; - represents a view or a editor. As usual, the Label property will control the name getting displayed on the view tab. We also added it a property &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;URI&lt;/span&gt; and gave it a value &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;platform:/plugin/org.example.e4.rcpapp/org.example.e4.rcpapp.views.MyView&lt;span style="font-family: inherit;"&gt;. This looks like a class name because it is a class name. We don't really need it as of now, but without it you will get a error and just to suppress it I added it. Getting an error on your first e4 RCP app won't look too elegant ;) In next post we will added this class and use it to create UI in the Part space.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;a href="http://blog.ankursharma.org/2009/12/writing-rcp-application-using-e4.html#step5"&gt;Step 5&lt;/a&gt; created a product configuration to help invoke the application. Nothing new here.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;a href="http://blog.ankursharma.org/2009/12/writing-rcp-application-using-e4.html#step6"&gt;Step 6&lt;/a&gt; created a run configuration using the product created in Step 5.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: inherit;"&gt; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;a href="http://blog.ankursharma.org/2009/12/writing-rcp-application-using-e4.html#step7"&gt;Step 7&lt;/a&gt; simple launched this run config.Only point to note here would be the Plug-ins tab in Run configuration shall select all the target plug-ins. This is because the &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Add Required Plug-ins&lt;/span&gt; button can not yet cope with the Dependency Injection used by modeled UI. Not doing so will run you into NPE at org.eclipse.e4.workbench.ui.internal.E4Workbench.init(E4Workbench.java:93).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: inherit;"&gt;Next&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: inherit;"&gt; &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: inherit;"&gt;We will add more Parts and render some useful UI in it.&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5914783-6025717370760787984?l=blog.ankursharma.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EclipsePdeAndMe/~4/caID2aCuVoM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.ankursharma.org/feeds/6025717370760787984/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5914783&amp;postID=6025717370760787984" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/6025717370760787984?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/6025717370760787984?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/EclipsePdeAndMe/~3/caID2aCuVoM/writing-rcp-application-using-e4_31.html" title="Writing an RCP application using e4 modeled UI - part II" /><author><name>Ankur Sharma</name><uri>http://www.blogger.com/profile/17061727296754376984</uri><email>sharma.ankur@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="16521799200073626060" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.ankursharma.org/2009/12/writing-rcp-application-using-e4_31.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUEBQ3s9cCp7ImA9WxBRE04.&quot;"><id>tag:blogger.com,1999:blog-5914783.post-7598577000594371337</id><published>2009-12-31T01:23:00.002+05:30</published><updated>2010-01-01T13:44:12.568+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-01T13:44:12.568+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="e4" /><category scheme="http://www.blogger.com/atom/ns#" term="RCP" /><category scheme="http://www.blogger.com/atom/ns#" term="Application.xmi" /><category scheme="http://www.blogger.com/atom/ns#" term="PlanetEclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="How to" /><category scheme="http://www.blogger.com/atom/ns#" term="Modeled UI" /><title>Writing an RCP application using e4 modeled UI - part I</title><content type="html">&lt;div style="text-align: justify;"&gt;Prakash was couple of hours quicker on posting the same topic &lt;a href="http://blog.eclipse-tips.com/2009/11/first-e4-rcp-application.html"&gt;here&lt;/a&gt;. I have a slightly different approach and may be more to add. Lets see.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div id="step1"&gt;&lt;b&gt;Step 1: Create a simple plug-in project.&lt;/b&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Open the plug-in wizard and create a new plug-in project. Let's give a name &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;org.example.e4.rcpapp&lt;/span&gt;. Be sure to uncheck the &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Generate an activator&lt;/span&gt; option. Click Finish. Do not go to template page (they are not yet updated for e4).&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_dqhq-tO9EaM/SzuBE3Jql9I/AAAAAAAACUU/a4bGOxyF-7A/s1600-h/new_plugin_wizard_e4_rcpapp.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_dqhq-tO9EaM/SzuBE3Jql9I/AAAAAAAACUU/a4bGOxyF-7A/s400/new_plugin_wizard_e4_rcpapp.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp; &lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div id="step2"&gt;&lt;b&gt;Step 2: Adding product extension.&lt;/b&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Open the manifest editor and go to Dependencies tab. Add &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;org.eclipse.core.runtime&lt;/span&gt; as required plug-in. Now open the Extensions page. Add a new extension &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;org.eclipse.core.runtime.products&lt;/span&gt;.&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Select the extension and give it a ID &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;product&lt;/span&gt; in extension details section.&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Right click the extension and select New -&amp;gt; Product. Select the product and give it a nice name - &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;e4 RCP app&lt;/span&gt;. Change the application id to &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;org.eclipse.e4.ui.workbench.swt.E4Application&lt;/span&gt;.&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Now right click the product in extension section and add two new properties. In the extension section give the name and values like this&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Name : &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;appName&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Value : &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Hello e4&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Name : &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;applicationXMI&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Value : &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;org.example.e4.rcpapp/Application.xmi&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;After this your plugin.xml will look like this&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush:xml"&gt;&amp;lt;plugin&amp;gt;
&amp;nbsp;&amp;nbsp; &amp;lt;extension
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;    id="product"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; point="org.eclipse.core.runtime.products"&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;product
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; application="org.eclipse.e4.ui.workbench.swt.E4Application"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name="e4 RCP app"&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name="appName"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value="Hello e4"&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name="applicationXMI"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value="org.example.e4.rcpapp/Application.xmi"&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/product&amp;gt;
&amp;nbsp;&amp;nbsp; &amp;lt;/extension&amp;gt;
&amp;lt;/plugin&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div id="step3"&gt;&lt;b&gt;Step 3: Application.xmi&lt;/b&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Create a new file to the root of the project and call it &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Application.xmi&lt;/span&gt;. It will open by default in a &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Toolkit model editor&lt;/span&gt; with errors (because it doesn't have the expected header). The editor will show a button &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Open with Text Editor&lt;/span&gt;. Click it and the file will open in a text editor. Add following skeleton to it. Save and close it.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush:xml"&gt;&amp;lt;?xml version="1.0" encoding="ASCII"?&amp;gt;
&amp;lt;application:Application xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:application="http://www.eclipse.org/ui/2008/UIModel"&amp;gt;
&amp;lt;/application:Application&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
Reopen the file and it will now open properly.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_dqhq-tO9EaM/SzufVfeTPHI/AAAAAAAACUc/rWSwP3mgf-E/s1600-h/application_xmi_1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_dqhq-tO9EaM/SzufVfeTPHI/AAAAAAAACUc/rWSwP3mgf-E/s400/application_xmi_1.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div id="step4"&gt;&lt;b&gt;Step 4: Creating Modeled UI&lt;/b&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;When you right click any node in this editor, there will options to add a new Child and/or Siblings. The &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Properties&lt;/span&gt; view will show the properties of each node. If it is not already visible you can invoke it by selecting the node and choosing &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Show Properties View&lt;/span&gt; option from the context menu.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Select the &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Application&lt;/span&gt; node and add a new child &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Window&lt;/span&gt; to it. See its properties and give it a nice name in the &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Label&lt;/span&gt; property like &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Hello e4&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
Select the &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Window&lt;/span&gt; node and add a child &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Part Sash Container&lt;/span&gt;.&lt;br /&gt;
Select &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;PartSashContainer&lt;/span&gt; node and add a child &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Part Stack&lt;/span&gt;.&lt;br /&gt;
Finally select &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;PartStack&lt;/span&gt; node and add a child &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Part&lt;/span&gt; to it. Visit the Properties view for the &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Part&lt;/span&gt; node and give it a name in the &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Label&lt;/span&gt; property like &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;My view&lt;/span&gt;. And in the URI property give a path &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;platform:/plugin/org.example.e4.rcpapp/org.example.e4.rcpapp.views.MyView&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Save the editor and it shall now look like this.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_dqhq-tO9EaM/Szui9PjDntI/AAAAAAAACUk/htk8O9N0VzY/s1600-h/application_xmi_2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_dqhq-tO9EaM/Szui9PjDntI/AAAAAAAACUk/htk8O9N0VzY/s640/application_xmi_2.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
To be sure that we did everything right, open the Application.xmi in text editor and its contents should look like this&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush:xml"&gt;&amp;lt;?xml version="1.0" encoding="ASCII"?&amp;gt;
&amp;lt;application:Application xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:application="http://www.eclipse.org/ui/2008/UIModel"&amp;gt;
&amp;nbsp; &amp;lt;children xsi:type="application:Window" label="Hello e4"&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;children xsi:type="application:PartSashContainer"&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;children xsi:type="application:PartStack"&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;children xsi:type="application:Part" URI="platform:/plugin/org.example.e4.rcpapp/org.example.e4.rcpapp.views.MyView" label="My View"/&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/children&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/children&amp;gt;
&amp;nbsp; &amp;lt;/children&amp;gt;
&amp;lt;/application:Application&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div id="step5"&gt;&lt;b&gt;Step 5: Product Configuration&lt;/b&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Create a new Product Configuration. Select the product &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;org.example.e4.rcpapp.product&lt;/span&gt; from the combo by enabling the &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Use an existing product&lt;/span&gt; option in the New Product Configuration wizard.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_dqhq-tO9EaM/Szul4B9oFEI/AAAAAAAACUs/gCZ0G8owtmI/s1600-h/new_product_config_wizard_1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_dqhq-tO9EaM/Szul4B9oFEI/AAAAAAAACUs/gCZ0G8owtmI/s400/new_product_config_wizard_1.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
The product editor will now open and will look like this&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_dqhq-tO9EaM/SzuoqAimjwI/AAAAAAAACU0/fktK2IOT8NE/s1600-h/product_editor_1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="206" src="http://4.bp.blogspot.com/_dqhq-tO9EaM/SzuoqAimjwI/AAAAAAAACU0/fktK2IOT8NE/s320/product_editor_1.JPG" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div id="step6"&gt;&lt;b&gt;Step 6: Creating a Run Configuration&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Open the Run Configurations wizard and create a new Eclipse Application config. Name it &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;rcpapp.product&lt;/span&gt;.&lt;br /&gt;
Choose the product &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;org.example.e4.rcpapp.product&lt;/span&gt; in the &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Run a product&lt;/span&gt; option.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_dqhq-tO9EaM/Szupv_FbdWI/AAAAAAAACU8/tcbZfIggN9Y/s1600-h/run_config_wizard_eclipse_app_1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_dqhq-tO9EaM/Szupv_FbdWI/AAAAAAAACU8/tcbZfIggN9Y/s400/run_config_wizard_eclipse_app_1.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Go to &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Plug-ins&lt;/span&gt; tab and make sure &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;all workspace and enabled target plug-ins&lt;/span&gt; option is selected in the &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Launch with&lt;/span&gt; combo.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_dqhq-tO9EaM/SzuqVcvs8oI/AAAAAAAACVE/2wJPqv86xYs/s1600-h/run_config_wizard_eclipse_app_plugins_tab_1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="206" src="http://3.bp.blogspot.com/_dqhq-tO9EaM/SzuqVcvs8oI/AAAAAAAACVE/2wJPqv86xYs/s320/run_config_wizard_eclipse_app_plugins_tab_1.JPG" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div id="step7"&gt;&lt;b&gt;Step 7: Launching the RCP Application&lt;/b&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Click Run button in run configuration to execute the RCP application. Your first e4 RCP application will look like this&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_dqhq-tO9EaM/Szuqv7DNDVI/AAAAAAAACVM/xRHEfuitduI/s1600-h/e4_rcpapp_1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_dqhq-tO9EaM/Szuqv7DNDVI/AAAAAAAACVM/xRHEfuitduI/s400/e4_rcpapp_1.JPG" /&gt;&lt;/a&gt;&amp;nbsp; &lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Next&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
In the following posts we will revisit what we did above and try to see why we did it so.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Note to e4 gurus and committers &lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
This series is post is outcome of hit-and-trial self learning. Please do add you views or point out any mistakes you see.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5914783-7598577000594371337?l=blog.ankursharma.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EclipsePdeAndMe/~4/7wywDPRndOs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.ankursharma.org/feeds/7598577000594371337/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5914783&amp;postID=7598577000594371337" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/7598577000594371337?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/7598577000594371337?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/EclipsePdeAndMe/~3/7wywDPRndOs/writing-rcp-application-using-e4.html" title="Writing an RCP application using e4 modeled UI - part I" /><author><name>Ankur Sharma</name><uri>http://www.blogger.com/profile/17061727296754376984</uri><email>sharma.ankur@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="16521799200073626060" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_dqhq-tO9EaM/SzuBE3Jql9I/AAAAAAAACUU/a4bGOxyF-7A/s72-c/new_plugin_wizard_e4_rcpapp.JPG" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://blog.ankursharma.org/2009/12/writing-rcp-application-using-e4.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MCQn04cSp7ImA9WxBSFUQ.&quot;"><id>tag:blogger.com,1999:blog-5914783.post-5332508916908623390</id><published>2009-12-23T23:34:00.000+05:30</published><updated>2009-12-23T23:34:23.339+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-23T23:34:23.339+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="LinkedIn" /><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="PlanetEclipse" /><title>LinkedIn IT Trends and Compensation Report (Aus-India) 2009</title><content type="html">&lt;div style="text-align: justify;"&gt;LinkedIn’s Technology Trends &amp;amp; Compensation Study Australia - India Report for 2009 was released recently. You may download the PDF from &lt;a href="https://linkedin.box.net/shared/aldfodxog8"&gt;here&lt;/a&gt;. Apart from various trends, I found a couple for slides with a mention of Eclipse too.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;1. Eclipse is the 4th most popular development tool.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_dqhq-tO9EaM/SzJYffVKpMI/AAAAAAAACUE/jAnCsk9uook/s1600-h/misc_linkedin_survey_1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_dqhq-tO9EaM/SzJYffVKpMI/AAAAAAAACUE/jAnCsk9uook/s400/misc_linkedin_survey_1.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I was expecting Eclipse to be in top 5 so being number 4 is not so disappointing. I feel some of the survey participants might have counted Eclipse under 'Other open source dev tools' which is at number 2.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2. 46% developers 'very satisfied' with Eclipse.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_dqhq-tO9EaM/SzJY9PK7tmI/AAAAAAAACUM/N-vSE6HoU_A/s1600-h/misc_linkedin_survey_2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_dqhq-tO9EaM/SzJY9PK7tmI/AAAAAAAACUM/N-vSE6HoU_A/s400/misc_linkedin_survey_2.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Eclipse got second highest votes for 'very satisfied'. Surprisingly second to Apple!! What can I say. May be because I don't have a iPhone :-) But even more shocking was SAP better than Apple and Eclipse in average scores. Now I have seen only one SAP application and that sucks bad. Perhaps they really are doing a fantastic job.&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Since the report from Australia-India geo its a partial view. Am sure this pictures differs a lot from the one at global level.&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5914783-5332508916908623390?l=blog.ankursharma.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EclipsePdeAndMe/~4/hkxOSdhE9yc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.ankursharma.org/feeds/5332508916908623390/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5914783&amp;postID=5332508916908623390" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/5332508916908623390?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/5332508916908623390?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/EclipsePdeAndMe/~3/hkxOSdhE9yc/linkedin-it-trends-and-compensation.html" title="LinkedIn IT Trends and Compensation Report (Aus-India) 2009" /><author><name>Ankur Sharma</name><uri>http://www.blogger.com/profile/17061727296754376984</uri><email>sharma.ankur@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="16521799200073626060" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_dqhq-tO9EaM/SzJYffVKpMI/AAAAAAAACUE/jAnCsk9uook/s72-c/misc_linkedin_survey_1.JPG" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://blog.ankursharma.org/2009/12/linkedin-it-trends-and-compensation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MMQngzeCp7ImA9WxBTEk0.&quot;"><id>tag:blogger.com,1999:blog-5914783.post-2629522014730619552</id><published>2009-12-07T21:28:00.000+05:30</published><updated>2009-12-07T21:28:03.680+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-07T21:28:03.680+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Heap Status" /><category scheme="http://www.blogger.com/atom/ns#" term="Heap" /><category scheme="http://www.blogger.com/atom/ns#" term="PlanetEclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="Preferences" /><category scheme="http://www.blogger.com/atom/ns#" term="Quick Tip" /><category scheme="http://www.blogger.com/atom/ns#" term="Heap Size" /><title>Heap Status</title><content type="html">If you wish to keep an eye on heap status of your eclipse instance then a quick way to do it is 'Heap Status' preference. You don't need any memory profiler for this.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_dqhq-tO9EaM/Sx0hiezDlvI/AAAAAAAACT0/2dlOQQCFlU8/s1600-h/preferences_heap_status.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_dqhq-tO9EaM/Sx0hiezDlvI/AAAAAAAACT0/2dlOQQCFlU8/s400/preferences_heap_status.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
This starts displaying the heap status in the status bar.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_dqhq-tO9EaM/Sx0iwb-nFvI/AAAAAAAACT8/JB6-45mFBDM/s1600-h/statusbar_heap_status.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_dqhq-tO9EaM/Sx0iwb-nFvI/AAAAAAAACT8/JB6-45mFBDM/s320/statusbar_heap_status.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The garbage can icon is for running the Garbage Collection. It basically makes call to &lt;code&gt;System.gc()&lt;/code&gt; and &lt;code&gt;System.runFinalization()&lt;/code&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5914783-2629522014730619552?l=blog.ankursharma.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EclipsePdeAndMe/~4/0ja7X01p6GA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.ankursharma.org/feeds/2629522014730619552/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5914783&amp;postID=2629522014730619552" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/2629522014730619552?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/2629522014730619552?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/EclipsePdeAndMe/~3/0ja7X01p6GA/heap-status.html" title="Heap Status" /><author><name>Ankur Sharma</name><uri>http://www.blogger.com/profile/17061727296754376984</uri><email>sharma.ankur@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="16521799200073626060" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_dqhq-tO9EaM/Sx0hiezDlvI/AAAAAAAACT0/2dlOQQCFlU8/s72-c/preferences_heap_status.JPG" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://blog.ankursharma.org/2009/12/heap-status.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0AASXw8eCp7ImA9WxNbF0g.&quot;"><id>tag:blogger.com,1999:blog-5914783.post-3941216540037745332</id><published>2009-11-21T03:19:00.003+05:30</published><updated>2009-11-21T03:52:28.270+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-21T03:52:28.270+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="output.." /><category scheme="http://www.blogger.com/atom/ns#" term="source.." /><category scheme="http://www.blogger.com/atom/ns#" term="Source Folders" /><category scheme="http://www.blogger.com/atom/ns#" term="Java Build Path" /><category scheme="http://www.blogger.com/atom/ns#" term="PlanetEclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="build.properties" /><category scheme="http://www.blogger.com/atom/ns#" term="Output Folders" /><title>source.&lt;library&gt; and output.&lt;library&gt;</title><content type="html">&lt;div style="text-align: justify;"&gt;The source and output properties in build.properties control the folders to be compiled and where to place the resulting output. The &lt;a href="http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.pde.doc.user/reference/pde_feature_generating_build.htm" linkindex="126"&gt;eclipse help&lt;/a&gt; briefly talks about it.&lt;br /&gt;
&lt;/div&gt;&lt;pre class="brush: text"&gt;    * source.&amp;lt;library&amp;gt; - lists source folders that will be compiled (e.g. source.xyz.jar=src/, src-ant/). If the library is specified in your plug-in.xml or manifest.mf, the value should match it;
    * output.&amp;lt;library&amp;gt; - lists the output folder receiving the result of the compilation;
&lt;/pre&gt;&lt;br /&gt;
&lt;b&gt;Source Folders and Output Folders&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Source and Output folder have already been discussed in &lt;a href="http://blog.ankursharma.org/2009/10/source-folders-and-srcincludes_11.html" linkindex="127"&gt;this&lt;/a&gt; post. Only the source folders gets compiled and the generated class files get stored in the corresponding output folder. A project can have one or more source folder. If a source folder does not have a output folder attached to it explicitly, its output will go to the default output folder. The &lt;code&gt;.classpath&lt;/code&gt; file stores all this information.&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;source.. and output..&lt;/b&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The real syntax is source.&amp;lt;library&amp;gt; and output.&amp;lt;library&amp;gt; where &amp;lt;library&amp;gt; is generally the name of the jar. Here the second dot signifies the default library. Any source folder assigned to it gets it output reside in the root when the plug-in is build. The &lt;code&gt;output..&lt;/code&gt; entry tells the PDE Build where to pick the classes for &lt;code&gt;source..&lt;/code&gt; from. &lt;br /&gt;
&lt;/div&gt;Typical entries look like this&lt;br /&gt;
&lt;pre class="brush: text"&gt;source.. = src/
output.. = bin/
&lt;/pre&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;When a plug-in with above entries is build the structure of the plug-in jar will look like this&lt;br /&gt;
&lt;/div&gt;&lt;pre&gt;org.example.sample_1.0.0
│   plugin.xml
│
├───icons
│       sample.gif
│
├───META-INF
│       MANIFEST.MF
│
└───org
    └───example
        └───sample
            │   Activator.class
            │
            └───actions
                    SampleAction.class
&lt;/pre&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;More complex plug-ins have more than one source folder. org.eclipse.pde.core is one such plug-in. It is good practice to assign separate output folder for separate source folders. This is not mandatory.&lt;br /&gt;
Lets assume &lt;code&gt;src&lt;/code&gt; and &lt;code&gt;src_an&lt;/code&gt; are the two source folders and their corresponding output folders are &lt;code&gt;bin&lt;/code&gt; and &lt;code&gt;bin_ant&lt;/code&gt;. Then a &lt;code&gt;build.properties&lt;/code&gt; like &lt;br /&gt;
&lt;/div&gt;&lt;pre class="brush: text"&gt;source.. = src/
output.. = bin/
source.ant_tasks/anttasks.jar = src_ant/
output.ant_tasks/anttasks.jar = bin_ant/
&lt;/pre&gt;will create a plug-in which will look something like this&lt;br /&gt;
&lt;pre&gt;org.example.sample_1.0.0
│   plugin.xml
│
├───ant_tasks
│       anttasks.jar
│
├───icons
│       sample.gif
│
├───META-INF
│       MANIFEST.MF
│
└───org
    └───example
        └───sample
            │   Activator.class
            │
            └───actions
                    SampleAction.class
&lt;/pre&gt;&lt;div style="text-align: justify;"&gt;The contents of the &lt;code&gt;src_ant&lt;/code&gt; folder will get compiled and jared in to &lt;code&gt;anttasks.jar&lt;/code&gt; inside &lt;code&gt;ant_tasks&lt;/code&gt; folder because of the &lt;code&gt;source.ant_tasks/anttasks.jar = src_ant/&lt;/code&gt; entry.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Classpath vs source/output entries&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;The source folder and output folder information is already available in class path then why source/output entries are needed? The classpath entries are used to compile source code. But the PDE Build relies on the source/output entries while building (or exporting) the plug-ins. Suppose a plug-in A refers to a class C in plug-in B. Then while building the plug-in A PDE Build will look into &lt;code&gt;build.properties&lt;/code&gt; of plug-in B to locate the &lt;code&gt;C.class&lt;/code&gt;.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Rules of using source. and output. entries&lt;/b&gt;&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Every source folder should appear in a source. entry.&lt;/li&gt;
&lt;li&gt;A source folder can appear in one and only one source. entry.&lt;/li&gt;
&lt;li&gt;The source and output folders are specified as their path relative to the root of the project.&lt;/li&gt;
&lt;li&gt;All source folders whose output folder is same should belong to same source. entry.&lt;/li&gt;
&lt;li&gt;The corresponding output folders should be mentioned in the corresponding output.entry.&lt;br /&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;div style="text-align: justify;"&gt;Note that &lt;i&gt;should&lt;/I&gt; in above rules means that rule is a good practice and not an obligation but if not followed the result of PDE Build might be unexpected.&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5914783-3941216540037745332?l=blog.ankursharma.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EclipsePdeAndMe/~4/zirWa4-tYzA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.ankursharma.org/feeds/3941216540037745332/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5914783&amp;postID=3941216540037745332" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/3941216540037745332?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/3941216540037745332?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/EclipsePdeAndMe/~3/zirWa4-tYzA/source-and-output.html" title="source.&amp;lt;library&amp;gt; and output.&amp;lt;library&amp;gt;" /><author><name>Ankur Sharma</name><uri>http://www.blogger.com/profile/17061727296754376984</uri><email>sharma.ankur@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="16521799200073626060" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.ankursharma.org/2009/11/source-and-output.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UMSHcyfSp7ImA9WxNUEk4.&quot;"><id>tag:blogger.com,1999:blog-5914783.post-8630080817528995268</id><published>2009-10-21T06:51:00.003+05:30</published><updated>2009-11-03T14:38:09.995+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-03T14:38:09.995+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="enumIdentifier" /><category scheme="http://www.blogger.com/atom/ns#" term="Execution Environment" /><category scheme="http://www.blogger.com/atom/ns#" term="Compilation Environment" /><category scheme="http://www.blogger.com/atom/ns#" term="jre.compilation.profile" /><category scheme="http://www.blogger.com/atom/ns#" term="assertIdentifer" /><category scheme="http://www.blogger.com/atom/ns#" term="javacWarnings" /><category scheme="http://www.blogger.com/atom/ns#" term="javacTarget" /><category scheme="http://www.blogger.com/atom/ns#" term="javacSource" /><category scheme="http://www.blogger.com/atom/ns#" term="Bundle-RequiredExecutionEnvironment" /><category scheme="http://www.blogger.com/atom/ns#" term="PlanetEclipse" /><title>Execution Environment and javac entries</title><content type="html">&lt;b&gt;Execution Environment&lt;/b&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Execution Environments have been explained in detail in this &lt;a href="http://wiki.eclipse.org/index.php/Execution_Environments" linkindex="20" target="_blank"&gt;article&lt;/a&gt;. And from PDE API tooling perspective it has been explained &lt;a href="http://wiki.eclipse.org/PDE/Resources/Execution_Environments" linkindex="21" target="_blank"&gt;here&lt;/a&gt;. In one line, EE represents the JRE. It is a set of properties, each marking a level of compliance. I am reproducing this table from '&lt;a href="http://help.eclipse.org/galileo/topic/org.eclipse.pde.doc.user/tasks/pde_compilation_env.htm" linkindex="22" target="_blank"&gt;Setting the Compilation Environment&lt;/a&gt;' help page.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;table border="1" cellpadding="1" cellspacing="1" style="height: 54px; margin-left: auto; margin-right: auto; text-align: left; width: 60%;"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td style="text-align: center; vertical-align: top;"&gt;Environment&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;Source&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;Target&lt;br /&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td style="vertical-align: top;"&gt;CDC-1.0/Foundation-1.0&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.3&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.1&lt;br /&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td style="vertical-align: top;"&gt;CDC-1.1/Foundation-1.1&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.3&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.2&lt;br /&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td style="vertical-align: top;"&gt;OSGi/Minimum-1.0&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.3&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.1&lt;br /&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td style="vertical-align: top;"&gt;OSGi/Minimum-1.1&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.3&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.2&lt;br /&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td style="vertical-align: top;"&gt;JRE-1.1&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.1&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.1&lt;br /&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td style="vertical-align: top;"&gt;J2SE-1.2&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.2&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.1&lt;br /&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td style="vertical-align: top;"&gt;J2SE-1.3&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.3&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.1&lt;br /&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td style="vertical-align: top;"&gt;J2SE-1.4&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.3&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.2&lt;br /&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td style="vertical-align: top;"&gt;J2SE-1.5&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.5&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.5&lt;br /&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td style="vertical-align: top;"&gt;JavaSE-1.6&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.6&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.6&lt;br /&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td style="vertical-align: top;"&gt;PersonalJava-1.1&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.1&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.1&lt;br /&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td style="vertical-align: top;"&gt;PersonalJava-1.2&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.1&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.1&lt;br /&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td style="vertical-align: top;"&gt;CDC-1.0/PersonalBasis-1.0&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.3&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.1&lt;br /&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td style="vertical-align: top;"&gt;CDC-1.0/PersonalJava-1.0&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.3&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.1&lt;br /&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td style="vertical-align: top;"&gt;CDC-1.1/PersonalBasis-1.1&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.3&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.2&lt;br /&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td style="vertical-align: top;"&gt;CDC-1.1/PersonalJava-1.1&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.3&lt;br /&gt;
&lt;/td&gt; &lt;td style="vertical-align: top;"&gt;1.2&lt;br /&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;There are more properties and are provided by &lt;i&gt;org.eclipse.jdt.core&lt;/i&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;i&gt;org.eclipse.jdt.launching&lt;/i&gt; plug-in provides an extension point (id =  &lt;i&gt;org.eclipse.jdt.launching.executionEnvironments&lt;/i&gt;) for contributing EEs. JDT Launching plug-in also extends it and provides the EEs that are listed in the above table. If you really want to see the code then check out &lt;i&gt;JavaCore.java &lt;/i&gt;and &lt;i&gt;CompilerOptions.java&lt;/i&gt; in &lt;i&gt;org.eclipse.jdt.core&lt;/i&gt; plug-in.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;b&gt;Manifest.MF&lt;/b&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;The execution environment for a bundle can be  defined in the Manifest.MF file. A typical entry for Java 1.4 environment will look like this.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;pre style="text-align: justify;"&gt;Bundle-RequiredExecutionEnvironment: J2SE-1.4&lt;/pre&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;The manifest editor provides an easier way on the &lt;i&gt;Overview &lt;/i&gt;tab.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_dqhq-tO9EaM/Su_x2BiuAMI/AAAAAAAACQk/r8pIfrqK64I/s1600-h/manifest_overview_ee_1.JPG" imageanchor="1" linkindex="23" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="174" src="http://4.bp.blogspot.com/_dqhq-tO9EaM/Su_x2BiuAMI/AAAAAAAACQk/r8pIfrqK64I/s320/manifest_overview_ee_1.JPG" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;blockquote&gt;Execution Environment section on Overview page of Manifest Editor&lt;br /&gt;
&lt;/blockquote&gt;&lt;/div&gt;&lt;br /&gt;
The &lt;i&gt;Add&lt;/i&gt; button opens a selection dialog with the list of available execution environments (contributed to the extension point &lt;i&gt;org.eclipse.jdt.launching.executionEnvironments&lt;/i&gt;). By default the list is same as those listed in the table above.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="font-weight: bold;"&gt;jre.compilation.profile&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;The execution environment in build.properties is mentioned using the &lt;i&gt;jre.compilation.profile&lt;/i&gt; entry. It takes same value as BREE entry in manifest.MF. Thus, the entry for Java 1.4 will look like this.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;pre&gt;jre.compilation.profile = J2SE-1.4
&lt;/pre&gt;&lt;br /&gt;
&lt;b&gt;javacSource, javacTarget and javacWarnings&lt;/b&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;These entries can be used to override the jre.compilation.profile entry in build.properties. A certain EE mandates a particular version for Java source and generated class file compliance. These versions can be overridden using these entries. These entries can be used without jre profile entry as well. If you just want to specify the java source version then only javacSource entry will suffice.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Looking at the table above we can see that J2SE-1.4 is Java source at version 1.3 and class files version 1.2 compliant. This can be mentioned in build.properties as&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;pre&gt;javacSource = 1.3
javacTarget = 1.2&lt;/pre&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Please note that the above two entries are not equivalent to jre profile entry for J2SE-1.4. This is because an EE is other properties too like system packages, boot delegation, assert and enum identifiers. See the schema description for the EE extension point discussed above.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Eclipse uses batch compiler to build the plug-ins. It is located inside org.eclipse.jdt.core. Since version 3.2, it is also available as separate download - ecj.jar - Eclipse Compiler for Java. The batch compiler accepts many options and a list and details can be found &lt;a href="http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.jdt.doc.isv/guide/jdt_api_compile.htm" linkindex="24" target="_blank"&gt;here&lt;/a&gt;. The javacSource and javacTarget entries map to -source and -target options.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;javacWarnings.&amp;lt;library&amp;gt; entry is used to pass the warning options (-warn) to the compiler. The entry to suppress warnings for assert and enum identifiers in library.jar will look like this&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;pre style="text-align: justify;"&gt;javacWarnings.library.jar = -assertIdentifer, -enumIdentifier&lt;/pre&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5914783-8630080817528995268?l=blog.ankursharma.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EclipsePdeAndMe/~4/O7OzQ0tYNXs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.ankursharma.org/feeds/8630080817528995268/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5914783&amp;postID=8630080817528995268" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/8630080817528995268?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/8630080817528995268?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/EclipsePdeAndMe/~3/O7OzQ0tYNXs/execution-environment-and-javac-entries_21.html" title="Execution Environment and javac entries" /><author><name>Ankur Sharma</name><uri>http://www.blogger.com/profile/17061727296754376984</uri><email>sharma.ankur@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="16521799200073626060" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_dqhq-tO9EaM/Su_x2BiuAMI/AAAAAAAACQk/r8pIfrqK64I/s72-c/manifest_overview_ee_1.JPG" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.ankursharma.org/2009/10/execution-environment-and-javac-entries_21.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UCQX49fyp7ImA9WxNUEk4.&quot;"><id>tag:blogger.com,1999:blog-5914783.post-3345930744177584700</id><published>2009-10-15T06:44:00.002+05:30</published><updated>2009-11-03T14:37:40.067+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-03T14:37:40.067+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Demo Camp" /><category scheme="http://www.blogger.com/atom/ns#" term="PlanetEclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse Demo Camp" /><title>Eclipse Demo Camp. Bangalore '09</title><content type="html">&lt;div style="text-align: justify;"&gt;This year's &lt;a href="http://wiki.eclipse.org/Eclipse_DemoCamps_November_2009/Bangalore" linkindex="17" target="_blank"&gt;Eclipse Demo Camp at Bangalore&lt;/a&gt; will be held on November 5, 2009. Various demos have already been lined up on topics like GEF 3D, SWTBot, Jazz, XText, E4 and JSDT. If you are working on some cool stuff and want to share it with Eclipse community then this is your best chance. Do get in touch as there is still room for couple of more demos.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;30 participants from 15 different companies like IBM, HP, Oracle, Nokia, Bosch, Infosys&amp;nbsp; and ThoughtWorks (to name a few) have already registered. There are limited seats available so hurry up if you want to catch all the cool stuff Eclipse community is doing. Registration is free and available on First-come-First-serve basis. Details at &lt;a href="http://wiki.eclipse.org/Eclipse_DemoCamps_November_2009/Bangalore#Presenters" linkindex="18" target="_blank"&gt;Eclipse Wiki&lt;/a&gt;.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
See you there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5914783-3345930744177584700?l=blog.ankursharma.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EclipsePdeAndMe/~4/7wiCWHx9pd4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.ankursharma.org/feeds/3345930744177584700/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5914783&amp;postID=3345930744177584700" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/3345930744177584700?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/3345930744177584700?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/EclipsePdeAndMe/~3/7wiCWHx9pd4/eclipse-demo-camp-bangalore_15.html" title="Eclipse Demo Camp. Bangalore &amp;#39;09" /><author><name>Ankur Sharma</name><uri>http://www.blogger.com/profile/17061727296754376984</uri><email>sharma.ankur@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="16521799200073626060" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total><feedburner:origLink>http://blog.ankursharma.org/2009/10/eclipse-demo-camp-bangalore_15.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYGSX44fSp7ImA9WxNUFEg.&quot;"><id>tag:blogger.com,1999:blog-5914783.post-5013412522088097777</id><published>2009-10-11T07:10:00.042+05:30</published><updated>2009-11-06T02:02:08.035+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-06T02:02:08.035+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term=".classpath" /><category scheme="http://www.blogger.com/atom/ns#" term="bin.includes" /><category scheme="http://www.blogger.com/atom/ns#" term="Source Folders" /><category scheme="http://www.blogger.com/atom/ns#" term="Java Build Path" /><category scheme="http://www.blogger.com/atom/ns#" term="src.includes" /><category scheme="http://www.blogger.com/atom/ns#" term="PlanetEclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="src.excludes" /><category scheme="http://www.blogger.com/atom/ns#" term="build.properties" /><category scheme="http://www.blogger.com/atom/ns#" term="bin.excludes" /><title>Source folders and src.includes</title><content type="html">&lt;b&gt;Source Folders&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
A source folder is, of course, a folder which contains source code. But where it is identified is in &lt;i&gt;.classpath&lt;/i&gt; file. This is how a typical &lt;i&gt;.classpath&lt;/i&gt; file looks like.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush:xml"&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;
&amp;lt;classpath&amp;gt;
&amp;lt;classpathentry kind="src" path="src"/&amp;gt;
&amp;lt;classpathentry kind="src" path="src_samples"/&amp;gt;
&amp;lt;classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/&amp;gt;
&amp;lt;classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/&amp;gt;
&amp;lt;classpathentry kind="output" path="bin"/&amp;gt;
&amp;lt;/classpath&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;pre style="text-align: center;"&gt;org.eclipse.pde.ui/.classpath&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;The &lt;i&gt;kind="src"&lt;/i&gt; marks a folder as source folder. Similarly, the &lt;i&gt;kind="output"&lt;/i&gt; marks a folder for output - where all the binaries will go after the build. In Eclipse you don't have to modify/manage the &lt;i&gt;.classpath&lt;/i&gt; file manually.&amp;nbsp;Various wizards are available to do all the work for us such that we never even have to look at &lt;i&gt;.classpath&lt;/i&gt; file.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;New Source Folder Wizard &lt;/b&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Use &lt;i&gt;New&lt;/i&gt; -&amp;gt; &lt;i&gt;Source Folder&lt;/i&gt; from File or context menu to invoke&amp;nbsp;the new source folder&amp;nbsp;wizard. It's a very simple wizard. It asks for the project and the folder name. When you click &lt;i&gt;Finish&lt;/i&gt;, it will create that folder and mark it as source folder.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_dqhq-tO9EaM/SvMxpFgMDFI/AAAAAAAACQ8/JeCXJyc-oW8/s1600-h/new_src_folder_wizard_1.JPG" imageanchor="1" linkindex="25" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_dqhq-tO9EaM/SvMxpFgMDFI/AAAAAAAACQ8/JeCXJyc-oW8/s400/new_src_folder_wizard_1.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;blockquote&gt;New Source Folder Wizard&lt;br /&gt;
&lt;/blockquote&gt;&lt;/div&gt;&lt;div class="mceTemp" style="text-align: justify;"&gt;The way we can check that the folder has been marked as source folder is by opening &lt;i&gt;.classpath&lt;/i&gt; file. But there is a simpler way. Check the &lt;i&gt;Source&lt;/i&gt; tab on the project's &lt;i&gt;Java Build Path&lt;/i&gt; properties page. This can be invoked as &lt;i&gt;Project&lt;/i&gt; -&amp;gt; &lt;i&gt;Properties&lt;/i&gt; or simple &lt;i&gt;Alt + Enter&lt;/i&gt; on the project in Package Explorer view.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_dqhq-tO9EaM/SvMx6N76e8I/AAAAAAAACRE/SsyOX1yS8E0/s1600-h/properties_java_build_path_1.JPG" imageanchor="1" linkindex="26" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_dqhq-tO9EaM/SvMx6N76e8I/AAAAAAAACRE/SsyOX1yS8E0/s400/properties_java_build_path_1.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;blockquote&gt;&lt;div style="text-align: center;"&gt;&lt;blockquote&gt;Java Build Path properties page &lt;br /&gt;
&lt;/blockquote&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div class="mceTemp"&gt;&lt;b&gt;Source Folders and Output Folders&lt;/b&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div class="mceTemp" style="text-align: justify;"&gt;If you notice the check box towards the end "&lt;i&gt;Allow output folders for source folders&lt;/i&gt;" is unchecked. This means the binaries for all the source folders will go to the default output folder (mentioned right below this checkbox, typically named as bin. The bin is for binaries and not like one in recycle bin).&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div class="mceTemp" style="text-align: justify;"&gt;However, we can select this check box and associate a specific output folder for every source folder. This will make the binaries for that particular source folder to get created in the associated folder. Note that this does not makes the associated folder an Output Folder. That is, no &lt;i&gt;kind="output"&lt;/i&gt; entry in &lt;i&gt;.classpath&lt;/i&gt; file. Only the source folder entry gets a &lt;i&gt;output="foldername"&lt;/i&gt; attribute.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_dqhq-tO9EaM/SvMyk4xPznI/AAAAAAAACRM/U2M2bUjrWsQ/s1600-h/properties_java_build_path_2.JPG" imageanchor="1" linkindex="27" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_dqhq-tO9EaM/SvMyk4xPznI/AAAAAAAACRM/U2M2bUjrWsQ/s400/properties_java_build_path_2.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;blockquote&gt;Java Build Path properties page with associated output folders&lt;br /&gt;
&lt;/blockquote&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;build.properties&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The build path only brands the folders are source or otherwise. The actual build and output binaries are controlled by &lt;i&gt;build.properties&lt;/i&gt; file.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;src.includes&lt;/b&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;This entry in &lt;i&gt;build.properties&lt;/i&gt; file specifies the folders whose contents &lt;b&gt;also&lt;/b&gt; needs to be added to the source build. Source build is the source bundle or the source inside the exported plug-in. The emphasis on ALSO is to highlight the fact that the source folder are part of source build by default and they should not be added explicitly using src.includes. In fact, it only cause unwanted side effects as mentioned in &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=286808" linkindex="28"&gt;bug #286808&lt;/a&gt;.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;b&gt;src.excludes&lt;/b&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;This entry explicitly removes a folder from source build. It is used when a parent folder is part of source build and only specific child folder has to be&amp;nbsp; excluded from the source build.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Both these entries take relative folder paths. The &lt;i&gt;Build&lt;/i&gt; tab on the Manifest editor provides a very easy UI to deal with them so that we don't have to add them manually to &lt;i&gt;build.properties&lt;/i&gt;.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_dqhq-tO9EaM/SvMy6seItYI/AAAAAAAACRU/IXDK-5eDMR4/s1600-h/manifest_build_1.JPG" imageanchor="1" linkindex="29" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_dqhq-tO9EaM/SvMy6seItYI/AAAAAAAACRU/IXDK-5eDMR4/s640/manifest_build_1.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;div style="text-align: center;"&gt;Binary and Source build section on Build tab of Manifest editor&lt;br /&gt;
&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;The corresponding build.properties will look like this.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_dqhq-tO9EaM/SvMzOYEwo9I/AAAAAAAACRc/nt9Ze63POFw/s1600-h/manifest_buildproperties_1.JPG" imageanchor="1" linkindex="30" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_dqhq-tO9EaM/SvMzOYEwo9I/AAAAAAAACRc/nt9Ze63POFw/s320/manifest_buildproperties_1.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;blockquote&gt;&lt;div style="text-align: center;"&gt;build.properties&lt;br /&gt;
&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Similarly the &lt;i&gt;bin.includes&lt;/i&gt; and &lt;i&gt;bin.excludes&lt;/i&gt; are used to control the folders involved in the binary build. Again, notice that source folders and files like .classpath, MANIFEST.MF and plugin.xml have not been added to src.includes because they are not required in source build.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5914783-5013412522088097777?l=blog.ankursharma.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EclipsePdeAndMe/~4/1XKoAnQEewM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.ankursharma.org/feeds/5013412522088097777/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5914783&amp;postID=5013412522088097777" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/5013412522088097777?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/5013412522088097777?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/EclipsePdeAndMe/~3/1XKoAnQEewM/source-folders-and-srcincludes_11.html" title="Source folders and src.includes" /><author><name>Ankur Sharma</name><uri>http://www.blogger.com/profile/17061727296754376984</uri><email>sharma.ankur@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="16521799200073626060" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_dqhq-tO9EaM/SvMxpFgMDFI/AAAAAAAACQ8/JeCXJyc-oW8/s72-c/new_src_folder_wizard_1.JPG" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://blog.ankursharma.org/2009/10/source-folders-and-srcincludes_11.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMAQn09eyp7ImA9WxNUFEg.&quot;"><id>tag:blogger.com,1999:blog-5914783.post-58363823705303545</id><published>2009-09-19T22:40:00.002+05:30</published><updated>2009-11-06T02:07:23.363+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-06T02:07:23.363+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Table of Contents" /><category scheme="http://www.blogger.com/atom/ns#" term="Helios" /><category scheme="http://www.blogger.com/atom/ns#" term="Context Help" /><category scheme="http://www.blogger.com/atom/ns#" term="Source Page" /><category scheme="http://www.blogger.com/atom/ns#" term="Spell Check" /><category scheme="http://www.blogger.com/atom/ns#" term="3.6" /><category scheme="http://www.blogger.com/atom/ns#" term="Cheat Sheet" /><category scheme="http://www.blogger.com/atom/ns#" term="PlanetEclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="3.6 M2" /><title>[3.6 M2] Spelling check on help editor source pages</title><content type="html">&lt;div style="text-align: justify;"&gt;In &lt;a href="http://download.eclipse.org/eclipse/downloads/drops/S-3.6M2-200909170100/index.php" linkindex="111"&gt;3.6 Milestone 2&lt;/a&gt; spelling check will also be available on help editor source pages (&lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=286203" linkindex="112" target="_blank"&gt;bug 286203&lt;/a&gt;). By help editors I mean &lt;a href="http://help.eclipse.org/galileo/topic/org.eclipse.pde.doc.user/guide/tools/editors/ctx_help_editor/ctx_help_editor.htm" linkindex="113" target="_blank"&gt;Context Help editor&lt;/a&gt;, &lt;a href="http://help.eclipse.org/galileo/topic/org.eclipse.pde.doc.user/guide/tools/editors/toc_editor/editor.htm" linkindex="114" target="_blank"&gt;Table of Contents editor&lt;/a&gt; and &lt;a href="http://help.eclipse.org/galileo/topic/org.eclipse.pde.doc.user/guide/tools/editors/simple_cs_editor/editor.htm" linkindex="115" target="_blank"&gt;Cheat Sheet editor&lt;/a&gt;. These editors has a source page which reveals the actual XML contents of the files. The page will now check spelling for all the quoted strings (Text enclosed with single or double quotes). The XML comments, tags and attributes will be excluded from spell checking.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_dqhq-tO9EaM/SvM2tdjddzI/AAAAAAAACRk/OEvDcTDZcRg/s1600-h/cheatsheeteditor_sourcepage_1.JPG" imageanchor="1" linkindex="116" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_dqhq-tO9EaM/SvM2tdjddzI/AAAAAAAACRk/OEvDcTDZcRg/s640/cheatsheeteditor_sourcepage_1.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;blockquote&gt;&lt;div style="text-align: center;"&gt;Cheat Sheet Editor - Source Page&lt;br /&gt;
&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;The spelling errors are marked with usual annotations that you would find in any other place such as properties file. Quick fix will be available for these annotations, suggesting the possible correct spellings.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_dqhq-tO9EaM/SvM3Ana1RKI/AAAAAAAACRs/M5oYb1zzEt8/s1600-h/cheatsheeteditor_sourcepage_2.JPG" imageanchor="1" linkindex="117" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_dqhq-tO9EaM/SvM3Ana1RKI/AAAAAAAACRs/M5oYb1zzEt8/s640/cheatsheeteditor_sourcepage_2.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;blockquote&gt;&lt;div style="text-align: center;"&gt;Quick fixing spelling errors&lt;br /&gt;
&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;Customizing spelling check preferences&lt;/b&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;The spell check options can be controlled from the &lt;a href="http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.platform.doc.user/reference/ref-36.htm" linkindex="118" target="_blank"&gt;Spelling Preference page&lt;/a&gt;. See &lt;i&gt;Windows &lt;/i&gt;-&amp;gt; &lt;i&gt;Preferences &lt;/i&gt;-&amp;gt; &lt;i&gt;General &lt;/i&gt;-&amp;gt; &lt;i&gt;Editors &lt;/i&gt;-&amp;gt; &lt;i&gt;Text Editors &lt;/i&gt;-&amp;gt; &lt;i&gt;Spelling&lt;/i&gt;.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_dqhq-tO9EaM/SvM3SW8mN4I/AAAAAAAACR0/x2x0k7HeFwg/s1600-h/preferences_spelling_1.JPG" imageanchor="1" linkindex="119" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_dqhq-tO9EaM/SvM3SW8mN4I/AAAAAAAACR0/x2x0k7HeFwg/s400/preferences_spelling_1.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;blockquote&gt;&lt;div style="text-align: center;"&gt;Spelling Preferences page&lt;br /&gt;
&lt;/div&gt;&lt;/blockquote&gt;This page controls the dictionary and spell checking rules.&lt;div style="text-align: justify;"&gt;Few more enhancements are already planned specific to the XML format of these help files. See &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=289926" linkindex="120" target="_blank"&gt;bug 289926&lt;/a&gt;. Feel free to add anything to it that you feel will make life easier.&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5914783-58363823705303545?l=blog.ankursharma.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EclipsePdeAndMe/~4/xdX_ar_hy-w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.ankursharma.org/feeds/58363823705303545/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5914783&amp;postID=58363823705303545" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/58363823705303545?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/58363823705303545?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/EclipsePdeAndMe/~3/xdX_ar_hy-w/36-m2-spelling-check-on-help-editor_19.html" title="[3.6 M2] Spelling check on help editor source pages" /><author><name>Ankur Sharma</name><uri>http://www.blogger.com/profile/17061727296754376984</uri><email>sharma.ankur@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="16521799200073626060" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_dqhq-tO9EaM/SvM2tdjddzI/AAAAAAAACRk/OEvDcTDZcRg/s72-c/cheatsheeteditor_sourcepage_1.JPG" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://blog.ankursharma.org/2009/09/36-m2-spelling-check-on-help-editor_19.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MERn0-cSp7ImA9WxNUEk4.&quot;"><id>tag:blogger.com,1999:blog-5914783.post-9222926506055466480</id><published>2009-08-29T06:06:00.002+05:30</published><updated>2009-11-03T14:40:07.359+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-03T14:40:07.359+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Xmx" /><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse.ini" /><category scheme="http://www.blogger.com/atom/ns#" term="vm" /><category scheme="http://www.blogger.com/atom/ns#" term="VM Arguments" /><category scheme="http://www.blogger.com/atom/ns#" term="Search Term" /><category scheme="http://www.blogger.com/atom/ns#" term="Xms" /><category scheme="http://www.blogger.com/atom/ns#" term="Heap Size" /><category scheme="http://www.blogger.com/atom/ns#" term="vmargs" /><title>VM Arguments in Eclipse</title><content type="html">&lt;b&gt;Eclipse.ini&lt;/b&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Eclipse.ini has been explained in detail &lt;a href="http://wiki.eclipse.org/Eclipse.ini" linkindex="21" target="_blank"&gt;here&lt;/a&gt;. It is used to control the Eclipse start up. This text file will contain the options that can also be provided from command line when invoking Eclipse.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Two of them are -vm and -vmargs. These and other such arguments have been explained &lt;a href="http://help.eclipse.org/stable/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/misc/runtime-options.html" linkindex="22" target="_blank"&gt;here&lt;/a&gt; in detail.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;-vm &amp;lt;path to java vm&amp;gt; (Executable, Main)&lt;br /&gt;
This is the path to the JRE/JDK which will be used to run Eclipse. Eclipse supports Java 1.42 and above. The path should be absolute. The path should point to the bin folder but can also point to java.exe, java lib folder or the Java VM execution environment description file (whatever that is). The path should follow&amp;nbsp; -vm and should one the separate line right after it.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;pre&gt;-vm
C:\Program Files\IBM\Java50\bin&lt;/pre&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;This path is copied to &lt;i&gt;eclipse.vm&lt;/i&gt; and can be accessed at runtime using &lt;i&gt;System.getProperty("eclipse.vm")&lt;/i&gt;.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;-vmargs [vmargs*] (Executable,     Main)&lt;br /&gt;
These are arguments are passed as is to JVM. Used to configure JVM that would run Eclipse. This should be last argument in eclipse.ini as anything that follows it is passed to JVM and eclipse doesn't bothers about it. Again, the value is available as system property "&lt;i&gt;eclipse.vmargs&lt;/i&gt;" at runtime.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;A typical eclipse.ini will have -Xms and -Xmx following the -vmargs. They define the minimum and maximum heap size respectively. Again, each argument has to be defined on a separate line.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;-vmargs
-Xms40m
-Xmx256m&lt;/pre&gt;&lt;br /&gt;
This means the JVM launching Eclipse will have minimum heap size of 40 MB and a max of 256MB.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Target Definition&lt;/b&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;The target definition editor or wizard has an &lt;i&gt;Arguments&lt;/i&gt; tab. This page has a section which deals with VM Arguments. The VM Arguments specified here are used to initialize the Run configurations. This section has an &lt;i&gt;Import&lt;/i&gt;... button which produces an &lt;a href="http://help.eclipse.org/galileo/topic/org.eclipse.pde.doc.user/guide/tools/target_shared/import_arguments_dialog.htm" linkindex="23" target="_blank"&gt;&lt;i&gt;Import Arguments&lt;/i&gt; dialog&lt;/a&gt;. The import argument dialog scans the selected bundle containers and presents the VM Arguments from them. They do have no effect on build.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;b&gt;Run Configuration&lt;/b&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;The run configurations generally have an &lt;i&gt;Arguments&lt;/i&gt; tab. This tab has a section for VM Arguments. Values specified here are sent to the JVM while launching.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;The &lt;i&gt;Eclipse Application Run Configuration&lt;/i&gt; defaults the VM Arguments from the active target platform.&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5914783-9222926506055466480?l=blog.ankursharma.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EclipsePdeAndMe/~4/EiE-UKPVrHA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.ankursharma.org/feeds/9222926506055466480/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5914783&amp;postID=9222926506055466480" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/9222926506055466480?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/9222926506055466480?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/EclipsePdeAndMe/~3/EiE-UKPVrHA/vm-arguments-in-eclipse_29.html" title="VM Arguments in Eclipse" /><author><name>Ankur Sharma</name><uri>http://www.blogger.com/profile/17061727296754376984</uri><email>sharma.ankur@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="16521799200073626060" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://blog.ankursharma.org/2009/08/vm-arguments-in-eclipse_29.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQHRHg-eyp7ImA9WxNUEko.&quot;"><id>tag:blogger.com,1999:blog-5914783.post-8545910382992509322</id><published>2009-08-20T07:03:00.002+05:30</published><updated>2009-11-03T23:15:35.653+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-03T23:15:35.653+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PDE" /><category scheme="http://www.blogger.com/atom/ns#" term="Install" /><category scheme="http://www.blogger.com/atom/ns#" term="Search Term" /><title>how do i install pde</title><content type="html">&lt;div style="text-align: justify;"&gt;PDE or Plug-in Development Environment is part of Eclipse SDK. If you have using &lt;a href="http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/galileor" linkindex="21" target="_blank"&gt;Eclipde IDE for Java Developers&lt;/a&gt; or some other distribution like this then you will have only Eclipse Platform and not the &lt;a href="http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/R-3.5-200906111540/eclipse-SDK-3.5-win32.zip" linkindex="22" target="_blank"&gt;SDK&lt;/a&gt;. The various distribution packages are listed &lt;a href="http://www.eclipse.org/downloads/packages/" linkindex="23" target="_blank"&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;The SDK can be installed from the &lt;a href="http://wiki.eclipse.org/Eclipse_Project_Update_Sites" linkindex="24" target="_blank"&gt;update site&lt;/a&gt;. The URL for Galeleo repository is Galileo - &lt;a href="http://download.eclipse.org/releases/galileo" linkindex="25" target="_blank"&gt;http://download.eclipse.org/releases/galileo&lt;/a&gt;. Use &lt;i&gt;Help &amp;gt; Install new software...&lt;/i&gt; to install the new features to your existing eclipse installation.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Only PDE too can be installed. Open the Install (new software) wizard and use link mentioned above. Filter the results for "Eclipse plug-in development environment". The PDE will be available as "Eclipse plug-in development environment" under "General Purpose Tools" category.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_dqhq-tO9EaM/SvBYqEX2pRI/AAAAAAAACQ0/7Pt1CVF_HeM/s1600-h/install_pde.JPG" imageanchor="1" linkindex="26" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_dqhq-tO9EaM/SvBYqEX2pRI/AAAAAAAACQ0/7Pt1CVF_HeM/s400/install_pde.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;blockquote&gt;Install wizard&lt;br /&gt;
&lt;/blockquote&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;And how to install Eclipse? Well, there is no installer. Just download it and unzip it wherever you wish on your hard disk. To uninstall, just delete it. Eclipse needs JRE (or JDK) 1.4.2 or above. So make sure one is available in your path settings.&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5914783-8545910382992509322?l=blog.ankursharma.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EclipsePdeAndMe/~4/DEKucgmUfck" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.ankursharma.org/feeds/8545910382992509322/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5914783&amp;postID=8545910382992509322" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/8545910382992509322?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/8545910382992509322?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/EclipsePdeAndMe/~3/DEKucgmUfck/how-do-i-install-pde_20.html" title="how do i install pde" /><author><name>Ankur Sharma</name><uri>http://www.blogger.com/profile/17061727296754376984</uri><email>sharma.ankur@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="16521799200073626060" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_dqhq-tO9EaM/SvBYqEX2pRI/AAAAAAAACQ0/7Pt1CVF_HeM/s72-c/install_pde.JPG" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.ankursharma.org/2009/08/how-do-i-install-pde_20.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YCR3wzeip7ImA9WxNUFEg.&quot;"><id>tag:blogger.com,1999:blog-5914783.post-4852621545638572218</id><published>2009-08-19T18:45:00.004+05:30</published><updated>2009-11-06T02:36:06.282+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-06T02:36:06.282+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Custom Editor" /><category scheme="http://www.blogger.com/atom/ns#" term="TextSourceViewerConfiguration" /><category scheme="http://www.blogger.com/atom/ns#" term="RuleBasedPartitionScanner" /><category scheme="http://www.blogger.com/atom/ns#" term="Spell Check" /><category scheme="http://www.blogger.com/atom/ns#" term="XML" /><category scheme="http://www.blogger.com/atom/ns#" term="PlanetEclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="SpellingReconcileStrategy" /><category scheme="http://www.blogger.com/atom/ns#" term="SourceViewerConfiguration" /><title>Adding SpellChecking to custom editors</title><content type="html">&lt;div style="text-align: justify;"&gt;Eclipse provides a nice framework to use spell checking in dialog and editors. Chris has tipped about it &lt;a href="http://eclipsesource.com/blogs/2008/10/03/tip-spellchecking-in-eclipse/" linkindex="58" target="_blank"&gt;here&lt;/a&gt;. However, if you are using a custom editor then you have to put few pieces together yourself. Consider an XML editor. We would want the spelling check only for the string in attribute values and not the XML Tags.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Let us try and implement this. We can start with the XML editor template provided by PDE.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;1. Create a new plug-in using "&lt;i&gt;Plug-in with an Editor&lt;/i&gt;" template.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_dqhq-tO9EaM/SvM3zlxQ9HI/AAAAAAAACR8/AhM0EE53Lb0/s1600-h/new_plugin_wizard_xmleditor.JPG" imageanchor="1" linkindex="59" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_dqhq-tO9EaM/SvM3zlxQ9HI/AAAAAAAACR8/AhM0EE53Lb0/s640/new_plugin_wizard_xmleditor.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;blockquote&gt;&lt;div style="text-align: center;"&gt;New Plug-in Wizard&lt;br /&gt;
&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;2.&amp;nbsp; This will create a simple XML Editor by extending &lt;a href="http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/api/org/eclipse/ui/editors/text/TextEditor.html" linkindex="60" target="_blank"&gt;TextEditor&lt;/a&gt;.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;3. The XMLEditor uses XMLConfiguration to set the source viewer configuration.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;pre class="brush:java"&gt;public XMLEditor() {
 super();
 colorManager = new ColorManager();
 setSourceViewerConfiguration(new XMLConfiguration(colorManager));
 setDocumentProvider(new XMLDocumentProvider());
}
&lt;/pre&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
Modify the constructor for XMLConfiguration and pass the preference store. It will be needed by its super class.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;pre class="brush:java"&gt;public XMLEditor() {
 super();
 colorManager = new ColorManager();
 setSourceViewerConfiguration(new XMLConfiguration(colorManager, getPreferenceStore()));
 setDocumentProvider(new XMLDocumentProvider());
}&amp;nbsp;&lt;/pre&gt;&lt;pre class="brush:java"&gt;&amp;nbsp;&lt;/pre&gt;&lt;div style="text-align: justify;"&gt;4. The XMLConfiguration basically hooks various listeners, providers and assistants to the Editor. The template generated code will have it sub-classed from &lt;a href="http://help.eclipse.org/galileo/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/jface/text/source/SourceViewerConfiguration.html" linkindex="61" target="_blank"&gt;SourceViewerConfiguration&lt;/a&gt;. Change it to &lt;a href="http://help.eclipse.org/galileo/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/ui/editors/text/TextSourceViewerConfiguration.html" linkindex="62" target="_blank"&gt;TextSourceViewerConfiguration&lt;/a&gt;. The TextSourceViewerConfiguration provides out of the box spell checker, spelling annotation, problem hover text, quick fixes, etc.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;pre class="brush:java"&gt;public class XMLConfiguration extends TextSourceViewerConfiguration { //SourceViewerConfiguration {
...
public XMLConfiguration(ColorManager colorManager, IPreferenceStore preferenceStore) {
 super(preferenceStore);
 this.colorManager = colorManager;
}
...
&lt;/pre&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
The &lt;i&gt;preferenceStore&lt;/i&gt; will be used for checking dictionary and other preferences. They can be set from &lt;i&gt;Window &amp;gt; Preferences &amp;gt; General &amp;gt; Editors &amp;gt; Text Editors &amp;gt; Spelling &lt;/i&gt;.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;5. Override the getReconciler function.  The implementation for &lt;a href="http://help.eclipse.org/galileo/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/ui/editors/text/TextSourceViewerConfiguration.html#getReconciler%28org.eclipse.jface.text.source.ISourceViewer%29" linkindex="63" target="_blank"&gt;getReconciler&lt;/a&gt; provided by TextSourceViewerConfiguration uses a &lt;a href="http://help.eclipse.org/galileo/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/ui/texteditor/spelling/SpellingReconcileStrategy.html" linkindex="64" target="_blank"&gt;SpellingReconcileStrategy&lt;/a&gt;. The SpellingReconcileStrategy will spell check the whole document. Since its an XML Editor, only quoted strings should be spell checked and the XML tags should be skipped.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;pre class="brush:java"&gt;/**
* Providing custom XMLSpellingReconcileStrategy to enable spell checking for only strings
*/
/* (non-Javadoc)
* @see org.eclipse.jface.text.source.SourceViewerConfiguration#getReconciler(org.eclipse.jface.text.source.ISourceViewer)
*/
public IReconciler getReconciler(ISourceViewer sourceViewer) {
 XMLSpellingReconcileStrategy strategy = new XMLSpellingReconcileStrategy(sourceViewer, EditorsUI.getSpellingService());
 Reconciler reconciler = new Reconciler();
 reconciler.setReconcilingStrategy(strategy, XMLStringPartitionScanner.XML_STRING);
 reconciler.setDocumentPartitioning(XMLStringPartitionScanner.XML_STRING);
 return reconciler;
}
&lt;/pre&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
6. XMLStringPartitionScanner will be our custom document partition scanner to identify the quoted string. The template generated code will make use of XMLPartitionScanner. This class specifies the rules for identifying the XML tags and comments. Since, the quoted string are part of XML Tag only, we can not use this partition scanner. Therefore, we write our custom document partition scanner and at supply it to the reconcile strategy.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;pre class="brush:java"&gt;public class XMLStringPartitionScanner extends RuleBasedPartitionScanner {

 public final static String XML_STRING = "__xml_string";

 public XMLStringPartitionScanner() {
  IToken stringToken = new Token(XML_STRING);
  IPredicateRule[] rules = new IPredicateRule[1];

  rules[0] = new MultiLineRule("\"", "\"", stringToken, '\\');
  setPredicateRules(rules);
 }
}
&lt;/pre&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;7. XMLSpellingReconcileStrategy will extend SpellingReconcileStrategy since it already knows how to collect spelling problem, etc. Only &lt;a href="http://help.eclipse.org/galileo/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/ui/texteditor/spelling/SpellingReconcileStrategy.html#reconcile%28org.eclipse.jface.text.IRegion%29" linkindex="65" target="_blank"&gt;reconcile &lt;/a&gt;is what needs to be overridden.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;pre class="brush:java"&gt;public class XMLSpellingReconcileStrategy extends SpellingReconcileStrategy {

 public XMLSpellingReconcileStrategy(ISourceViewer sourceViewer, SpellingService spellingService) {
  super(sourceViewer, spellingService);
 }
 ...
 public void reconcile(IRegion region) {

  AbstractDocument document = (AbstractDocument) getDocument();
  IDocumentPartitioner docPartitioner = document.getDocumentPartitioner(XMLStringPartitionScanner.XML_STRING);

  IAnnotationModel model = getAnnotationModel();
  if (region.getOffset() == 0 &amp;amp;&amp;amp; region.getLength() == document.getLength()) {
  //reconciling whole document
  super.reconcile(region);
  deleteUnwantedAnnotations();
  } else {
   //partial reconciliation
   //preserve spelling annotations first
   Iterator iter = model.getAnnotationIterator();
   Map spellingErrors = new HashMap(1);
   while (iter.hasNext()) {
    Annotation annotation = (Annotation) iter.next();
    if (annotation instanceof SpellingAnnotation) {
     SpellingAnnotation spellingAnnotation = (SpellingAnnotation) annotation;
     Position position = model.getPosition(spellingAnnotation);
     String contentType = docPartitioner.getContentType(position.getOffset());

     if (XMLStringPartitionScanner.XML_STRING.equalsIgnoreCase(contentType)) {
      spellingErrors.put(spellingAnnotation, model.getPosition(annotation));
     }
    }
   }

   //reconcile
   super.reconcile(region);

   //restore annotations
   model = getAnnotationModel();
   iter = spellingErrors.keySet().iterator();
   while (iter.hasNext()) {
    Annotation annotation = (Annotation) iter.next();
    model.addAnnotation(annotation, (Position) spellingErrors.get(annotation));
   }
   deleteUnwantedAnnotations();
  }

 }

 /**
 * Deletes the spelling annotations marked for XML Tags
 */
 private void deleteUnwantedAnnotations() {
  AbstractDocument document = (AbstractDocument) getDocument();
  IDocumentPartitioner docPartitioner = document.getDocumentPartitioner(XMLStringPartitionScanner.XML_STRING);
  IAnnotationModel model = getAnnotationModel();
  Iterator iter = model.getAnnotationIterator();

  while (iter.hasNext()) {
   Annotation annotation = (Annotation) iter.next();
   if (annotation instanceof SpellingAnnotation) {
    SpellingAnnotation spellingAnnotation = (SpellingAnnotation) annotation;
    Position position = model.getPosition(spellingAnnotation);
    String contentType = docPartitioner.getContentType(position.getOffset());
    if (!XMLStringPartitionScanner.XML_STRING.equalsIgnoreCase(contentType)) {
     model.removeAnnotation(spellingAnnotation);
    }
   }
  }
 }
}
&lt;/pre&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;8. Putting it all together&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;The XMLStringPartitionScanner is our document partition scanner. It uses the &lt;a href="http://help.eclipse.org/galileo/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/jface/text/rules/MultiLineRule.html" linkindex="66" target="_blank"&gt;MultiLineRule&lt;/a&gt; to locate the quoted string. XMLDocumentProvider adds it to the XML document.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;pre class="brush:java"&gt;public class XMLDocumentProvider extends FileDocumentProvider {

 protected IDocument createDocument(Object element) throws CoreException {
  IDocument document = super.createDocument(element);
  if (document != null) {
   IDocumentPartitioner partitioner = new FastPartitioner(new XMLPartitionScanner(), new String[] {XMLPartitionScanner.XML_TAG, XMLPartitionScanner.XML_COMMENT});
   partitioner.connect(document);
   document.setDocumentPartitioner(partitioner);

   //Adding our string partition scanner to the document
   partitioner = new FastPartitioner(new XMLStringPartitionScanner(), new String[] {XMLStringPartitionScanner.XML_STRING});
   partitioner.connect(document);
   ((AbstractDocument) document).setDocumentPartitioner(XMLStringPartitionScanner.XML_STRING, partitioner);
  }
  return document;
 }
}
&lt;/pre&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
XMLPartitionScanner is generated by the template and it locates XML tags and comments. Since quoted strings are part of tags, we added XMLStringPartitionScanner too.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;The XMLConfiguration finally wires all the content types to &lt;a href="http://help.eclipse.org/galileo/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/jface/text/presentation/PresentationReconciler.html" linkindex="67"&gt;PresentationReconciler&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;9. After thoughts&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;All the infrastructure is already in place for enabling spell checking. But custom editors need some extra wiring. If finer control is needed on the quick fix assistant override &lt;a href="http://help.eclipse.org/galileo/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/jface/text/source/SourceViewerConfiguration.html#getQuickAssistAssistant%28org.eclipse.jface.text.source.ISourceViewer%29" linkindex="68" target="_blank"&gt;getQuickAssistAssistant&lt;/a&gt; function and for controlling the hover message &lt;a href="http://help.eclipse.org/galileo/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/jface/text/source/SourceViewerConfiguration.html#getTextHover%28org.eclipse.jface.text.source.ISourceViewer,%20java.lang.String%29" linkindex="69" target="_blank"&gt;getTextHover &lt;/a&gt;will do the trick.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;10. Source code&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
The archived project can be downloaded from &lt;a href="http://www.ankursharma.org/resources/files/org.example.xml.spelling.zip" linkindex="70"&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
11. Disclaimer :-)&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;This code doesn't cover all the scenarios as it is just an example. These things I figured out while fixing the &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=286203" linkindex="71" target="_blank"&gt;bug #286203&lt;/a&gt;. Feel free to add your suggestions and point out any mistakes you see.Eclipse provides a nice framework to use spell checking in dialog and editors. Chris has tipped about it here. However, if you are using a custom editor then you have to put few pieces together yourself. Consider an XML editor. We would want the spelling check only for the string in attribute values and not the XML Tags.&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5914783-4852621545638572218?l=blog.ankursharma.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EclipsePdeAndMe/~4/QVuRYRUvDZI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.ankursharma.org/feeds/4852621545638572218/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5914783&amp;postID=4852621545638572218" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/4852621545638572218?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/4852621545638572218?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/EclipsePdeAndMe/~3/QVuRYRUvDZI/adding-spellchecking-to-custom-editors_19.html" title="Adding SpellChecking to custom editors" /><author><name>Ankur Sharma</name><uri>http://www.blogger.com/profile/17061727296754376984</uri><email>sharma.ankur@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="16521799200073626060" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_dqhq-tO9EaM/SvM3zlxQ9HI/AAAAAAAACR8/AhM0EE53Lb0/s72-c/new_plugin_wizard_xmleditor.JPG" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.ankursharma.org/2009/08/adding-spellchecking-to-custom-editors_19.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0cHQno4eyp7ImA9WxNUEks.&quot;"><id>tag:blogger.com,1999:blog-5914783.post-7805134102296519306</id><published>2009-07-26T18:19:00.002+05:30</published><updated>2009-11-03T21:47:13.433+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-03T21:47:13.433+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Cheat Sheet" /><category scheme="http://www.blogger.com/atom/ns#" term="PlanetEclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="API Tooling" /><title>Cheat Sheet for configuring API Tooling for existing projects</title><content type="html">&lt;div style="text-align: justify;"&gt;This topic are covered in &lt;a href="http://blog.ankursharma.org/2009/06/configuring-api-tooling-for-existing_23.html" linkindex="147" target="_blank"&gt;previous post&lt;/a&gt; too. Here am providing a Cheat Sheet for easy access. Do feel free to post your feedback/suggestions/bugs in comments to this post.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;The process of registering a cheat sheet in your Eclipse installation can be found in &lt;a href="http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.pde.doc.user/guide/tools/editors/simple_cs_editor/wizard_register-cheat-sheet.htm" linkindex="148" target="_blank"&gt;Eclipse help&lt;/a&gt;.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Download Cheat Sheet : &lt;a href="http://www.ankursharma.org/resources/files/setup-apitools-existing-projects.xml" linkindex="149" target="_blank"&gt;API Tooling Setup for existing projects.xml&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5914783-7805134102296519306?l=blog.ankursharma.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EclipsePdeAndMe/~4/RfHgZJqgSow" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.ankursharma.org/feeds/7805134102296519306/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5914783&amp;postID=7805134102296519306" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/7805134102296519306?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/7805134102296519306?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/EclipsePdeAndMe/~3/RfHgZJqgSow/cheat-sheet-for-configuring-api-tooling_26.html" title="Cheat Sheet for configuring API Tooling for existing projects" /><author><name>Ankur Sharma</name><uri>http://www.blogger.com/profile/17061727296754376984</uri><email>sharma.ankur@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="16521799200073626060" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://blog.ankursharma.org/2009/07/cheat-sheet-for-configuring-api-tooling_26.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08ERXs6cSp7ImA9WxNUEk8.&quot;"><id>tag:blogger.com,1999:blog-5914783.post-4074706383959620371</id><published>2009-07-19T03:11:00.002+05:30</published><updated>2009-11-03T10:53:24.519+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-03T10:53:24.519+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PDE" /><category scheme="http://www.blogger.com/atom/ns#" term="Target Platform" /><category scheme="http://www.blogger.com/atom/ns#" term="Export Wizard" /><category scheme="http://www.blogger.com/atom/ns#" term="API Tooling" /><category scheme="http://www.blogger.com/atom/ns#" term="Galileo" /><title>What's new in PDE?</title><content type="html">I presented this at Eclipse India Summit 2009, Bangalore.&lt;br /&gt;
&lt;br /&gt;
&lt;div id="__ss_1737976" style="text-align: left; width: 425px;"&gt;&lt;a href="http://www.slideshare.net/sharmaankur/whats-new-in-pde-35" linkindex="86" style="display: block; font-family: Helvetica,Arial,Sans-serif; font-size-adjust: none; font-size: 14px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 12px 0pt 3px; text-decoration: underline;" title="Whats New In PDE 3.5?"&gt;Whats New In PDE 3.5?&lt;/a&gt;&lt;object height="355" style="margin: 0px;" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=whatsnewinpde-090718094318-phpapp02&amp;stripped_title=whats-new-in-pde-35" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=whatsnewinpde-090718094318-phpapp02&amp;stripped_title=whats-new-in-pde-35" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;div style="font-family: tahoma,arial; font-size: 11px; height: 26px; padding-top: 2px;"&gt;View more &lt;a href="http://www.slideshare.net/" linkindex="87" style="text-decoration: underline;"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/sharmaankur" linkindex="88" style="text-decoration: underline;"&gt;Ankur Sharma&lt;/a&gt;.&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5914783-4074706383959620371?l=blog.ankursharma.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EclipsePdeAndMe/~4/WQsc1ECP-IM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.ankursharma.org/feeds/4074706383959620371/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5914783&amp;postID=4074706383959620371" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/4074706383959620371?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/4074706383959620371?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/EclipsePdeAndMe/~3/WQsc1ECP-IM/what-new-in-pde_19.html" title="What&amp;#39;s new in PDE?" /><author><name>Ankur Sharma</name><uri>http://www.blogger.com/profile/17061727296754376984</uri><email>sharma.ankur@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="16521799200073626060" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.ankursharma.org/2009/07/what-new-in-pde_19.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08DSHs9eyp7ImA9WxNUFEg.&quot;"><id>tag:blogger.com,1999:blog-5914783.post-6679253053258829455</id><published>2009-07-17T03:55:00.003+05:30</published><updated>2009-11-06T02:47:59.563+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-06T02:47:59.563+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PDE" /><category scheme="http://www.blogger.com/atom/ns#" term="Execution Environment" /><category scheme="http://www.blogger.com/atom/ns#" term="PlanetEclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="System Library Validation" /><category scheme="http://www.blogger.com/atom/ns#" term="API Tooling" /><category scheme="http://www.blogger.com/atom/ns#" term="BREE" /><title>System library validation</title><content type="html">This is a &lt;a href="http://help.eclipse.org/galileo/topic/org.eclipse.pde.doc.user/whatsNew/pde_whatsnew.htm#APITooling" linkindex="26" target="_blank"&gt;new feature &lt;/a&gt;available in Eclipse 3.5.&amp;nbsp; API Tools can now validate the code against the Execution Environment mentioned in the bundle manifest.&lt;br /&gt;
&lt;br /&gt;
Consider a scenario where the system JRE on developers machine (where Eclipse IDE is running) is version 1.5. But the bundle execution environment will be JVM 1.4. This is such cases, it is very easy to make the mistakes of accessing the functions that may not be available at runtime.&lt;br /&gt;
&lt;br /&gt;
API Tooling can catch such errors easily if the Execution Environments are available.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Installing Execution Environments&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Open the API Tooling preferences (&lt;i&gt;Window&lt;/i&gt; &amp;gt; &lt;i&gt;Preferences&lt;/i&gt; &amp;gt; &lt;i&gt;Plug-in Development&lt;/i&gt; &amp;gt; &lt;i&gt;API Errors/Warnings&lt;/i&gt;).&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_dqhq-tO9EaM/SvM-2Jz8VeI/AAAAAAAACSE/5265ZdyjGGQ/s1600-h/api_tooling_pref_1.JPG" imageanchor="1" linkindex="27" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_dqhq-tO9EaM/SvM-2Jz8VeI/AAAAAAAACSE/5265ZdyjGGQ/s400/api_tooling_pref_1.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;blockquote&gt;&lt;div style="text-align: center;"&gt;API Errors/Warnings&lt;br /&gt;
&lt;/div&gt;&lt;/blockquote&gt;By default the severity level is set to &lt;i&gt;Ignore&lt;/i&gt;. Change it to &lt;i&gt;Warning&lt;/i&gt; or &lt;i&gt;Error&lt;/i&gt;. Click the link &lt;i&gt;install them now&lt;/i&gt;. This shall open the &lt;i&gt;Install wizard&lt;/i&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_dqhq-tO9EaM/SvM_H2hAY2I/AAAAAAAACSM/wHCkI1r3a30/s1600-h/install_ee_1.JPG" imageanchor="1" linkindex="28" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_dqhq-tO9EaM/SvM_H2hAY2I/AAAAAAAACSM/wHCkI1r3a30/s400/install_ee_1.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;blockquote&gt;&lt;div style="text-align: center;"&gt;Install wizard&lt;br /&gt;
&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;i&gt;Work with&lt;/i&gt; the Galileo release site &lt;b&gt;Galileo - http://download.eclipse.org/releases/galileo&lt;/b&gt;. The execution environments are categorized under &lt;i&gt;General Purpose Tools&lt;/i&gt; &amp;gt; &lt;i&gt;PDE/API Tools Environment Descriptions&lt;/i&gt;. Install the ones you need.&lt;br /&gt;
&lt;br /&gt;
Once installed the API preferences page will show the available execution environments.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_dqhq-tO9EaM/SvM_YT4ev7I/AAAAAAAACSU/k04tjGaUUU4/s1600-h/api_tooling_pref_2.JPG" imageanchor="1" linkindex="29" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_dqhq-tO9EaM/SvM_YT4ev7I/AAAAAAAACSU/k04tjGaUUU4/s400/api_tooling_pref_2.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;blockquote&gt;API Errors/Warnings&lt;br /&gt;
&lt;/blockquote&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;System Library Validation in action&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Consider a plug-in is execution environment marked as Java 1.4.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_dqhq-tO9EaM/SvM_lD8HJzI/AAAAAAAACSc/Drhej8UU3WU/s1600-h/manifest_overview_ee_1.JPG" imageanchor="1" linkindex="30" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_dqhq-tO9EaM/SvM_lD8HJzI/AAAAAAAACSc/Drhej8UU3WU/s640/manifest_overview_ee_1.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;blockquote&gt;&lt;div style="text-align: center;"&gt;Execution Environment section on Overview page of Manifest Editor&lt;br /&gt;
&lt;/div&gt;&lt;/blockquote&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_dqhq-tO9EaM/SvM_w8iQkTI/AAAAAAAACSk/i9NK2bL11JM/s1600-h/manifest_file_1.JPG" imageanchor="1" linkindex="31" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_dqhq-tO9EaM/SvM_w8iQkTI/AAAAAAAACSk/i9NK2bL11JM/s640/manifest_file_1.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;div style="text-align: center;"&gt;Manifest File&lt;br /&gt;
&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;
If such a plug-in tries to access Java 1.5, there won't be any compilation errors (we will discuss the JDK Compliance level towards the end of this post).&lt;br /&gt;
&lt;br /&gt;
For example, see the snippet below.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush:java"&gt;String name ="ankur";
name.contentEquals(new StringBuilder("ankur"));
&lt;/pre&gt;&lt;br /&gt;
This code will compile fine but will fail at runtime as &lt;i&gt;contentEquals&lt;/i&gt; won't take &lt;i&gt;StringBuilder&lt;/i&gt; in 1.4. That's an 1.5 API.&lt;br /&gt;
&lt;br /&gt;
Once the API Preference for System Libraries is set to warning or error, same will be reported in the &lt;i&gt;Problems&lt;/i&gt; view.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_dqhq-tO9EaM/SvNAPMIje9I/AAAAAAAACSs/utLBGW93A_c/s1600-h/snippet_1.JPG" imageanchor="1" linkindex="32" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_dqhq-tO9EaM/SvNAPMIje9I/AAAAAAAACSs/utLBGW93A_c/s400/snippet_1.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;div style="text-align: center;"&gt;API Tooling validating against System Library&lt;br /&gt;
&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;Compiler compliance level Vs System Library Validation&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The problem we just discussed above can be also caught by setting the compiler compliance level appropriately. Where it differs is that the compiler setting are restricted to the JDK version. The API Tooling focuses on the execution environment from OSGi perspective. As you would have noticed there are non-Java specific environment descriptions too like CDC-Foundation and OSGi/Miminum.&lt;br /&gt;
&lt;br /&gt;
Another major difference is that API Tooling does not need JRE/JDK. It checks the usage against the environment descriptions. The descriptions are just the environment API and thus occupy very less space. For example, the 1.5 JRE takes close to 50MB while the descriptions for the same takes less than 2 MB.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5914783-6679253053258829455?l=blog.ankursharma.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EclipsePdeAndMe/~4/A4AmZblWi2E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.ankursharma.org/feeds/6679253053258829455/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5914783&amp;postID=6679253053258829455" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/6679253053258829455?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/6679253053258829455?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/EclipsePdeAndMe/~3/A4AmZblWi2E/system-library-validation_17.html" title="System library validation" /><author><name>Ankur Sharma</name><uri>http://www.blogger.com/profile/17061727296754376984</uri><email>sharma.ankur@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="16521799200073626060" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_dqhq-tO9EaM/SvM-2Jz8VeI/AAAAAAAACSE/5265ZdyjGGQ/s72-c/api_tooling_pref_1.JPG" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.ankursharma.org/2009/07/system-library-validation_17.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQMR34-cSp7ImA9WxNUEUQ.&quot;"><id>tag:blogger.com,1999:blog-5914783.post-6352313523311804498</id><published>2009-06-25T01:23:00.002+05:30</published><updated>2009-11-03T01:53:06.059+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-03T01:53:06.059+05:30</app:edited><title>Galileo is here!!</title><content type="html">If you are reading this and you probably know &lt;a href="http://eclipse.org/galileo" linkindex="17" target="_blank"&gt;Eclipse Galileo&lt;/a&gt; is out today!!. Have you &lt;a href="http://eclipse.org/downloads/" linkindex="18" target="_blank"&gt;downloaded &lt;/a&gt;it already? No? what are you waiting for? :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5914783-6352313523311804498?l=blog.ankursharma.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EclipsePdeAndMe/~4/IPXpHX4TFjg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.ankursharma.org/feeds/6352313523311804498/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5914783&amp;postID=6352313523311804498" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/6352313523311804498?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/6352313523311804498?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/EclipsePdeAndMe/~3/IPXpHX4TFjg/galileo-is-here_25.html" title="Galileo is here!!" /><author><name>Ankur Sharma</name><uri>http://www.blogger.com/profile/17061727296754376984</uri><email>sharma.ankur@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="16521799200073626060" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.ankursharma.org/2009/06/galileo-is-here_25.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4MR3g8eSp7ImA9WxNUEks.&quot;"><id>tag:blogger.com,1999:blog-5914783.post-9192008267060445371</id><published>2009-06-23T23:16:00.002+05:30</published><updated>2009-11-03T21:46:26.671+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-03T21:46:26.671+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PDE" /><category scheme="http://www.blogger.com/atom/ns#" term="API Baseline" /><category scheme="http://www.blogger.com/atom/ns#" term="PlanetEclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="API Tooling" /><title>Configuring API Tooling for existing projects</title><content type="html">&lt;div style="text-align: justify;"&gt;API Tooling is not a new feature. It came out of incubation in 3.4 and has been explained nicely at &lt;a href="http://www.ibm.com/developerworks/opensource/library/os-eclipse-api-tools/index.html" linkindex="21" target="_blank"&gt;developerworks&lt;/a&gt; and &lt;a href="http://wiki.eclipse.org/PDE/API_Tools/User_Guide" linkindex="22" target="_blank"&gt;eclipse wiki&lt;/a&gt;. What I would cover below is how to do it for existing projects and the strategy to continue with it.&lt;br /&gt;
&lt;/div&gt;&lt;ol style="text-align: justify;"&gt;&lt;li&gt;&lt;b&gt;Setting up API Tooling&lt;/b&gt;&lt;/li&gt;
Note: API Tooling works only for plug-in projects. It can not be used for Java, Feature and Update site projects API Tooling for a project is setup by attaching an &lt;i&gt;API Nature&lt;/i&gt; to the project. When completed you will be prompted to make a baseline.
&lt;li&gt;&lt;b&gt;Baselining&lt;/b&gt;&lt;/li&gt;
A baseline is a snapshot (set) of plug-ins. The AP Tooling expects not just the plug-ins you exported from your workspace, but also the dependent plug-ins. If the complete set is not available, the &lt;i&gt;Compare with baseline&lt;/i&gt; will not work. If your plug-ins makes a product, then export the product configuration and point to it as baseline. If its a set of features then just exporting them will not be enough. The dependent plug-ins are required too. You pull them all by modifying your ant build script. I don't know any shortcut/simple way of achieving this.
&lt;li&gt;&lt;b&gt;Comparing with baselines&lt;/b&gt;&lt;/li&gt;
&lt;i&gt;API Tooling&lt;/i&gt; is a new view available with3.5. It can be quick accessed through context menu (&lt;i&gt;Compare with &lt;/i&gt;&amp;gt;&lt;i&gt; API Baseline...&lt;/i&gt;) on a project, a folder, a package or any java resource in package explorer. &lt;i&gt;Compare Baseline &lt;/i&gt;compares the selected resource with the selected baseline. Any changes are reported in the &lt;i&gt;API&lt;/i&gt;. Note that you can compare two baseline with each other here. Its the code against the selected baseline.
&lt;li&gt;&lt;b&gt;Going ahead&lt;/b&gt;&lt;/li&gt;
Having a baseline on each minor version will be a overkill. I would have one for each major release and one for each milestone during the development cycle. API Tooling can also be integrated in the PDE Build. Look for Eclipse help contents &lt;i&gt;PDE Guide &amp;gt; Reference &amp;gt; API Tools Ant Tasks&lt;/i&gt;. For a quick list type &lt;i&gt;apitooling&lt;/i&gt; in build.xml and press &lt;i&gt;Ctrl + Space&lt;/i&gt; (content assist). &lt;i&gt;API Tooling&lt;/i&gt; view allows exporting the results as XML or HTML. Same can be automated using ant tasks.  &lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5914783-9192008267060445371?l=blog.ankursharma.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EclipsePdeAndMe/~4/t5SmXpOMcRY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.ankursharma.org/feeds/9192008267060445371/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5914783&amp;postID=9192008267060445371" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/9192008267060445371?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/9192008267060445371?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/EclipsePdeAndMe/~3/t5SmXpOMcRY/configuring-api-tooling-for-existing_23.html" title="Configuring API Tooling for existing projects" /><author><name>Ankur Sharma</name><uri>http://www.blogger.com/profile/17061727296754376984</uri><email>sharma.ankur@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="16521799200073626060" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://blog.ankursharma.org/2009/06/configuring-api-tooling-for-existing_23.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EGR3oyeyp7ImA9WxNUEk4.&quot;"><id>tag:blogger.com,1999:blog-5914783.post-150557766332128463</id><published>2009-06-13T08:44:00.002+05:30</published><updated>2009-11-03T14:43:46.493+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-03T14:43:46.493+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Hyperlinking" /><category scheme="http://www.blogger.com/atom/ns#" term="PlanetEclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="API Tooling" /><category scheme="http://www.blogger.com/atom/ns#" term="Galileo" /><title>When a n00b met Galileo</title><content type="html">&lt;div style="text-align: justify;"&gt;First time I used Eclipse it was Europa. Completely missed Ganymede. And it was only early this year I saw Galileo taking shape. So this review comes from the perspective of a relatively novice plug-in developer.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Things I liked&lt;/b&gt;&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;b&gt;API Tooling&lt;/b&gt;&lt;/li&gt;

&lt;div style="text-align: justify;"&gt;This one is really impressing. I know its not new and had been around @since 3.4. But the new baseline compare feature is really lovely. I remember spending hours, sifting through the CVS history, to figure out who changed that function signature and when. 
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;With the new API Tooling view, we can now compare the code with any baseline and figure out what all got changed. Chris explains it in detail &lt;a href="http://eclipsesource.com/blogs/2009/04/28/comparing-api-baselines/" linkindex="23" target="_blank"&gt;here&lt;/a&gt;. 
&lt;/div&gt;
&lt;li&gt;&lt;b&gt;Hyperlinking&lt;/b&gt;&lt;/li&gt;

&lt;div style="text-align: justify;"&gt;Wow! Just Ctrl + Click on the variable, function, whatever....it takes you to the declaration. F3 is cool. Does the same trick. But when I am browsing the code, following the call stack, Ctrl + Click is my scout. And where it betters the F3 is if its a method from interface, it lets you choose where you wish to go - declaration or the implementation. Mostly its the later one we want, isn't it? 
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_dqhq-tO9EaM/Su_zxmZn6jI/AAAAAAAACQs/EJ0CeuamYHI/s1600-h/jdt_hyperlinking_1.JPG" imageanchor="1" linkindex="24" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="146" src="http://3.bp.blogspot.com/_dqhq-tO9EaM/Su_zxmZn6jI/AAAAAAAACQs/EJ0CeuamYHI/s320/jdt_hyperlinking_1.JPG" width="320" /&gt;&lt;/a&gt; 
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;blockquote&gt;Hyperlinking 
&lt;/blockquote&gt;&lt;/div&gt;
&lt;li&gt;&lt;b&gt;Export wizard enhancements&lt;/b&gt;&lt;/li&gt;

&lt;div style="text-align: justify;"&gt;The new "Use class file compiled in the workspace" option is such a time saver. I almost always have the "Build Automatically" checked. Glad that I don't have to wait for all the features to compile all over again when I export then. It just picks the class files from the bin directly. Also, its not very easy to export the plug-ins along with source bundles. 
&lt;/div&gt;
&lt;li&gt;&lt;b&gt;P2&lt;/b&gt;&lt;/li&gt;

&lt;div style="text-align: justify;"&gt;It took a while to figure out just that P2 means&lt;i&gt; Platform Provisioning &lt;/i&gt;(correct me if am still wrong)&lt;i&gt;. &lt;/i&gt;This is perhaps the next big thing in Eclipse, but frankly I have no clue how it works and will take some time to catch up. Then what&amp;nbsp; I like about it?&lt;i&gt; Installation history&lt;/i&gt; and the fact that I can now actually 'revert' back the feature I installed for testing. Don't have to make a copy of eclipse to try it over it. If I don't like I can get rid of it. 
&lt;/div&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;b&gt;Things I wish for&lt;/b&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;I feel the API tooling is yet to grow to its full potential. I'll like to see support for tentative API and better reports. The PDE UI need lot of working. Like Cheat Sheet editor is a PITA when you have to bulk update. P2 may have liberated the release engineers but I strongly feel it needs lot of help material to reduce the entry barrier for n00bs like me.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;The wish-lists are always endless. With Galileo edition, Eclipse has come a really long way. And with E4 the vision reaches out farther than I can see. Glad to be part of Eclipse community.&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5914783-150557766332128463?l=blog.ankursharma.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EclipsePdeAndMe/~4/Vw0hrnlhUuM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.ankursharma.org/feeds/150557766332128463/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5914783&amp;postID=150557766332128463" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/150557766332128463?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/150557766332128463?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/EclipsePdeAndMe/~3/Vw0hrnlhUuM/when-n00b-met-galileo_13.html" title="When a n00b met Galileo" /><author><name>Ankur Sharma</name><uri>http://www.blogger.com/profile/17061727296754376984</uri><email>sharma.ankur@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="16521799200073626060" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_dqhq-tO9EaM/Su_zxmZn6jI/AAAAAAAACQs/EJ0CeuamYHI/s72-c/jdt_hyperlinking_1.JPG" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">6</thr:total><feedburner:origLink>http://blog.ankursharma.org/2009/06/when-n00b-met-galileo_13.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUENQX05fSp7ImA9WxNUEUQ.&quot;"><id>tag:blogger.com,1999:blog-5914783.post-2635563741310290303</id><published>2009-06-06T04:17:00.003+05:30</published><updated>2009-11-03T01:58:10.325+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-03T01:58:10.325+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PDE" /><category scheme="http://www.blogger.com/atom/ns#" term="Target Definition" /><category scheme="http://www.blogger.com/atom/ns#" term="Target Definition Editor" /><category scheme="http://www.blogger.com/atom/ns#" term="PlanetEclipse" /><title>[New in Eclipse 3.5] Target Definition Editor make over</title><content type="html">&lt;div style="text-align: justify;"&gt;The new Target Platform story has resulted in a few changes to the Target Definition Editor.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;The &lt;i&gt;Environment&lt;/i&gt; page remains unchanged. The &lt;i&gt;Overview&lt;/i&gt; page has been renamed to &lt;i&gt;Definition&lt;/i&gt; page. The page is less confusing now. Earlier it had the workspace target topped with additional directories. But now its just a set of locations which can be any directory, eclipse (or eclipse based product) installation, features or can even be an update site.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_dqhq-tO9EaM/Su8_8GUdn9I/AAAAAAAACPU/JqmSbuB69TI/s1600-h/target_editor_definition_page_1.png" imageanchor="1" linkindex="17" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_dqhq-tO9EaM/Su8_8GUdn9I/AAAAAAAACPU/JqmSbuB69TI/s400/target_editor_definition_page_1.png" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;blockquote&gt;&lt;div style="text-align: center;"&gt;Target Definition Editor - Definition Page&lt;br /&gt;
&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;The &lt;i&gt;Content&lt;/i&gt; page too as gone simpler. It not only shows the constituent plug-ins for the selected locations but also helps in choosing the individual plug-ins out of each location. The plug-ins can be filtered and also be grouped by their location or the file path. As before, the &lt;i&gt;Add Required&lt;/i&gt; button adds the required plug-ins for the selected ones. And the good thing is that it searches for the required plug-ins in all the available locations.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_dqhq-tO9EaM/Su9AVp0a-vI/AAAAAAAACPc/bSCFZ6nF4r8/s1600-h/target_editor_content_page_1.png" imageanchor="1" linkindex="18" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_dqhq-tO9EaM/Su9AVp0a-vI/AAAAAAAACPc/bSCFZ6nF4r8/s400/target_editor_content_page_1.png" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div style="text-align: center;"&gt;Target Definition Editor - Content Page&lt;br /&gt;
&lt;/div&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5914783-2635563741310290303?l=blog.ankursharma.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EclipsePdeAndMe/~4/6-atBFdOw4s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.ankursharma.org/feeds/2635563741310290303/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5914783&amp;postID=2635563741310290303" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/2635563741310290303?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/2635563741310290303?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/EclipsePdeAndMe/~3/6-atBFdOw4s/new-in-eclipse-35-target-definition_06.html" title="[New in Eclipse 3.5] Target Definition Editor make over" /><author><name>Ankur Sharma</name><uri>http://www.blogger.com/profile/17061727296754376984</uri><email>sharma.ankur@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="16521799200073626060" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_dqhq-tO9EaM/Su8_8GUdn9I/AAAAAAAACPU/JqmSbuB69TI/s72-c/target_editor_definition_page_1.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.ankursharma.org/2009/06/new-in-eclipse-35-target-definition_06.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8CSX85fyp7ImA9WxNUEk4.&quot;"><id>tag:blogger.com,1999:blog-5914783.post-3407965053101784597</id><published>2009-06-01T18:30:00.004+05:30</published><updated>2009-11-03T14:31:08.127+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-03T14:31:08.127+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Import" /><category scheme="http://www.blogger.com/atom/ns#" term="PDE" /><category scheme="http://www.blogger.com/atom/ns#" term="Plugins Import Wizard" /><category scheme="http://www.blogger.com/atom/ns#" term="PlanetEclipse" /><title>[New in Eclipse 3.5] Plug-ins Import Wizard refurbished</title><content type="html">&lt;div style="text-align: justify;"&gt;The Import Plug-ins and Fragments wizard has gone under knife in Galileo release. It has been made simpler and consistent with the new target platform story.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;b&gt;Before &amp;amp; After&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_dqhq-tO9EaM/Su_vtkMMdfI/AAAAAAAACQU/7jZ8fpp0pws/s1600-h/import_plugins_wizard_342_1.JPG" imageanchor="1" linkindex="15" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_dqhq-tO9EaM/Su_vtkMMdfI/AAAAAAAACQU/7jZ8fpp0pws/s200/import_plugins_wizard_342_1.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_dqhq-tO9EaM/Su_v_N-_TTI/AAAAAAAACQc/DSSBb_lDSNQ/s1600-h/import_plugins_wizard_35_1.JPG" imageanchor="1" linkindex="16" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_dqhq-tO9EaM/Su_v_N-_TTI/AAAAAAAACQc/DSSBb_lDSNQ/s200/import_plugins_wizard_35_1.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;/table&gt;&lt;div style="text-align: left;"&gt;&lt;blockquote&gt;as seen in Eclipse 3.4.2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new look in Eclipse 3.5     &lt;br /&gt;
&lt;/blockquote&gt;&lt;/div&gt;&lt;table&gt;&lt;div style="text-align: justify;"&gt;The import has been made simpler by providing three simple options to import from.    
&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;Active Target Platform&lt;/b&gt;&lt;/li&gt;
The Target Platform Preference page now allows you to maintain various target definitions.&amp;nbsp; However, only one can be active at a time (of course). It is this target that the workspace is built against. So this is option to be chosen if a plug-in has to be imported from the current target platform.
&lt;li&gt;Registered &lt;b&gt;Target Definitions&lt;/b&gt;&lt;/li&gt;
By &lt;i&gt;'Registered'&lt;/i&gt; Target Definitions I mean the local target definitions (using Target Platform Preference page) or any target definition file that exists in the open projects. Any external target definition file (outside workspace) that was opened in current session is also remembered.&amp;nbsp; Simply speaking, any target definition that appears on the Target Platform Preference page.  Using this option, a plug-in from any of the these target can be selected for import.
&lt;li&gt;&lt;b&gt;Directory&lt;/b&gt;&lt;/li&gt;
This one is easy. Choose any plug-from the specified directory location. The option is smart enough to locate and pick&amp;nbsp; from the "&lt;i&gt;plugins&lt;/i&gt;" directory also under the location mentioned.&lt;/ol&gt;&lt;div style="text-align: justify;"&gt;The &lt;i&gt;Features Import wizard&lt;/i&gt;&lt;i&gt; &lt;/i&gt;remains the same. No changes to it.    
&lt;/div&gt;
&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5914783-3407965053101784597?l=blog.ankursharma.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/EclipsePdeAndMe/~4/DOVUivyxliY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.ankursharma.org/feeds/3407965053101784597/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5914783&amp;postID=3407965053101784597" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/3407965053101784597?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5914783/posts/default/3407965053101784597?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/EclipsePdeAndMe/~3/DOVUivyxliY/new-in-eclipse-35-plug-ins-import_01.html" title="[New in Eclipse 3.5] Plug-ins Import Wizard refurbished" /><author><name>Ankur Sharma</name><uri>http://www.blogger.com/profile/17061727296754376984</uri><email>sharma.ankur@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="16521799200073626060" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_dqhq-tO9EaM/Su_vtkMMdfI/AAAAAAAACQU/7jZ8fpp0pws/s72-c/import_plugins_wizard_342_1.JPG" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://blog.ankursharma.org/2009/06/new-in-eclipse-35-plug-ins-import_01.html</feedburner:origLink></entry></feed>
