<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Splatch's devblog &#187; Eclipse</title>
	<atom:link href="http://blog.dywicki.pl/category/eclipse/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.dywicki.pl</link>
	<description>Pragmatyzm kontrolowany</description>
	<lastBuildDate>Fri, 05 Jun 2009 14:30:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Agavi IDE, prace trwają</title>
		<link>http://blog.dywicki.pl/2007/12/02/agavi-ide-prace-trwaja/</link>
		<comments>http://blog.dywicki.pl/2007/12/02/agavi-ide-prace-trwaja/#comments</comments>
		<pubDate>Sat, 01 Dec 2007 23:54:39 +0000</pubDate>
		<dc:creator>Łukasz Dywicki</dc:creator>
				<category><![CDATA[Agavi]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Wiadomości]]></category>

		<guid isPermaLink="false">http://blog.dywicki.pl/?p=203</guid>
		<description><![CDATA[ Cały dzisiejszy dzień poświęciłem na zbudowanie szkieletu modelu pod Agavi IDE. W trakcie dnia zaszło kilka nagłych zwrotów akcji na miarę dobrego filmu sensacyjnego ;). Początkowo pragnąłem wykorzystać Eclipse Modeling Framework do zarządzania obiektami. Wszystko szło gładko, dopóki nie spróbowałem wygenerować kodu wolnego od zależności EMF. Koniec końców dowiedziałem się, że z EMF nie [...]]]></description>
			<content:encoded><![CDATA[<p><a href='http://blog.dywicki.pl/wp-content/uploads/2007/12/manager.PNG' title='Stored agavi project :)' rel='lightbox' style="text-decoration: none"><img src='http://blog.dywicki.pl/wp-content/uploads/2007/12/manager.thumbnail.PNG' alt='Stored agavi project :)' rel='lightbox' style="margin: 5px"  align="right" /></a> Cały dzisiejszy dzień poświęciłem na zbudowanie szkieletu modelu pod Agavi IDE. W trakcie dnia zaszło kilka nagłych zwrotów akcji na miarę dobrego filmu sensacyjnego ;). Początkowo pragnąłem wykorzystać <a href="http://www.eclipse.org/modeling/">Eclipse Modeling Framework</a> do zarządzania obiektami. Wszystko szło gładko, dopóki nie spróbowałem wygenerować kodu wolnego od zależności EMF. Koniec końców dowiedziałem się, że z EMF nie da się wygenerować zwykłych Java Beanów. Niestety, ale zarządzanie wszystkim poprzez otoczkę EMF niezbyt mi się uśmiechało. Model trzymany w pamięci nie potrzebuje wodotrysków, mogą to być zwykle <a href="http://en.wikipedia.org/wiki/POJO">POJO</a>.<br />
Przepisałem więc cały kod sam, na nowo. Diagram, który początkowo ilustrował całą strukturę, troszkę się zmienił, nie mniej wersję bazową załączam na obrazku.</p>
<p>
<a href='http://blog.dywicki.pl/wp-content/uploads/2007/12/default.png' title='Agavi IDE Model Draft' rel='lightbox' style="text-decoration: none"><img src='http://blog.dywicki.pl/wp-content/uploads/2007/12/default.thumbnail.png' alt='Agavi IDE Model Draft' rel='lightbox' style="margin: 5px" align="right" /></a> Kolejny problem jaki wylazł to zapisywanie obiektów w db4o. Początkowo założyłem sobie, że niektórym elementom będę przypisywał lokalizacje (na diagramie interfejs IResourceLink). Okazało się jednak, że pochodne IResource (IFolder, IFile) w Eclipse zawierają sporo informacji, z których zapisaniem był problem (PreferencesStore), a które z punktu widzenia AgaviIDE były zbyteczne. Ilość zapisanych obiektów była przytłaczająca, już po chwili pracy baza projektu miała ponad 1 megabajt. Biorąc pod uwagę to, że jest tam zapisywany model, który zmienia się często i w którym wyszukiwanie powinno być możliwie najszybsze sytuacja taka była nie do przyjęcia. Znowu przekopałem cały kod modelu, tym razem po to by korzystać ze klasy java.io.File. Masakra, koniec końców udało mi się całość uruchomić. Builder działa, obiekty są zapisywane (drugi obrazek). Teraz dorzucić jeszcze wyciąganie informacji z plików php i powinno być ok..</p>
<p>Oto output, którym w tej chwili częstuje builder.</p>
<div class="igBar"><span id="lcode-2"><a href="#" onclick="javascript:showPlainTxt('code-2'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-2">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">incremental build</div>
</li>
<li style="font-weight: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">create new project</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">project location E:\agavi-ide\org.<span style="">agavi</span>.<span style="">editor</span>.<span style="">module</span>\workspace\Agavi test</div>
</li>
<li style="font-weight: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">project modules <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006600; font-weight:bold;">&#93;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">change: Agavi test, resource type: Project</div>
</li>
<li style="font-weight: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">change: Admin, resource type: Folder</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">change: actions, resource type: Folder</div>
</li>
<li style="font-weight: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">change: ErrorAction.<span style="">class</span>.<span style="">php</span>, resource type: File </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Pomyślcie jak fajnie będzie się edytować routing.. podanie ścieżki, wskazanie akcji i gotowe.. albo konfiguracja walidatorów na podobna do tej z <a href='http://blog.dywicki.pl/wp-content/uploads/2007/12/facesconfig-validator.png' title='JSF Tools…'>JSF Tools</a><noscript>Une bien longue suite des <a href="http://www.accessiblesociety.net">jeux de casino en ligne</a>.</noscript></p>]]></content:encoded>
			<wfw:commentRss>http://blog.dywicki.pl/2007/12/02/agavi-ide-prace-trwaja/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mój pierwszy edytor&#8230;</title>
		<link>http://blog.dywicki.pl/2007/11/07/moj-pierwszy-edytor/</link>
		<comments>http://blog.dywicki.pl/2007/11/07/moj-pierwszy-edytor/#comments</comments>
		<pubDate>Tue, 06 Nov 2007 22:44:39 +0000</pubDate>
		<dc:creator>Łukasz Dywicki</dc:creator>
				<category><![CDATA[Agavi]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[JAXB]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SWT]]></category>
		<category><![CDATA[Wiadomości]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://blog.dywicki.pl/?p=196</guid>
		<description><![CDATA[
Czas jakiś temu udało mi się stworzyć pierwszy działający edytor w oparciu o Eclipse.
Kilka informacji co pod spodem:

SharedHeaderFormEditor - ładny tekstowy nagłówek oraz możliwość dodawania zakładek
FormPage i FormToolkit - użyte do stworzenia układu, który widać na załączonym obrazku
JFace Databinding - zapewnia propagowanie zmian z formularza do obiektów
JAXB 2 - mapowanie plików XML do odpowiednich klas
JFace [...]]]></description>
			<content:encoded><![CDATA[<p><a href='http://blog.dywicki.pl/wp-content/uploads/2007/11/agavi-editor.JPG' title='Agavi module configuration editor' rel="lightbox"><img align="right" src='http://blog.dywicki.pl/wp-content/uploads/2007/11/agavi-editor.thumbnail.JPG' alt='Agavi module configuration editor'  rel="lightbox"/></a></p>
<p>Czas jakiś temu udało mi się stworzyć pierwszy działający edytor w oparciu o Eclipse.<br />
Kilka informacji co pod spodem:</p>
<ul>
<li>SharedHeaderFormEditor - ładny tekstowy nagłówek oraz możliwość dodawania zakładek</li>
<li>FormPage i FormToolkit - użyte do stworzenia układu, który widać na załączonym obrazku</li>
<li>JFace Databinding - zapewnia propagowanie zmian z formularza do obiektów</li>
<li>JAXB 2 - mapowanie plików <acronym title="eXtensible Markup Language">XML</acronym> do odpowiednich klas</li>
<li>JFace - table viewer i parę innych dodatków</li>
</ul>
<p>Całość ogólnie jest prosta niczym konstrukcja cepa, w działaniu sprawia się dobrze. Jak tylko ogarnę kod postaram się opisać krok po kroku jak można coś podobnego stworzyć na własny użytek. </p>
<p>Splatch wraca do gry i będzie grać wysoko! ;-)</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dywicki.pl/2007/11/07/moj-pierwszy-edytor/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Czy ktoś mówił, że istnieją środowiska idealne?</title>
		<link>http://blog.dywicki.pl/2007/10/25/czy-ktos-mowil-ze-istnieja-srodowiska-idealne/</link>
		<comments>http://blog.dywicki.pl/2007/10/25/czy-ktos-mowil-ze-istnieja-srodowiska-idealne/#comments</comments>
		<pubDate>Thu, 25 Oct 2007 06:32:58 +0000</pubDate>
		<dc:creator>Łukasz Dywicki</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Śmieci]]></category>

		<guid isPermaLink="false">http://blog.dywicki.pl/?p=194</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><img src='http://blog.dywicki.pl/wp-content/uploads/2007/10/internal-internal.jpg' alt='Internal error^2' /></p>]]></content:encoded>
			<wfw:commentRss>http://blog.dywicki.pl/2007/10/25/czy-ktos-mowil-ze-istnieja-srodowiska-idealne/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>JAXB 2, Wprowadzenie</title>
		<link>http://blog.dywicki.pl/2007/10/14/jaxb-2-wprowadzenie/</link>
		<comments>http://blog.dywicki.pl/2007/10/14/jaxb-2-wprowadzenie/#comments</comments>
		<pubDate>Sun, 14 Oct 2007 17:29:57 +0000</pubDate>
		<dc:creator>Łukasz Dywicki</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[JAXB]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[tlumaczenia]]></category>

		<guid isPermaLink="false">http://blog.dywicki.pl/?p=190</guid>
		<description><![CDATA[W ramach WarsJava, konferencji/warsztatów organizowanych przez Warszawski JUG, będę miał szansę przedstawić publiczności Java Architecture for XML Binding w wersji drugiej. Swoje boje z JAXB postanowiłem opisać na blogu, być może dla kogoś temat wyda się interesujący.. :)
Ogólniki
JAXB ma za zadanie ułatwić pracę z XML poprzez automatyczne dostarczanie obiektów zamiast żmudnego, ręcznego obrabiania plików SAX, [...]]]></description>
			<content:encoded><![CDATA[<p>W ramach <a href="http://groups.google.com/group/warszawa-jug/web/warsjava">WarsJava</a>, konferencji/warsztatów organizowanych przez <a href="http://warszawa.jug.pl/">Warszawski JUG</a>, będę miał szansę przedstawić publiczności <a href="https://jaxb.dev.java.net/">Java Architecture for <acronym title="eXtensible Markup Language">XML</acronym> Binding</a> w wersji drugiej. Swoje boje z JAXB postanowiłem opisać na blogu, być może dla kogoś temat wyda się interesujący.. :)</p>
<h2>Ogólniki</h2>
<p>JAXB ma za zadanie ułatwić pracę z <acronym title="eXtensible Markup Language">XML</acronym> poprzez automatyczne dostarczanie obiektów zamiast żmudnego, ręcznego obrabiania plików SAX, <acronym title="Document Object Model">DOM</acronym> czy StAX. Jest to dodatkowa warstwa zbudowana na bazie <a href="http://java.sun.com/webservices/jaxp/index.jsp">Java Api for <acronym title="eXtensible Markup Language">XML</acronym> Processing<br />
</a>. Druga wersja JAXB jest dołączona do J2SE 1.6.</p>
<p>Spójrzmy teraz na schemat budowy JAXB:<br />
<img src="http://blog.dywicki.pl/wp-content/uploads/2007/10/jaxb-overview.gif" alt="JAXB, schemat" style="margin: 5px" /></p>
<ol>
<li> Kompilator
<ol>
<li><b>Schema</b> - dokument opisujący strukturę dokumentu - może to być <acronym title="eXtensible Markup Language">XML</acronym> Schema, <acronym title="Document Type Definition">DTD</acronym> jak również Relax NG czy też <acronym title="Web Services Description Language">WSDL</acronym>.
        </li>
<li><b><acronym title="eXtensible Markup Language">XML</acronym> /Java Binding Customization</b> - JAXB daje nam możliwość wpływania na wygenerowany kod poprzez ten właśnie mechanizm, dzięki temu można określić np. metody, które będą tworzyć elementy w przypadku odczytu z dokumentu bądź serializować w przypadku zapisu.</li>
</ol>
</li>
<li> Runtime
<ol>
<li><b>Portable JAXB-annotated classes</b> - kod, który wygenerowaliśmy przy użyciu kompilatora bądź klasy, do których dodaliśmy adnotacje.</li>
<li><b>Object Factory</b> - klasa, która tworzy obiektowe reprezentacje naszych elementów <acronym title="eXtensible Markup Language">XML</acronym>.</li>
<li><b>Binding runtime framework implementation</b> - obsługuje proces odczytu danych (<i>unmarshalling</i>) oraz ich zapisu (<i>marshalling</i>), obsługuje również walidację. Element ten do poprawnego działania wymaga elementów wymienionych powyżej - czyli klas z adnotacjami oraz ich "fabryki".</li>
</ol>
</li>
</ol>
<h2>Pierwszy projekt</h2>
<p>Pamiętam, że kiedyś chciałem stworzyć prostą aplikację w której mógłbym notować jakie książki mam i komu je wypożyczyłem. Niestety w którymś momencie zabrakło chyba sił i poza definicją struktury dokumentu stworzyłem tyko kilka linii kodu. Nie mniej, po drobnych przeróbkach udało się doprowadzić schemat do porządku. W aplikacji będą występować następujące instancje klas:</p>
<ol>
<li><b>Books</b> - repozytorium książek, zawiera listę książek</li>
<li><b>Book</b> - definicja książki - atrybuty to title, isbn oraz lista autorów</li>
<li><b>Author</b> - reprezentacja autora - atrybuty firstName, lastName. Dodatkowo opcjonalny jest type wskazujący czy mamy do czynienia z tłumaczem czy też z "normalnym" autorem.</li>
<li><b>AuthorType</b> - typ wyliczeniowy - dostępne wartości to Translator, Author</li>
</ol>
<p>Aby korzystało się nam z kompilatora (xjc) wygodniej podepniemy go pod Eclipse jako narzędzie zewnętrzne. Tu przyda się kilka informacji na temat samego kompilatora:<br />
xjc [-options ...] file/URL/dir ... [-b bindinfo] ...<br />
Gdzie najważniejsze opcje to:</p>
<ol>
<li><b>-d</b>, katalog do którego trafi wygenerowany kod</li>
<li><b>-b</b>, dodatkowe mappingi umożliwiające zmianę zachowania kompilatora</li>
<li><b>-p</b>, paczka do której trafi wygenerowany kod</li>
<li><b>-classpath</b>, miejsca w których xjc ma szukać klas, które zostały użyte w mappingach</li>
</ol>
<p>Przykładowo</p>
<pre class="brush: bash;">xjc -d generated schema.xsd</pre>
<p><a href="http://blog.dywicki.pl/wp-content/uploads/2007/10/jaxb-external.JPG" title="Konfiruracja external tools" rel="lightbox" style="text-decodarion: none"><img src="http://blog.dywicki.pl/wp-content/uploads/2007/10/jaxb-external.thumbnail.JPG" alt="Konfiruracja external tools" rel="lightbox" style="margin: 10px;" align="left"/></a><br />
Spowoduje, że klasy wylądują w katalogu generated. Nazwa paczki zostanie zaczerpnięta z atrybutu targetNamespace dokumentu zawartego w schemacie. Obok znajduje się screen z konfiguracją - z ważniejszych informacji - <b>Working directory ustawione na ${project_loc}</b> pozwala nam się nawigować po katalogach względem aktualnie zaznaczonego w nawigatorze projektu. <b>wartość w polu Arguments -d generated ${resource_loc} -verbose -extension -npa</b> oznacza, że wygenerowane klasy wylądują w katalogu "generated" (należy stworzyć taki source folder). Zmienna ${resource_loc} pozwala nam użyć aktualnie zaznaczonego pliku w nawigatorze. Dzięki takiej konfiguracji niezależnie od projektu i pliku jesteśmy w stanie wygenerować potrzebne nam klasy poprzez dwa kliknięcia - pierwsze w nawigatorze, drugie na ikonie external tools.</p>
<p>Schemat jest <a href="http://media.dywicki.pl/blog/jaxb/books.xsd">dostępny do ściągnięcia</a>, podobnie jak <a href="http://media.dywicki.pl/blog/jaxb/books.xml">przykładowy plik z danymi</a>. Proszę zwrócić uwagę na to jak jest zdefiniowany główny element dokumentu - poprzez zawarcie typu anonimowego. Jeśli zdefiniujemy oddzielnie element i typ to wówczas konieczne będzie ręczne dodanie adnotacji @XmlRootElement przy klasie Books. O tym <a href="http://weblogs.java.net/blog/kohsuke/archive/2006/03/why_does_jaxb_p.html">dlaczego JAXB się tak zachowuje</a> można wyczytać na jednym z Sun-owskich blogów.</p>
<pre class="brush: java;">package pl.dywicki.books.app;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;

import pl.dywicki.books.Author;
import pl.dywicki.books.AuthorType;
import pl.dywicki.books.Book;
import pl.dywicki.books.Books;
import pl.dywicki.books.ObjectFactory;

/**
 * Testowa klasa pokazująca użycie JAXB do zapisywania danych.
 *
 * @author Łukasz Dywicki
 */
public class App {

	public static void main(String[] args) throws Exception {

		// repozytorium książek
		Books books = new Books();

		// przykładowa książka
		Book book = new Book();
		book.setTitle(&quot;Test title&quot;);
		book.setIsbn(&quot;111-111-111&quot;);

		// testowy autor
		Author author = new Author();
		author.setFirstName(&quot;Martin&quot;);
		author.setLastName(&quot;Fowler&quot;);
		book.getAuthor().add(author);

		// testowy tłumacz
		author = new Author();
		author.setFirstName(&quot;Łukasz&quot;);
		author.setLastName(&quot;Dywicki&quot;);
		author.setType(AuthorType.TRANSLATOR);
		book.getAuthor().add(author);

		// dodanie książki do repozytorium
		books.getBook().add(book);

		JAXBContext context = JAXBContext.newInstance(ObjectFactory.class);
		Marshaller marshaller = context.createMarshaller();
		// chcemy ładnych wcięć w wyniku! :)
		marshaller.setProperty(&quot;jaxb.formatted.output&quot;, true);
		marshaller.marshal(books, System.out);
	}

}
</pre>
<p>Po uruchomieniu tego przykładu w konsoli powinien pokazać się taki oto wynik:</p>
<pre class="brush: xml;">
&lt; ?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;yes&quot;?&gt;
&lt;ns2_books xmlns:ns2=&quot;http://dywicki.pl/books&quot;&gt;
    &lt;book&gt;
        &lt;title&gt;Test title&lt;/title&gt;
        &lt;isbn&gt;111-111-111&lt;/isbn&gt;
        &lt;author&gt;
            &lt;firstname&gt;Martin&lt;/firstname&gt;
            &lt;lastname&gt;Fowler&lt;/lastname&gt;
        &lt;/author&gt;
        &lt;author&gt;
            &lt;firstname&gt;Łukasz&lt;/firstname&gt;
            &lt;lastname&gt;Dywicki&lt;/lastname&gt;
            &lt;type&gt;Translator&lt;/type&gt;
        &lt;/author&gt;
    &lt;/book&gt;
&lt;/ns2_books&gt;</pre>
<p>(Zamiast ns2_books powinno być ns2:books, ale narzędzie kolorujące składnie sobie nie radzi).</p>
<p>Dla zainteresowanych załączam <a href="http://media.dywicki.pl/blog/jaxb/jaxb-test.zip">źródła projektu</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dywicki.pl/2007/10/14/jaxb-2-wprowadzenie/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Prezentacja &#8211; Eclipse GMF</title>
		<link>http://blog.dywicki.pl/2007/09/17/prezentacja-eclipse-gmf/</link>
		<comments>http://blog.dywicki.pl/2007/09/17/prezentacja-eclipse-gmf/#comments</comments>
		<pubDate>Mon, 17 Sep 2007 20:45:29 +0000</pubDate>
		<dc:creator>Łukasz Dywicki</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Wiadomości]]></category>

		<guid isPermaLink="false">http://blog.dywicki.pl/?p=187</guid>
		<description><![CDATA[Jak stworzyć edytor diagramów z użyciem tandemu technologi EMF + GMF? Otóż bardzo prosto - jak pokazuje prezentacja, którą znalazłem w jednym z kanałów RSS, prowadzącym do eclipser-blog. Szkoda, że nie wszystko w praktyce bywa takie proste jak na prezentacjach! ;)
Bezpośredni link do prezentacji (długo się wczytuje).]]></description>
			<content:encoded><![CDATA[<p>Jak stworzyć edytor diagramów z użyciem tandemu technologi <a href="http://www.eclipse.org/emf/">EMF</a> + <a href="http://www.eclipse.org/gmf/">GMF</a>? Otóż bardzo prosto - jak pokazuje prezentacja, którą znalazłem w jednym z kanałów <acronym title="Really Simple Syndication">RSS</acronym>, prowadzącym do <a href="http://eclipser-blog.blogspot.com/2007/09/nice-gmf-video-for-newcomers.html">eclipser-blog</a>. Szkoda, że nie wszystko w praktyce bywa takie proste jak na prezentacjach! ;)<br />
Bezpośredni <a href="http://mirrors.ibiblio.org/pub/mirrors/eclipse/technology/phoenix/demos/gmf-orgchart/">link do prezentacji</a> (długo się wczytuje).</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dywicki.pl/2007/09/17/prezentacja-eclipse-gmf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipse Ganymede</title>
		<link>http://blog.dywicki.pl/2007/08/17/eclipse-ganymede/</link>
		<comments>http://blog.dywicki.pl/2007/08/17/eclipse-ganymede/#comments</comments>
		<pubDate>Thu, 16 Aug 2007 22:04:12 +0000</pubDate>
		<dc:creator>Łukasz Dywicki</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Wiadomości]]></category>

		<guid isPermaLink="false">http://blog.dywicki.pl/?p=185</guid>
		<description><![CDATA[Znamy już nazwę przyszłej dystrybucji Eclipse, będzie nią Ganimedes.
Wiadomo, że ten release wyjdzie, podobnie jak Europa, 29 czerwca. Pojawiły się pierwsze zmiany, które wejdą w skład nowej dystrybucji. Na tą chwilę jeszcze nie wiadomo ile projektów będzie obejmować Ganimedes, póki co jest ich kilka, miejmy nadzieję, że przynajmniej tyle co Europa!]]></description>
			<content:encoded><![CDATA[<p>Znamy już nazwę przyszłej dystrybucji Eclipse, będzie nią <a href="http://pl.wikipedia.org/wiki/Ganimedes_%28ksi%C4%99%C5%BCyc%29">Ganimedes</a>.</p>
<p>Wiadomo, że ten release wyjdzie, podobnie jak Europa, 29 czerwca. Pojawiły się <a href="http://download.eclipse.org/eclipse/downloads/drops/S-3.4M1-200708091105/eclipse-news-M1.html">pierwsze zmiany</a>, które wejdą w skład nowej dystrybucji. Na tą chwilę jeszcze nie wiadomo ile projektów będzie obejmować Ganimedes, póki co <a href="http://wiki.eclipse.org/index.php/Ganymede_Simultaneous_Release">jest ich kilka</a>, miejmy nadzieję, że przynajmniej tyle co Europa!</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dywicki.pl/2007/08/17/eclipse-ganymede/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Wygodny edytor do konfiguracji XML</title>
		<link>http://blog.dywicki.pl/2007/08/02/wygodny-edytor-do-konfiguracji-xml/</link>
		<comments>http://blog.dywicki.pl/2007/08/02/wygodny-edytor-do-konfiguracji-xml/#comments</comments>
		<pubDate>Thu, 02 Aug 2007 21:46:17 +0000</pubDate>
		<dc:creator>Łukasz Dywicki</dc:creator>
				<category><![CDATA[Agavi]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://blog.dywicki.pl/?p=176</guid>
		<description><![CDATA[Konfiguracja w XMLu ma swoje plusy jak i minusy. Nie jest tak banalna w obsłudze jak zapisana w PHP czy w .ini, ale daje dość spore możliwości. Troszkę dywagacji na ten temat było jakiś czas temu w poście pod tytułem "Dlaczego konfiguracja w XML".
Jednym z problemów związanych z XMLem jest konieczność zapamiętania nazw znaczników i [...]]]></description>
			<content:encoded><![CDATA[<p><a href='http://blog.dywicki.pl/wp-content/uploads/2007/08/xml-catalog.PNG' title='Zdefiniowany katalog ze schematami XML' style="border: 0px" rel="lightbox"><img src='http://blog.dywicki.pl/wp-content/uploads/2007/08/xml-catalog.thumbnail.PNG' alt='Zdefiniowany katalog ze schematami XML' style="margin: 0px" rel="lightbox" align="left" /></a>Konfiguracja w XMLu ma swoje plusy jak i minusy. Nie jest tak banalna w obsłudze jak zapisana w <acronym title="Pre-Hypertext Processing">PHP</acronym> czy w .ini, ale daje dość spore możliwości. Troszkę dywagacji na ten temat było jakiś czas temu w poście pod tytułem "<a href="http://blog.dywicki.pl/?p=101">Dlaczego konfiguracja w <acronym title="eXtensible Markup Language">XML</acronym></a>".<br />
Jednym z problemów związanych z XMLem jest konieczność zapamiętania nazw znaczników i atrybutów, co powoduje z początku problemy. Pisanie w XMLu nie jest wówczas tak wygodne jak w <acronym title="Pre-Hypertext Processing">PHP</acronym> (z resztą nigdy takie nie będzie), ale możemy je sobie uprościć przy pomocy dwóch opcji jakie oferuje edytor <acronym title="eXtensible Markup Language">XML</acronym> dostępny przez <a href="http://www.eclipse.org/webtools/wst/main.php">WST</a>.</p>
<p><a href='http://blog.dywicki.pl/wp-content/uploads/2007/08/catalog-entry.PNG' title='Dodanie nowego wpisu' style="border: 0px" rel="lightbox"><img src='http://blog.dywicki.pl/wp-content/uploads/2007/08/catalog-entry.thumbnail.PNG' alt='Dodanie nowego wpisu' style="margin: 0px" rel="lightbox" align="left" /></a>Pierwszym krokiem jest podpięcie własnych plików z definicjami struktur do Eclipse. Wskakujemy zatem do <b>Window &gt; Preferences</b> a następnie do <b>Web and <acronym title="eXtensible Markup Language">XML</acronym> &gt; <acronym title="eXtensible Markup Language">XML</acronym> Catalog</b>. Mamy tam listę definicji, których używa WST do podpowiadania składni. Jest miejsce na definicje użytkownika - zatem dorzucamy nowy wpis do obsługi autoload. Po pierwsze wybieramy nowy element. Do wyboru mamy dwa rodzaje źródeł - plik ze wskazanego projektu bądź z określonej lokalizacji. Drugi ma tą przewagę, że nie ma problemów z jego przenoszeniem pomiędzy różnymi workspace'ami. Po wskazaniu źródła z poprawnym dokumentem xsd bądź dtd Eclipse samo wypełni pola. Jedyne co pozostaje nam zrobić to kliknąć i potwierdzić.</p>
<p><a href='http://blog.dywicki.pl/wp-content/uploads/2007/08/new-file.PNG' title='Tworzenie nowego pliku ze schematu' style="border: 0px" rel="lightbox"><img src='http://blog.dywicki.pl/wp-content/uploads/2007/08/new-file.thumbnail.PNG' alt='Tworzenie nowego pliku ze schematu' style="margin: 0px" rel="lightbox" align="right" /></a>Po tym zabiegu możemy zabrać się za edytowanie istniejących plików bądź stworzyć nowy w oparciu o kreator.. Aby to zrobić korzystamy z opcji <b>File &gt; New &gt; Other</b> z listy wybieramy <acronym title="eXtensible Markup Language">XML</acronym> i tworzymy na podstawie schematu. Po wybraniu tej opcji mamy dostępną listę schematów, na podstawie których WST jest w stanie wygenerować szablon dokumentu.</p>
<p><a href='http://blog.dywicki.pl/wp-content/uploads/2007/08/xml-editing.PNG' title='Efekt naszych prac - podpowiadanie składni' style="border: 0px" rel="lightbox"><img src='http://blog.dywicki.pl/wp-content/uploads/2007/08/xml-editing.thumbnail.PNG' alt='Efekt naszych prac - podpowiadanie składni' style="margin: 0px" rel="lightbox" align="left" /></a> Koniec końców mamy w pełni funkcjonalne podpowiadanie składni w dokumencie <acronym title="eXtensible Markup Language">XML</acronym>. W podpowiedziach jest również dodawana informacja o krotności elementów * (zero i więcej), + (jeden i więcej), ? (zero lub jeden) a także wyświetlana dokumentacja. Gdy pracuje się z dobrze opisanym schematem - np plikiem xsd, w którym autorzy nie żałowali miejsca na adnotacje z informacjami na temat poszczególnych elementów - nie ma nawet konieczności skakania po oknach w celu doczytania informacji - jakiego atrybutu bądź znacznika użyć - po prostu mamy to od razu w edytorze. Bez jakiegokolwiek wysiłku, kilkoma kliknięciami zyskujemy funkcjonalne narzędzie. :)</p>
<p><a href='http://blog.dywicki.pl/wp-content/uploads/2007/08/template.PNG' title='Definicja szablonu' style="border: 0px" rel="lightbox"><img src='http://blog.dywicki.pl/wp-content/uploads/2007/08/template.thumbnail.PNG' alt='Definicja szablonu' rel="lightbox" style="margin: 5px" align="right" /></a>Druga opcja, która jest dostępna w większości edytorów tekstowych to zdefiniowane szablony. W celu zdefiniowania nowego szablonu w preferencjach otwieramy zakładkę <b>Web and <acronym title="eXtensible Markup Language">XML</acronym> &gt; <acronym title="eXtensible Markup Language">XML</acronym> Files &gt; Templates</b>. Znajdziemy tam listę z możliwością modyfikacji. Opcję tą odkryłem przy okazji walczenia z pisaniem schema.xml dla Propela z ręki. Była niezastąpiona i zastępowała sporo pracy związanej z tępym kopiowaniem tekstu.<a href='http://blog.dywicki.pl/wp-content/uploads/2007/08/template-usage.PNG' title='Szablon w akcji!' style="border: 0px" rel="lightbox"><img src='http://blog.dywicki.pl/wp-content/uploads/2007/08/template-usage.thumbnail.PNG' alt='Szablon w akcji!' rel="lightbox" style="margin: 5px" align="left"  /></a> W definicji szablonów mamy do dyspozycji kilka pre definiowanych zmiennych, są one przydatne podczas tworzenia szablonów nowych plików. Możemy również deklarować własne zmienne - <b>${nazwa_zmiennej}</b>. Po wstawieniu szablonu do pliku możemy się nawigować po miejscach wystąpień zmiennych przy użyciu tabulatora. Miejsca, w których powtarzają się te same nazwy zmiennych są automatycznie uzupełniane, tak, że wpisując przy pierwszej zmiennej ${name} nie musimy powtarzać tej czynności w drugim miejscu.</p>
<p>Mam nadzieję, że przyda się w praktyce! Przy okazji pragnę Was, drodzy czytelnicy, poprosić o opinie na temat lightboxa, czy nie przeszkadza Wam jego użycie, być może wolicie tradycyjne linki do plików? Pomijam efekty graficzne, bo wygaszanie tła etc przy trzecim razie bardziej irytuje niż cieszy oko. Jak sądzicie - usunąć lightboxa? Momentami mam też problemy z rozmieszczaniem "obrazków" stąd są prozżucane po akapitach raz z lewej raz z prawej ponieważ przy mniejszych rozdzielczościach zachodzą na siebie, co powoduje niezbyt miłe efekty.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dywicki.pl/2007/08/02/wygodny-edytor-do-konfiguracji-xml/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Eclipse Europa, krótki przegląd</title>
		<link>http://blog.dywicki.pl/2007/07/30/eclipse-europa-review/</link>
		<comments>http://blog.dywicki.pl/2007/07/30/eclipse-europa-review/#comments</comments>
		<pubDate>Mon, 30 Jul 2007 19:53:05 +0000</pubDate>
		<dc:creator>Łukasz Dywicki</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Wiadomości]]></category>

		<guid isPermaLink="false">http://blog.dywicki.pl/?p=150</guid>
		<description><![CDATA[Odyseja kosmiczna 2007

Zastanawiałem się kiedyś skąd twórcy Eclipse biorą nazwy dla kolejnych wydań. O ile samo Callisto ma wiele znaczeń (mitologiczna kochanka Zeusa, postać filmowa, księżyc Jowisza, komiks, model samochodu czy też kapela) o tyle w parze z Europą, najnowszym wydaniem kwestia staje się jasna. Bez wątpienia chodzi tu o księżyce Jowisza. Troszkę zadziwiający jest [...]]]></description>
			<content:encoded><![CDATA[<h2>Odyseja kosmiczna 2007</h2>
<p>
Zastanawiałem się kiedyś skąd twórcy Eclipse biorą nazwy dla kolejnych wydań. O ile samo <a href="http://www.eclipse.org/callisto/">Callisto</a> ma wiele znaczeń (<a href="http://en.wikipedia.org/wiki/Callisto_%28mythology%29">mitologiczna kochanka Zeusa</a>, <a href="http://en.wikipedia.org/wiki/Callisto_%28Xena%29">postać filmowa</a>, <a href="http://en.wikipedia.org/wiki/Callisto_%28moon%29">księżyc Jowisza</a>, <a href="http://en.wikipedia.org/wiki/Callisto_%28comics%29">komiks</a>, <a href="http://en.wikipedia.org/wiki/Cadillac_Allant%C3%A9">model samochodu</a> czy też <a href="http://en.wikipedia.org/wiki/Callisto_%28band%29">kapela</a>) o tyle w parze z <a href="http://www.eclipse.org/europa/">Europą</a>, najnowszym wydaniem kwestia staje się jasna. Bez wątpienia chodzi tu o <a href="http://pl.wikipedia.org/wiki/Galileuszowe_ksi%C4%99%C5%BCyce_Jowisza">księżyce Jowisza</a>. Troszkę zadziwiający jest fakt, że dobór nazw nie zbiega się z kolejnością księżyców (największy jest <a href="http://pl.wikipedia.org/wiki/Ganimedes_%28ksi%C4%99%C5%BCyc%29">Ganimedes</a>, następnie <a href="http://pl.wikipedia.org/wiki/Kallisto_%28ksi%C4%99%C5%BCyc%29">Callisto</a>, <a href="http://pl.wikipedia.org/wiki/Io_%28ksi%C4%99%C5%BCyc%29">Io</a> i na samym końcu <a href="http://pl.wikipedia.org/wiki/Europa_%28ksi%C4%99%C5%BCyc%29">Europa</a>). No, może dywagacje na temat nazw i pochodzenia pozostawimy, chociaż "astronomiczny" akcent Eclipse nas na długo nie opuści, bowiem w notce tej zamierzam przedstawić wcześniej wymienione, najświeższe, wydanie - Europę.
</p>
<h2>Historia wydań</h2>
<p>
Były czasy, kiedy skompletowanie sobie wszystkich potrzebnych pluginów do Eclipse wymagało wiele wysiłku. A to stąd pobrać GMF, stąd JET, do tamtego jeszcze coś i tak przez pół dnia. Każdy projekt miał własny update site, który zawierał mniej czy też bardziej stabilne wersje. Wykorzystanie funkcjonalności "select required" ograniczało się tylko i wyłącznie do tego, że po kliknięciu w przycisk po prostu klęliśmy, że nie działa i trzeba szukać kolejnego update site'a. Problem ten definitywnie rozwiązało Callisto. Na jego podstawie zostały zasadniczo stworzone trzy "dystrybucje". Pierwsza dla programistów J2SE, druga dla osób zajmujących się Eclipse od podszewki oraz trzecia dla programistów C/C++. Dodatkowo korzystając z istniejących pakietów można przy użyciu update managera stworzyć pakiet dostosowany do własnych potrzeb.<br />
Europa <a href="http://blog.dywicki.pl/2007/06/09/europa-nadchodzi/">jak wcześniej wspominałem</a> jest znacznie większa, ponieważ zawiera aż 21 projektów podczas gdy na Callisto składało się ich "tylko" 10. Ponadto nowe wydanie zawiera dodatkową dystrybucję przeznaczoną do pracy z JEE. Myślę, że wielkość tego wydania jest znakomitym dowodem popularności Eclipse jak i prężności developerów.<br />
Jako ciekawostkę dodam kilka liczb, na które trafiłem dzięki <a href="http://ianskerrett.wordpress.com/2007/06/15/how-big-is-the-europa-release/">notce</a> na <a href="http://ianskerrett.wordpress.com/">blogu Iana Skerretta</a><br />
<a href="http://www.ohloh.net/accounts/4244/stacks/default;metrics">Wartość 16 projektów</a> spośród 21, notowanych na <a href="http://www.ohloh.net">Ohloh.net</a> to, uwaga, 305 991 384 dolarów (słownie trzysta pięć milionów, dziewięćset dziewięćdziesiąt jeden tysięcy, trzysta osiemdziesiąt cztery dolary). Jest to wartość około 19 339 912 linii kodu rozwijanych ostatnimi czasy przez 312 osób!
</p>
<h2>Dostępne dystrybucje</h2>
<p><div style="padding-bottom: 8px; vertical-align: top;"><img src="http://blog.dywicki.pl/wp-content/uploads/2007/07/java.jpg" alt="Eclipse Java (distro)" style="margin: 5px; float: left; display: inline;" /> <b>Java</b>. Dystrybucja przeznaczona do pracy z J2SE. Sercem platformy jest JDT (Java Development Tools), czyli "standardowy" edytor rozbudowany o nowe opcje. Zawiera część WTP (edycja <acronym title="eXtensible Markup Language">XML</acronym>, XSD itp).</div>
<div style="padding-bottom: 8px; vertical-align: top;"><img src="http://blog.dywicki.pl/wp-content/uploads/2007/07/jee.jpg" alt="Eclipse JEE (distro)" style="margin: 5px; float: left; display: inline;" /> <b>JEE</b>.Wersja przeznaczona do pracy z JEE jak i "starym" J2EE. Zawiera WTP 2.0 (Web Tools Platform) oraz JST (J2EE Standard Tools) - wsparcie dla edycji JSF, JSP itp. Zapewnia wsparcie dla JPA. Jest to najbardziej "wypasiona" dystrybucja, ponieważ zawiera większość projektów wydanych w ramach Europy.</div>
<div style="padding-bottom: 8px; vertical-align: top"><img src="http://blog.dywicki.pl/wp-content/uploads/2007/07/classic2.jpg" alt="Eclipse Classic (distro)" style="margin: 5px; float: left; display: inline;" /> <b>Classic</b>. Dystrybucja będąca miksem wersji Java i RCP. Zawiera źródła projektów, dokumentację nie tylko dla użytkowników ale i dla developerów. Przeznaczona do tworzenia aplikacji w oparciu o Eclipse RCP jak i rozszerzeń samej platformy.</div>
<div style="padding-bottom: 8px;"><img src="http://blog.dywicki.pl/wp-content/uploads/2007/07/c.jpg" alt="Eclipse C++ (distro)" style="margin: 5px; float: left; display: inline;"  /> <b>C/C++</b>. Kompletne środowisko dla programistów piszących w językach C/C++ oparte na Eclipse. Całość okrojona do CDT/CVS/RCP. Brak źródeł jakichkolwiek pluginów, wsparcia dla czegoś niezwiązanego z C/C++. Tylko ta dystrybucja nie jest zintegrowana z Mylynem.</div>
<div style="padding-bottom: 8px;"><img src="http://blog.dywicki.pl/wp-content/uploads/2007/07/rcp.jpg" alt="Eclipse RCP (distro)" style="margin: 5px; float: left; display: inline;" /> <b>RCP</b>. Pochodna wersji Classic okrojona tylko o ilość źródeł (nie zawiera źródeł JDT, <acronym title="Concurrent Versions System">CVS</acronym>)</div>
<p>Wszystkie wymienione wyżej dystrybucje można oczywiście modyfikować przy pomocy standardowej aktualizacji. Są to tylko pre definiowane wersje, które mają na celu ograniczenie do minimum ilości pracy potrzebnej do skompletowania środowiska. Przy użyciu każdej z tych dystrybucji możemy praktycznie od razu zacząć pracę. Drobnym wyjątkiem jest tutaj C++, ale o tym dalej..</p>
<p> <!-- koniec dystrybucji --></p>
<h2>Najciekawsze rozwiązania</h2>
<h3><a href="http://www.eclipse.org/mylyn/">Mylyn 2.0</a></h3>
<p><a href='http://blog.dywicki.pl/wp-content/uploads/2007/07/mylyn-task-edit.PNG' title='Edycja zadania (Mylyn)' rel="lightbox" style="border: 0px"><img src='http://blog.dywicki.pl/wp-content/uploads/2007/07/mylyn-task-edit.thumbnail.PNG' alt='Edycja zadania (Mylyn)' rel="lightbox" style="border: 0px none ; margin: 10px;" align="right"/></a>Zdaje się, że Mylyn stał się perełką całej platformy, aż dziw bierze, że tak proste narzędzie powstało "dopiero" teraz. Piszę dopiero, ponieważ rozszerzenie to ma już kilka lat, jednak dopiero niedawno pojawił się "szum medialny" wokół niego. Pierwsze screencasty, prezentacje i w rezultacie gwałtowny wzrost popularności rozszerzenia. Jest to jeden z najwyżej ocenianych i najbardziej aktywnych dodatków do platformy na <a href="http://www.eclipseplugincentral.com/">Eclipse Plugins Central</a>.</p>
<p><a href='http://blog.dywicki.pl/wp-content/uploads/2007/07/mylyn-repository-queries.PNG' title='Przeglądanie zapytań (Mylyn)' rel="lightbox" style="border: 0px" ><img src='http://blog.dywicki.pl/wp-content/uploads/2007/07/mylyn-repository-queries.thumbnail.PNG' alt='Przeglądanie zapytań (Mylyn)' rel="lightbox"  style="border: 0px none ; margin: 10px;" align="right" /></a> Czym jest Mylyn? Mylyn to narzędzie integrujące Eclipse z repozytoriami zadań takimi jak JIRA, Trac, Bugzilla i tak dalej. Dane, które pobierze z repozytorium zapisuje lokalnie i co jakiś czas synchronizuje. W ten sposób w Eclipse możemy przeglądać i monitorować przebieg prac nad danym zadaniem. Co więcej, jeśli do zadania dołączymy kontekst (załącznik). W odpowiedniej perspektywie możemy przeglądać listę zadań (zapytań). Na liście tej są oznaczone zadania, które są zakończone, otwarte, aktywne czy też jeszcze nie przeczytane. </p>
<p> <a href='http://blog.dywicki.pl/wp-content/uploads/2007/07/mylyn-query-edit.PNG' title='Edycja zapytania (Mylyn)' rel="lightbox" style="border: 0px"><img src='http://blog.dywicki.pl/wp-content/uploads/2007/07/mylyn-query-edit.thumbnail.PNG' alt='Edycja zapytania (Mylyn)' rel="lightbox" style="border: 0px none ; margin: 10px;" align="right" /></a> Mylyna można stosunkowo łatwo rozszerzać. Coraz więcej dostawców integruje swoje narzędzia z Mylynem dzieki czemu kontekst może obejmować nie tylko Package explolera ale również widoki tj outline itp. Sam nawet próbowałem troszkę powalczyć z tym rozszerzaniem, niestety z racji na to, że zdecydowałem się na próbę Mylyn-PDT poległem. Przykładowe implementacje są bardzo proste. Patrząc na klasy dostarczone razem z Mylynem modyfikujące zawartość różnych widoków można stwierdzić, że to w sumie nie jest trudne. No, ale w praktyce bywa inaczej. <a href='http://blog.dywicki.pl/wp-content/uploads/2007/07/mylyn-navigator-edit.PNG' title='Modyfikowanie widoku nawigatora (Mylyn)' rel="lightbox" style="border: 0px"><img src='http://blog.dywicki.pl/wp-content/uploads/2007/07/mylyn-navigator-edit.thumbnail.PNG' alt='Modyfikowanie widoku nawigatora (Mylyn)' rel="lightbox"  style="border: 0px none ; margin: 10px;" align="right" /></a><br />
O ile braki w komentarzach tego pierwszego można uzupełnić odwiedzając <a href="http://wiki.eclipse.org/Mylyn#Developer_Reference">wiki</a> o tyle z PDT tak łatwo już nie jest. Wszędzie jakieś braki w komentarzach, trafiają się fragmenty, gdzie jest publiczny interfejs a nie ma w nim nawet linijki komentarzy. Wydaje mi się, że takie sytuacje raczej nie sprzyjają <a href="http://www.eclipse.org/pdt/summer_camp.php">PDT Summer Camp</a>. No, ale do PDT 1.0 mamy jeszcze troszkę czasu, więc być może coś w tym projekcie się poprawi....</p>
<p><a href='http://blog.dywicki.pl/wp-content/uploads/2007/07/mylyn-java-folding.PNG' title='Integracja z JDT (Mylyn)' rel="lightbox" style="border: 0px"><img src='http://blog.dywicki.pl/wp-content/uploads/2007/07/mylyn-java-folding.thumbnail.PNG' alt='Integracja z JDT (Mylyn)' rel="lightbox"  style="border: 0px none ; margin: 10px;" align="right" /></a> <a href='http://blog.dywicki.pl/wp-content/uploads/2007/07/mylyn-context-edit.PNG' title='Edycja kontekstu (Mylyn)' rel="lightbox" style="border: 0px"><img src='http://blog.dywicki.pl/wp-content/uploads/2007/07/mylyn-context-edit.thumbnail.PNG' alt='Edycja kontekstu (Mylyn)' rel="lightbox"  style="border: 0px none ; margin: 10px;" align="left" /></a> Na koniec dodam jeszcze dwa screenshoty pokazujące, jak głęboko Mylyn jest zintegrowany z edytorem tekstu. Może on "zawijać" te fragmenty kodu, które nie mają nic wspólnego z zadaniem pozostawiając tylko te, które są zawarte w kontekście. Świetna sprawa, gdy ma się klasy, które mają kilkaset linii kodu i odnalezienie w nich metody to wyłapywanie nazwy w outline. ;)
</p>
<p>Mylyn bez wątpienia jest rozszerzeniem godnym uwagi. Jeśli w pracy macie do czynienia ze sporym stosem kodu w którym często na zmianę łatacie różne błędy to bardzo ułatwi on Wam życie. Wydaje mi się, że na tą chwilę żadne środowisko nie posiada tak dobrej integracji z repozytoriami zadań.<br />
Osobiście jest to dla mnie najlepsza rzecz jaka weszła do Europy.</p>
<h3><a href="http://wiki.eclipse.org/index.php/Rich_Client_Platform">Eclipse RCP 3.3/JFace</a></h3>
<p><a href='http://blog.dywicki.pl/wp-content/uploads/2007/07/eclipse-mini.PNG' title='Eclipse mini (RCP)' rel="lightbox" style="border: 0px"><img src='http://blog.dywicki.pl/wp-content/uploads/2007/07/eclipse-mini.thumbnail.PNG' alt='Eclipse mini (RCP)' rel="lightbox" style="margin: 5px; float: left;" valign="middle" /></a> <a href='http://blog.dywicki.pl/wp-content/uploads/2007/07/eclipse-mini-2.PNG' title='Eclipse mini (RCP) - wysunięty outline' rel="lightbox" style="border: 0px"> <img src='http://blog.dywicki.pl/wp-content/uploads/2007/07/eclipse-mini-2.thumbnail.PNG' alt='Eclipse mini (RCP) - wysunięty outline' rel="lightbox" style="margin: 5px; float: left;" /> </a>  <a href='http://blog.dywicki.pl/wp-content/uploads/2007/07/eclipse-mini-3.PNG' title='Eclipse mini (RCP) - wysunięta konsola' rel="lightbox" style="border: 0px"> <img src='http://blog.dywicki.pl/wp-content/uploads/2007/07/eclipse-mini-3.thumbnail.PNG' alt='Eclipse mini (RCP) - wysunięta konsola' rel="lightbox" style="margin: 5px; float: left;" /> </a> <!-- początek treści -->. W nowej wersji jest kilka usprawnień. Najbardziej istotnym jest nowy sposób na zarządzanie widoków. Wcześniej widoki mogły wysuwać się tylko z jednej strony. Nie było czegoś takiego jak "fast view" na modłę Visual Studio, gdzie zakładki chowały się bądź pokazywały gdy najeżdżało się na nie myszą. Połowicznym sposobem na ten problem była minimalizacja/maksymalizacja widoku.<br />
Połowicznym, ponieważ pokazanie konsoli powodowało ponowne pokazanie wszystkich widoków. Od wersji 3.3 możemy wybierać który widok ma się pokazać dynamicznie, minimalizować całe "grupy" widoków. Jak dla mnie bomba, dzięki temu mogę napisać sobie na szybko coś w edytorze mając widoczny tylko outline i dynamicznie wysuwaną konsolę, bez niepotrzebnych mi widoków. Dodam, że widoki zachowują się tak samo w RCP jak również IDE. Dodając do tego również <a href="http://www.eclipse.org/epp/">Eclipse Packaging Project</a> [nie jest częścią Europy] w połączeniu z <a href="http://www.eclipse.org/pde/">PDE</a> zyskujemy środowisko do tworzenia aplikacji okienkowych od A (kodowanie) do Z (tworzenie instalatorów).</p>
<h3><a href="http://eclipse.org/jdt/">JDT 3.3</a></h3>
<p>Wraz z ewolucją platformy postępuje ewolucja JDT, które jest pokazem możliwości Eclipse. Wiele osób kojarzy JDT z Eclipse, chociaż tak nie jest JDT to tylko przykładowa (chociaż bardzo dobra) implementacja środowiska w oparciu o Eclipse. Nowa wersja dodaje kilka usprawnień.<br />
<a href='http://blog.dywicki.pl/wp-content/uploads/2007/07/save-actions.PNG' title='Save actions (JDT)' style="border: 0px;" rel="lightbox"><img src='http://blog.dywicki.pl/wp-content/uploads/2007/07/save-actions.thumbnail.PNG' alt='Save actions (JDT)' style="margin: 5px" rel="lightbox" align="left" /></a>1. Save actions. W chwili gdy zapisujemy edytowany plik JDT może wykonać różne operacje. Od usunięcia zbędnych importów i dodania adnotacji @Override/@Deprecated tam gdzie trzeba przez posortowanie pól, metod bo nazwach oraz formatowanie kodu po rzecz tak błahą jak usunięcie zbędnych spacji z końca linii. Nigdy więcej wciskania Ctrl+Shift+O, Ctrl+Shift+F, zrobi to za Ciebie edytor! Sam powoli zaczynam walczyć ze sobą by nie wciskać pierwszego z tych skrótów przed zapisaniem pliku.<br />
<a href='http://blog.dywicki.pl/wp-content/uploads/2007/07/spell-check.PNG' title='Spell check (JDT)' style="border: 0px;" rel="lightbox"><img src='http://blog.dywicki.pl/wp-content/uploads/2007/07/spell-check.thumbnail.PNG' alt='Spell check (JDT)' style="margin: 5px" rel="lightbox" align="left" /></a><a href='http://blog.dywicki.pl/wp-content/uploads/2007/07/spell-check2.PNG' title='Spell check (JDT) - popraw ten wyraz!' style="border: 0px;" rel="lightbox"><img src='http://blog.dywicki.pl/wp-content/uploads/2007/07/spell-check2.thumbnail.PNG' alt='Spell check (JDT) - popraw ten wyraz!' style="margin: 5px" rel="lightbox" align="left" /></a>2. Spelling. Sprawdzanie pisowni w edytorze? Czemu nie, w końcu komentarze powinny być pisane językiem zrozumiałym dla wszystkich, nie tylko dla autora. ;) Opcja ta pozwoli wyłapać literówki, nie sprawdzi jednak czy zdanie jest poprawne pod kontem składni czy gramatyki. Tak czy owak lepiej poprawić błąd w komentarzu zanim kod się wrzuci do repozytorium niż po fakcie, gdy ktoś zwróci nam uwagę. Błędy składni JDT podkreśla miłym dla oka żółtym kolorem. Niestety nie udało mi się poprawnie skonfigurować słownika dla języka polskiego. Wersja z Open Office/kurnik.pl jest zapisana w troszkę innym formacie niż wymaga plugin, co powoduje problemy.<br />
3. Zmienione zachowanie skrótu CTRL+F11. Domyślnie skrót ten uruchamia ostatnią konfigurację dla aktywnego pliku. Prawdę powiedziawszy doprowadzało mnie to do szewskiej pasji i zmieniłem to na standardowe zachowanie tak by działało tak jak wcześniej, czyli ostatnia uruchomiona konfiguracja.<br />
<a href='http://blog.dywicki.pl/wp-content/uploads/2007/07/catch.PNG' title='Łapanie wyjątku (JDT)' style="border: 0px" rel="lightbox"><img src='http://blog.dywicki.pl/wp-content/uploads/2007/07/catch.thumbnail.PNG' alt='Łapanie wyjątku (JDT)' style="margin: 0px" align="left" rel="lightbox" /></a> 4. Podpowiadanie w blokach catch. Standardowo trzeba było tam wpisywać z "palca" nazwę wyjątku posiłkując się inspectorem. W wersji 3.3 do wyboru mamy tylko te wyjątki, które wylecą z danego bloku.
</p>
<p>Drobnych zmian jest więcej, nie mniej ich opis pomijam z racji na to, że nie ma to być changelog a tylko informacja o tym, co się stało. Tak więc z mniej istotnych - skrót do nawigacji po widokach (CTRL+F3) bądź usprawnione podpowiadanie w edytorach PDE bądź "rename in line", czyli bezpośredni podgląd zmian nazwy elementu bez konieczności uruchamiania kreatora.</p>
<h3><a href="http://www.eclipse.org/webtools/main.php">Web Tools 2.0</a></h3>
<p>Projekt ten obejmuje wiele subprojektów, których ilość jest dość spora. <a href="http://www.eclipse.org/webtools/wst/main.php"><b>Web Standard Tools</b></a> to nic innego jak komplet edytorów do edycji plików xml, xsd, html, css, js, wsdl i tak dalej. Zmian w stosunku do poprzednich wersji nie odnotowałem [czyt. nie zauważyłem].<br />
Screenshoty z wersji 1.5: <a href="http://img.dywicki.pl/xml1.png"><acronym title="eXtensible Markup Language">XML</acronym> 1</a>, <a href="http://img.dywicki.pl/xml2.png"><acronym title="eXtensible Markup Language">XML</acronym> 2</a>, <a href="http://img.dywicki.pl/xsd1.png">XSD 1</a>, <a href="http://img.dywicki.pl/xsd2.png">XSD 2</a>, <a href="http://img.dywicki.pl/xsd3.png">XSD 3</a>.</p>
<h3><a href="http://www.eclipse.org/webtools/jst/main.php">J2EE Standard Tools</a></h3>
</p>
<p><a href='http://blog.dywicki.pl/wp-content/uploads/2007/07/visual-editor.PNG' title='Visual Web Page Editor (JST)' style="border: 0px" rel="lightbox"><img src='http://blog.dywicki.pl/wp-content/uploads/2007/07/visual-editor.thumbnail.PNG' alt='Visual Web Page Editor (JST)' style="margin: 5px" rel="lightbox" align="right" /></a>Jednym słowem: kobyła. Jeśli jest coś w J2EE/JEE czego nie można edytować przy użyciu tego narzędzia to musi to być chyba jakaś spora nowość. ;) Na uwagę zasługuje poprawiony edytor graficzny, który sprawuje się całkiem dobrze nawet przy nie do końca poprawnej strukturze pliku. Potrafi on sobie poradzić [czyt. ominąć] skryplety i bardzo ładnie zaznacza elementy zawarte w tagach jsp - niezależnie od tego czy jest to logic:empty (struts) czy też c:if (jstl). Edytor graficzny jest połączony z edytorem tekstowym. Po kliknięciu na jakiś komponent w edytorze graficznym w edytorze tekstowym zostanie on zaznaczony. Problemem z JST jest niestety jego "ręczna" konfiguracja. Nie ma nigdzie opcji pozwalającej na zmianę katalogu zawierającego pliki przeznaczone do spakowania w WAR. Przy korzystaniu z Mavena trzeba edytować plik konfiguracyjny pluginu!<br />
Oczywiście sam plugin ma bardzo wiele opcji - można przy jego pomocy tworzyć aplikacje w oparciu o EJB2.1/3 a także z użyciem JPA, niestety nie miałem do tej pory okazji do wykorzystania tegoż, stąd rezygnuję z opisu.</p>
<h3><a href="http://www.eclipse.org/cdt/">CDT 4.0</a></h3>
<p><a href='http://blog.dywicki.pl/wp-content/uploads/2007/07/cdt-editor.PNG' title='Edytor C++ (CDT)' style="border: 0px" rel="lightbox"><img src='http://blog.dywicki.pl/wp-content/uploads/2007/07/cdt-editor.thumbnail.PNG' alt='Edytor C++ (CDT)'  style="margin: 5px" rel="lightbox" align="left" /></a>Nie jestem programistą C/C++ i gdyby nie studia to prawdopodobnie uniknąłbym konieczności poznawania CDT. No, ale okazja się nadarzyła, i prawdę powiedziawszy nie mam powodów by żałować. Do C++ jest wiele środowisk. Jest komercyjne (Visual C++) i niekomercyjne (Visual C++ Express Edition) jak i DevCpp. Są zapewne też inne, mniej bądź bardziej popularne. Mi się nie spodobało ani jedno ani drugie, być może z racji na przyzwyczajenie do Eclipse, jakkolwiek samo CDT również ustępuje JDT, chociaż patrząc na DevCpp oferuje (tu piszę bardzo subiektywnie) większą funkcjonalność.<br />
<a href='http://blog.dywicki.pl/wp-content/uploads/2007/07/cdt-editor2.PNG' title='Edytor C++ (CDT) - podpowiadanie składni' style="border: 0px" rel="lightbox"><img src='http://blog.dywicki.pl/wp-content/uploads/2007/07/cdt-editor2.thumbnail.PNG' alt='Edytor C++ (CDT) - podpowiadanie składni'  style="margin: 5px" rel="lightbox" align="left" /></a>Edytor sprawuje się bardzo dobrze, podpowiada tam gdzie trzeba to co trzeba. Mamy do dyspozycji gro opcji - od formatowania kodu przez dyrektywy kompilatora, dodatkowe biblioteki i tak dalej. Opcji jest multum i ja jako nowicjusz nie miałem okazji by wykorzystać wszystkie.<br />
Bolączką jest niestety brak dorzucania dyrektyw #include tak jak to ma miejsce w przypadku JDT, gdzie wybieramy klasę i import już jest. <a href='http://blog.dywicki.pl/wp-content/uploads/2007/07/cdt-editor3.PNG' title='Edytor C++ (CDT) - kolorowanie składni w szablonach' style="border: 0px" rel="lightbox"><img src='http://blog.dywicki.pl/wp-content/uploads/2007/07/cdt-editor3.thumbnail.PNG' alt='Edytor C++ (CDT) - kolorowanie składni w szablonach' style="margin: 5px" rel="lightbox" align="left" /></a>Trzeba się też przyzwyczaić do tego, że błędy zostaną podkreślone dopiero po próbie kompilacji, ponieważ ta wtyczka bazuje na tym, co zwróci kompilator w czasie pracy, nie ma możliwości weryfikacji kodu just-in-time. Jest za to debugger oparty o gdb. Działa on bardzo dobrze i nie ma problemów z jego użyciem. Nie odbiega on wiele od tego, co ma Java.<br />
Troszkę Brakuje mi czegoś na modłę "quick fix", gdzie wybieramy proponowane rozwiązanie dla danego problemu. Zapewne wynika to w dużej mierze z tego, że C++ jest językiem bardziej złożonym (mniej doskonałym?) niż Java i samo zaimplementowanie mechanizmu propozycji eliminacji błędów byłoby bardzo kłopotliwe. Kto wie, być może w przyszłych wersjach będziemy mogli zobaczyć więcej. Wierzę, że developerzy pracujący nad tym pluginem mają ambicje by tworzyć najlepsze środowisko do C++, które będzie miało funkcjonalność taką samą bądź jeszcze lepszą niż JDT. <a href='http://blog.dywicki.pl/wp-content/uploads/2007/07/cdt-options.PNG' title='Przegląd opcji (CDT) - formater'  style="border: 0px" rel="lightbox"><img src='http://blog.dywicki.pl/wp-content/uploads/2007/07/cdt-options.thumbnail.PNG' alt='Przegląd opcji (CDT) - formater' style="margin: 5px" rel="lightbox" align="left" /></a> Samo CDT 4.0 dosyć szybko stanęło w szranki z WTP o pierwsze miejsce pod względem ilości pobrań. Przegrało po kilku dniach walki. Taki stan rzeczy (CDT wciąż jest drugie) może świadczyć o sporym zainteresowaniu takim środowiskiem w społeczności programistów C/C++. Trzymam kciuki za rozwój tego projektu, ponieważ z nim pisanie w C++ stało się dla mnie przyjemnością! :)</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dywicki.pl/2007/07/30/eclipse-europa-review/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Eclipse Persistence Services Project</title>
		<link>http://blog.dywicki.pl/2007/06/13/eclipse-persistence-services-project/</link>
		<comments>http://blog.dywicki.pl/2007/06/13/eclipse-persistence-services-project/#comments</comments>
		<pubDate>Tue, 12 Jun 2007 23:11:19 +0000</pubDate>
		<dc:creator>Łukasz Dywicki</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Wiadomości]]></category>

		<guid isPermaLink="false">http://blog.dywicki.pl/?p=144</guid>
		<description><![CDATA[Dzisiaj (w zasadzie wczoraj) w otchłani skrzynki odbiorczej RSSOwl znalazłem link do propozycji wspomnianego projektu.
Czym ma on być? Ma być ujednoliconym szkieletem umożliwiającym programistom dostęp do baz danych, dokumentów XML jak i zewnętrznych systemów pokroju EAI przy użyciu istniejących technologii tj. Java Persistence API (JPA), Java Architecture for XML Binding (JAXB), Java Connector Architecture (JCA), [...]]]></description>
			<content:encoded><![CDATA[<p>Dzisiaj (w zasadzie wczoraj) w otchłani skrzynki odbiorczej <a href="http://rssowl.org/">RSSOwl</a> znalazłem <a href="http://www.eclipse.org/proposals/eclipselink/">link do propozycji</a> wspomnianego projektu.</p>
<p>Czym ma on być? Ma być ujednoliconym szkieletem umożliwiającym programistom dostęp do baz danych, dokumentów <acronym title="eXtensible Markup Language">XML</acronym> jak i zewnętrznych systemów pokroju <a href="http://en.wikipedia.org/wiki/Enterprise_application_integration">EAI</a> przy użyciu istniejących technologii tj. <a href="http://java.sun.com/javaee/technologies/persistence.jsp">Java Persistence <acronym title="Application Programming Interface">API</acronym></a> (JPA), <a href="http://java.sun.com/xml/downloads/jaxb.html">Java Architecture for <acronym title="eXtensible Markup Language">XML</acronym> Binding</a> (JAXB), <a href="http://java.sun.com/j2ee/connector/download.html">Java Connector Architecture</a> (JCA), and <a href="http://www.ibm.com/developerworks/java/library/j-sdo/">Service Data Objects</a> (SDO). Cel ma być uzyskany we współpracy ze specjalistami od <a href="http://www.osgi.org/">OSGi</a> przy pomocy implementacji przykładowych implementacji, które pokażą jak używać wcześniej wymienionych interfejsów. Dzięki oparciu całości na platformie OSGi pomysłodawcy chcą zyskać niebywałą do tej pory w tego typu projektach przenośność i modularność co w połączeniu ma zaowocować mariażami (a może mezaliansami) różnego rodzaju.<br />
Na stronie z propozycją jest prosty schemat, który wstępnie obrazuje architekturę szkieletu:</p>
<p><a href="http://blog.dywicki.pl/wp-content/uploads/2007/06/eclipselink.gif" title="Eclipse Persistence Services Project" rel="lightbox"><img src="http://blog.dywicki.pl/wp-content/uploads/2007/06/eclipselink.gif" alt="Eclipse Persistence Services Project" rel="lightbox" style="border: 0px;" align="center" /></a></p>
<p>Warto zwrócić uwagę na to, że całość projektu nie będzie uzależniona od Eclipse jako takiego a jest tylko rozwijana w ramach <a href="http://www.eclipse.org/org/foundation/">fundacji eclipse</a>. Całość będzie można używać zarówno z poziomu <a href="http://java.sun.com/javaee/">Javy EE</a> jak i Javy SE (jak domniemywam również Swing).</p>
<p>Głównym pomysłodawcą projektu jest <a href="http://www.oracle.com/">Oracle</a> z którego ramienia będzie póki co pracować najwięcej developerów, głównie tych, którzy wcześniej zajmowali się <a href="http://www.oracle.com/technology/products/ias/toplink/index.html">TopLinkiem</a>. Jakkolwiek w deklaracji pod koniec propozycji pada zdanie czy też zaproszenie - drzwi są otwarte dla chętnych. :)</p>
<p>Osobiście jestem bardzo ciekaw efektów jakie przyniesie ten projekt, ponieważ znacznie by on ułatwił prace nad aplikacjami stricle biznesowymi opartymi na <a href="http://wiki.eclipse.org/index.php/Rich_Client_Platform">Eclipse RCP</a> z racji na to, że wystarczy podpiąć się do dostarczonych usług OSGi by móc korzystać z bazy danych czy też wyciągać dane z jakiegoś podsystemu. Fajnie by było uprościć walki, powiedzmy z Hibernate i jego używaniem pod RCP.<br />
Dodam, że Eclipse Persistence Services to kolejny "dość egzotyczny" projekt realizowany w ramach fundacji nie związany ściśle z platformą Eclipse - wystarczy wspomnieć <a href="http://www.eclipse.org/ecf/">Eclipse Communication Framework</a> z inkubatora, który w wersji 1.0 wchodzi już w skład najbliższego zbiorczego wydania - <a href="http://www.eclipse.org/europa/projects.php">Europy</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.dywicki.pl/2007/06/13/eclipse-persistence-services-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Europa nadchodzi..</title>
		<link>http://blog.dywicki.pl/2007/06/09/europa-nadchodzi/</link>
		<comments>http://blog.dywicki.pl/2007/06/09/europa-nadchodzi/#comments</comments>
		<pubDate>Sat, 09 Jun 2007 08:22:15 +0000</pubDate>
		<dc:creator>Łukasz Dywicki</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Wiadomości]]></category>

		<guid isPermaLink="false">http://blog.dywicki.pl/?p=142</guid>
		<description><![CDATA[Od jakiegoś czasu na stronie Eclipse możemy spotkać bardzo miły button sygnalizujący nadejście nowego zbiorczego wydania Eclipse i narzędzi zależnych. Europa to potomek Callisto, z jedną drobną różnicą.. Europa obejmuje 21 projektów podczas gdy Callisto obejmowało ich 10.
W skład Europy wchodzą między innymi:

AspectJ Development Tools (AJDT) 1.5
C/C++ Development Tools (CDT) 4.0
Dynamic Languages Toolkit (DLTK) 1.0
Eclipse [...]]]></description>
			<content:encoded><![CDATA[<p>Od jakiegoś czasu <a href="http://eclipse.org">na stronie Eclipse</a> możemy spotkać bardzo miły button sygnalizujący nadejście nowego zbiorczego wydania Eclipse i narzędzi zależnych. <a href="http://www.eclipse.org/europa/">Europa</a> to potomek <a href="http://www.eclipse.org/callisto/">Callisto</a>, z jedną drobną różnicą.. Europa obejmuje 21 projektów podczas gdy Callisto obejmowało ich 10.<br />
W skład Europy wchodzą <a href="http://www.eclipse.org/europa/projects.php">między innymi</a>:</p>
<ul>
<li><a href="http://www.eclipse.org/ajdt/">AspectJ Development Tools (AJDT)</a> 1.5</li>
<li><a href="http://www.eclipse.org/cdt">C/C++ Development Tools (CDT)</a> 4.0</li>
<li><a href="http://www.eclipse.org/dltk/">Dynamic Languages Toolkit (DLTK)</a> 1.0</li>
<li><a href="http://www.eclipse.org/ecf/">Eclipse Communication Framework (ECF)</a> 1.0</li>
<li><a href="http://www.eclipse.org/emf/">Eclipse Modeling Framework (EMF)</a> 2.3</li>
<li><a href="http://www.eclipse.org/gef/">Graphical Editing Framework (GEF)</a> 3.3</li>
<li><a href="http://www.eclipse.org/gmf/">Graphical Modeling Framework (GMF)</a> 2.2</li>
<li><a href="http://www.eclipse.org/mylar/">Mylar</a> 2.0</li>
<li><a href="http://www.eclipse.org/webtools/main.php">Web Tools Platform (WTP)</a> 2.0</li>
</ul>
<p>Zbiorcze wydania takie jak Europa czy Eclipse ułatwiają pracę wszystkim. Począwszy od developerów pluginów kończąc na użytkownikach walczących z zależnościami pomiędzy nimi (skąd ja im wytrzasnę EMF 2.2.1.234?!). Europa ma określone <a href="http://wiki.eclipse.org/index.php/Europa_Simultaneous_Release#Must_Do">wymogi, które projekty muszą spełniać</a> oraz <a href="http://wiki.eclipse.org/index.php/Europa_Simultaneous_Release#Should_Do">wymogi, które projekty powinny spełniać</a>. Całe zamieszanie jest ściśle kontrolowane poprzez określone daty poszczególnych kroków (od release'ów M5 po RC4), a wszystko skończy się 29 czerwca.<br />
<a href="http://eclipsewebmaster.blogspot.com/2007/05/europa-30-days-and-counting.html">Odliczanie</a> się rozpoczęło jakiś czas temu, między innymi na <a href="http://eclipsewebmaster.blogspot.com/">blogu Denisa Roy'a</a>. We wspomnianej nocie pisze, że ilość commitów do repozytoriów oraz ruch na Bugzilli może świadczyć tylko o tym, że nadchodzi release, lub co gorsza 20 releas'ów. Ruch jest ogromny, wg Denisa strona obsługuje setki tysięcy pobrań największych projektów, rozwijanych w ramach platformy, takich jak CDT, WTP czy samego Eclipse'a.<br />
Teraz już wiem, dlaczego strony i repozytoria Eclipse'a obsługuje ponad 50 serwerów i że nie jest to bujda. :)</p>
<p>Czy Europa odniesie sukces? Prognozuję, że tak, i że będzie to sukces wielki, gdzieś dwa razy większy niż w przypadku Callisto a my przez najbliższe kilka miesięcy będziemy mieli zapewniony dostęp do świeżych i stabilnych wersji pluginów i solidną podstawę do budowania własnych!</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dywicki.pl/2007/06/09/europa-nadchodzi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
