<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Posts on Piotr Kosmowski</title>
    <link>/posts/</link>
    <description>Recent content in Posts on Piotr Kosmowski</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>pl-pl</language>
    <lastBuildDate>Sun, 01 Jan 2023 08:30:00 -0700</lastBuildDate><atom:link href="/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Private VPS with Raspberry PI 3</title>
      <link>/posts/2017-06-18-private-vps-with-rpi3/</link>
      <pubDate>Mon, 18 Jun 2018 18:00:00 +0000</pubDate>
      
      <guid>/posts/2017-06-18-private-vps-with-rpi3/</guid>
      <description>Prerequisite # Raspberry PI 3 Public IP (optionally) Install and configure RPI # Download Raspian Litle from: https://www.raspberrypi.org/downloads/raspbian/ and unzip it Copy image to the card: https://www.raspberrypi.org/documentation/installation/installing-images/linux.md dd bs=4M if=2017-04-10-raspbian-jessie-lite.img of=/dev/mmcblk0 sync Enable SSH on a headless RPI sudo mkdir /media/sd &amp;amp;&amp;amp; sudo mount /dev/mmcblk0p1 /media/sd - mount bootable partition of the SD card * sudo touch /media/sd/ssh - create ssh file on the SD card which enables SSH on boot Insert SD card in the RPI, turn it on and connect to the LAN ssh pi@192.</description>
    </item>
    
    <item>
      <title>Angular 2 &#43; uikit application</title>
      <link>/posts/2016-09-17-ng2-uikit-spa-app/</link>
      <pubDate>Sat, 17 Sep 2016 18:00:00 +0000</pubDate>
      
      <guid>/posts/2016-09-17-ng2-uikit-spa-app/</guid>
      <description>Prerequisite # GIT NodeJS and NPM global NPM libraries: sudo npm install -g webpack webpack-dev-server typescript Init Angular 2 project with seed # Clone repo from https://github.com/angular/angular2-seed:
git clone git@github.com:angular/angular2-seed.git ng2uikit-app Install dependencies:
cd ng2uikit-app npm install Run app:
npm start Go to http://localhost:3000
Result:
uikit styles # Replacehome.html content:
&amp;lt;div class=&amp;#34;uk-container uk-container-center uk-margin-top uk-margin-large-bottom&amp;#34;&amp;gt; &amp;lt;div class=&amp;#34;uk-grid&amp;#34; data-uk-grid-margin&amp;gt; &amp;lt;div class=&amp;#34;uk-width-medium-1-1&amp;#34;&amp;gt; &amp;lt;div class=&amp;#34;uk-vertical-align uk-text-center&amp;#34; style=&amp;#34;background: url(&amp;#39;data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjQsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkViZW5lXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iMTEzMHB4IiBoZWlnaHQ9IjQ1MHB4IiB2aWV3Qm94PSIwIDAgMTEzMCA0NTAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDExMzAgNDUwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxyZWN0IGZpbGw9IiNGNUY1RjUiIHdpZHRoPSIxMTMwIiBoZWlnaHQ9IjQ1MCIvPg0KPC9zdmc+DQo=&amp;#39;) 50% 0 no-repeat; height: 450px;&amp;#34;&amp;gt; &amp;lt;div class=&amp;#34;uk-vertical-align-middle uk-width-1-2&amp;#34;&amp;gt; &amp;lt;h1 class=&amp;#34;uk-heading-large&amp;#34;&amp;gt;Sample Heading&amp;lt;/h1&amp;gt; &amp;lt;p class=&amp;#34;uk-text-large&amp;#34;&amp;gt;Cras justo odio, dapibus ac facilisis in, egestas eget quam.</description>
    </item>
    
    <item>
      <title>REST end to end testing Node applications with Intern framework</title>
      <link>/posts/2015-03-03-end-to-end-tests-with-intern/</link>
      <pubDate>Tue, 03 Mar 2015 22:16:00 +0000</pubDate>
      
      <guid>/posts/2015-03-03-end-to-end-tests-with-intern/</guid>
      <description>Introduction # In the previous post Testing Node applications with Intern framework I demostrated how to set up testing environment for unit tests with Intern and Grunt. Today I will show how to test REST endpoints with end to end tests in a speed of unit tests.
#Set up infrastructure
Create Node project # Create NodeJS project:
mkdir intern-end-to-end-tests cd intern-end-to-end-tests Create init package.json:
{ &amp;#34;name&amp;#34;: &amp;#34;intern-end-to-end-tests&amp;#34;, &amp;#34;version&amp;#34;: &amp;#34;1.0.0&amp;#34;, &amp;#34;description&amp;#34;: &amp;#34;&amp;#34; } Implementing REST endpoint using ExpressJS # Install ExpressJS: # npm install express --save-dev Implement application endpoints # We will create application code in src directory:</description>
    </item>
    
    <item>
      <title>Testing Node applications with Intern framework</title>
      <link>/posts/2015-03-01-unit-tests-with-intern/</link>
      <pubDate>Sun, 01 Mar 2015 22:16:00 +0000</pubDate>
      
      <guid>/posts/2015-03-01-unit-tests-with-intern/</guid>
      <description>Introduction # In JS world, regressions may appear at every change without any warning, so tests are equally important as production code. The same rule applies to every non static typed languages, but let&amp;rsquo;s stay on JS.
Intern is a complete framework for testing JavaScript Web sites and applications. I will use it to demostrate how to test NodeJS applications using intern framework. First I configure testing infrastructure so we could start writing business logic and testing it.</description>
    </item>
    
    <item>
      <title>Super Dev Mode recompile with shortcut</title>
      <link>/posts/2014-03-22-super-dev-mode-recompile-with-shortcut/</link>
      <pubDate>Sat, 22 Mar 2014 22:16:00 +0000</pubDate>
      
      <guid>/posts/2014-03-22-super-dev-mode-recompile-with-shortcut/</guid>
      <description>Instead of using bookmark to recompile GWT module in Super Dev Mode you can use shortcuts. Step by step:
Install Shortcut Manager Add new shortcut: Shortcut key: ctrl+r Url pattern. For example: http://localhost:8080/App* Copy content of your bookmark and decode it from url form using for example (dencoder)[http://meyerweb.com/eric/tools/dencoder/] and copy content that is surrounded with javascript:{ and } Alternatively you can use this configuration and adopt it to your project: window.</description>
    </item>
    
    <item>
      <title>Stage Maven archetypes to Central Repository</title>
      <link>/posts/2014-02-27-stage-maven-archetypes-to-central-repository/</link>
      <pubDate>Thu, 27 Feb 2014 22:16:00 +0000</pubDate>
      
      <guid>/posts/2014-02-27-stage-maven-archetypes-to-central-repository/</guid>
      <description>In some future posts I will share how to configure environment for publishing archetypes to the Central Repositories. Basically most of the knowledge is present in the official documentation here: https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide.
In this post I will show how to stage your archetypes on already configured environment. The steps are ass follow:
Commit and push all changes to the repository: git add --all git commit -m &amp;#34;Your message&amp;#34; git push origin master On Windows cofigure and run ssh-agent: When using Git with SSH you could encourage some issues on Windows platform.</description>
    </item>
    
    <item>
      <title>ExtJS project</title>
      <link>/posts/2014-02-14-extjs-project-with-netbeans/</link>
      <pubDate>Fri, 14 Feb 2014 22:16:00 +0000</pubDate>
      
      <guid>/posts/2014-02-14-extjs-project-with-netbeans/</guid>
      <description>Usually when it comes to develop Single Page Application (SPA) we choose GWT. For simple apps we use native components, GWT-Bootstrap or custom components created with DOM utils. For Enterprise applications we don’t risk and go with GXT.
GXT is well done components library by Sencha for GWT that looks and behaves like their flag product – ExtJS. In this article we will leave Java world and for a while we will check how to create SPA applications in JavaScript with ExtJS.</description>
    </item>
    
    <item>
      <title>UI Binder GWT Styles</title>
      <link>/posts/2013-06-12-synchronous-injection-of-styles-to-ui-binder/</link>
      <pubDate>Wed, 12 Jun 2013 22:16:00 +0000</pubDate>
      
      <guid>/posts/2013-06-12-synchronous-injection-of-styles-to-ui-binder/</guid>
      <description>Often when using UI Binder in your GWT project you would like to stylize your app with CSS. There are two ways of doing this a) by adding CSS attribute directly in DOM element or b) by using Client Bundle.
#Add CSS attribute
Please check reference guide: https://developers.google.com/web-toolkit/doc/latest/DevGuideUiCss
To add class attribute to any GWT element you need to use DOM static helper method. For example:
Button b = new Button(); DOM.</description>
    </item>
    
    <item>
      <title>Instalacja artefaktu w zdalnym repozytorium Mavena</title>
      <link>/posts/2012-02-07-deploy-artifacts-to-the-repository/</link>
      <pubDate>Tue, 07 Feb 2012 22:16:00 +0000</pubDate>
      
      <guid>/posts/2012-02-07-deploy-artifacts-to-the-repository/</guid>
      <description>W jednym z poprzednich wpisów pokazaliśmy jak zdeployować stworzoną zależność po skompilowaniu projektu. Dzisiejszy wpis poświęcony jest umieszczaniu zależności w repozytorium przy pomocy linii komend. Pomimo najszczerszych chęci wykonanie tego zadania zupełnie z linii komend jest niemożliwe. Należy stworzyć pom.xml o następującej treści:
&amp;lt;project xmlns=&amp;#34;http://maven.apache.org/POM/4.0.0&amp;#34; xmlns:xsi=&amp;#34;http://www.w3.org/2001/XMLSchema-instance&amp;#34; xsi:schemaLocation=&amp;#34;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd&amp;#34;&amp;gt; &amp;lt;modelVersion&amp;gt;4.0.0&amp;lt;/modelVersion&amp;gt; &amp;lt;groupId&amp;gt;com.example&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;webdav-deploy-pom&amp;lt;/artifactId&amp;gt; &amp;lt;packaging&amp;gt;pom&amp;lt;/packaging&amp;gt; &amp;lt;version&amp;gt;1&amp;lt;/version&amp;gt; &amp;lt;name&amp;gt;Deploy&amp;lt;/name&amp;gt; &amp;lt;build&amp;gt; &amp;lt;extensions&amp;gt; &amp;lt;extension&amp;gt; &amp;lt;groupId&amp;gt;org.apache.maven.wagon&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;wagon-webdav&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;1.0-beta-2&amp;lt;/version&amp;gt; &amp;lt;/extension&amp;gt; &amp;lt;/extensions&amp;gt; &amp;lt;/build&amp;gt; &amp;lt;/project&amp;gt; Będzie on dodawał obsługę pluginu służącego do wysyłania zależności na zdalny zasób.</description>
    </item>
    
    <item>
      <title>Szablony w Netbeans</title>
      <link>/posts/2012-02-05-gxt-templates-for-netbeans/</link>
      <pubDate>Sun, 05 Feb 2012 22:16:00 +0000</pubDate>
      
      <guid>/posts/2012-02-05-gxt-templates-for-netbeans/</guid>
      <description>Podczas pracy z różnymi bibliotekami bywa, że pewne czynności są powtarzane nader często. Popularne biblioteki posiadają rozszerzenia, bądź natywne wsparcie ze strony IDE jak np. kreatory. Niestety nie wszystkie biblioteki posiadają tak ogromne wsparcie jak choćby Spring czy Hibernate, co nie oznacza że są gorsze. Programista jako użytkownik danej biblioteki pomimo braku wsparcia może jednak sam opracować pewne wzorce, które powtarzają się w trakcie pracy i je zautomatyzować poprzez makra czy też szablony.</description>
    </item>
    
    <item>
      <title>Aktualizacja web.xml dla Netbeans</title>
      <link>/posts/2012-02-04-update-web-xml-for-netbeans-workflow/</link>
      <pubDate>Sat, 04 Feb 2012 22:16:00 +0000</pubDate>
      
      <guid>/posts/2012-02-04-update-web-xml-for-netbeans-workflow/</guid>
      <description>Tworząc nowy projekt czy to za pomocą kreatora dołączonego do IDE czy za pomocą archetypu Maven zdarza się, że utworzona wersja deskryptora wdrożenia jest dość nieaktualna. Pracując z Netbeans chcąc dodać nowy servlet jeżeli deskryptor będzie w wersji 2.3 bądź starszej, zostaniemy poinformowani komunikatem, że nie jest to możliwe:
W tym celu należy w pliku web.xml skasować dotychczasowy schemat walidacji DTD:
&amp;lt;!DOCTYPE web-app PUBLIC &amp;#34;-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN&amp;#34; &amp;#34;http://java.</description>
    </item>
    
    <item>
      <title>Podstawowy projekt z użyciem Hibernate</title>
      <link>/posts/2012-02-02-fast-track-to-hibernate/</link>
      <pubDate>Thu, 02 Feb 2012 22:16:00 +0000</pubDate>
      
      <guid>/posts/2012-02-02-fast-track-to-hibernate/</guid>
      <description>W dzisiejszym poście zaprezentujemy jak stworzyć projekt, który może stanowić wejście dla przyszłych projektów wykorzystujących Hibernate oraz Mavena. Do zamockowania bazy danych posłużymy się wbudowaną (embeded) bazą danych – Derby.
##Nowy projekt
Nalezy utworzyć nowy projekt za pomoca polecenia:
mvn -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.1 -DarchetypeRepository=http://repo1.maven.org/maven2 -DgroupId=pl.xperios -DartifactId=HibernateMavenStarter -Dversion=1.0-SNAPSHOT -Dpackage=pl.xperios.HibernateMavenStarter -Dbasedir=C:\\Projects\\Starters -Darchetype.interactive=false –batch-mode archetype:generate ##Konfiguracja zależności
Po stworzeniu struktury projektu należy dodać zależności Hibernate. Ponieważ nie występują w repozytorium centralnym najpierw należy dodać odpowiednie repozytoria do pliku pom.</description>
    </item>
    
    <item>
      <title>Jetty - poręczny serwerek</title>
      <link>/posts/2011-12-15-introduction-to-jetty/</link>
      <pubDate>Thu, 15 Dec 2011 22:16:00 +0000</pubDate>
      
      <guid>/posts/2011-12-15-introduction-to-jetty/</guid>
      <description>W trakcie tworzenia aplikacji internetowych przychodzi moment kiedy należy go umieścić na jakimś serwerze. Do dyspozycji mamy naprawdę szeroką pulę począwszy od lekkiego Tomcata po serwery aplikacji takie jak GlassFish czy JBoss. Dzisiaj zaprezentujemy malutki i zgrabniutki kontener serwletów Jetty. Jego główną zaletą nad pozostałymi jest banalna konfiguracja oraz szybkość uruchamiania. Konfiguracja całości w projekcie budowanym za pomocą Mavena sprowadza się do dodania następującego plugina w pliku pom.xml:
&amp;lt;plugin&amp;gt; &amp;lt;groupId&amp;gt;org.mortbay.jetty&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;maven-jetty-plugin&amp;lt;/artifactId&amp;gt; &amp;lt;configuration&amp;gt; &amp;lt;scanIntervalSeconds&amp;gt;10&amp;lt;/scanIntervalSeconds&amp;gt; &amp;lt;contextPath&amp;gt;/&amp;lt;/contextPath&amp;gt; &amp;lt;/configuration&amp;gt; &amp;lt;/plugin&amp;gt; Uruchomienie serwera odbywa się za pomocą: jetty:run bądź jetty:run-exploded.</description>
    </item>
    
    <item>
      <title>Wdrożenie aplikacji na Tomcata</title>
      <link>/posts/2011-10-24-hot-deploy-to-remote-tomcat/</link>
      <pubDate>Mon, 24 Oct 2011 22:16:00 +0000</pubDate>
      
      <guid>/posts/2011-10-24-hot-deploy-to-remote-tomcat/</guid>
      <description>W pewnym punkcie pracy z projektem J2EE, (projekt webowy) dochodzimy do punktu, w którym przychodzi potrzeba umieszczenia go na serwerze czy to kontenerze aplikacji. Po umieszczeniu na serwerze można przetestować jego działanie ale również uruchomić np testy integracyjne.
Ponieważ takich serwerów może istnieć wiele (lokalny, zdalny, klient, …) poszczególne warianty można umieścić np. oddzielnych profilach.
Zdefiniujmy profil, który będzie wykorzystywał plugin cargo, który bedzie łączył się ze zdalnym serwerem tomcat 7.</description>
    </item>
    
    <item>
      <title>Wydawanie aplikacji w formie zarchiwizowanej</title>
      <link>/posts/2011-10-23-releasing-archived-maven-archetypes/</link>
      <pubDate>Sun, 23 Oct 2011 22:16:00 +0000</pubDate>
      
      <guid>/posts/2011-10-23-releasing-archived-maven-archetypes/</guid>
      <description>Jednym z elementów cyklu życia projektu jest wydanie jego wersji. W zależności co tak na prawdę tworzymy efektem końcowym jest aplikacja gotowa do uruchomienia przez klienta, bądź biblioteka wykorzystywana w innych projektach. Oto czym się głównie charakteryzują:
aplikacja – posiada strukturę dostosowaną do projektu (jednakowa nazwa artefaktu np.: aplikacja.jar, zależności umieszczone w folderze lib, zasoby porozmieszczane w oddzielnych folderach np.: Pomoc, Img, Log, Raporty itp.), dokumentacja użytkownika, przykładowe pliki konfiguracyjne, dołączone jedynie binaria biblioteka – ustandaryzowana struktura wydania (dobra konwencja), dołączenie binariów, bardzo często nie dołącza się zależności, przykłady, dokumentacja techniczna, strona site-ów wraz z wynikami testów, javadoc itp.</description>
    </item>
    
    <item>
      <title>Maven site</title>
      <link>/posts/2011-10-22-maven-site/</link>
      <pubDate>Sat, 22 Oct 2011 22:16:00 +0000</pubDate>
      
      <guid>/posts/2011-10-22-maven-site/</guid>
      <description>Jak wiadomo kolejnym etapem po, a jeszcze lepiej w trakcie realizacji projektu należy przedstawić klientowi dokumentację zarówno użytkownika jak i techniczną. Abstrahując zupełnie od dokumentacji użytkownika dokumentacja techniczna powinna zawierać przynajmniej takie podstawowe elementy jak:
javadoc, FAQ, opis użycia, pokrycie kotu testami, wyniki testów, i wiele innych zależących od wymogów klientów, góry czy własnych wymagań.
Oprócz części opisowej, którą prowadzić programista musi samodzielnie, w większości powyższych przypadków może wyręczyć nas maven.</description>
    </item>
    
    <item>
      <title>Prywatne repozytorium Maven na code.google.pl</title>
      <link>/posts/2011-10-21-own-maven-repository-on-google-code/</link>
      <pubDate>Fri, 21 Oct 2011 22:16:00 +0000</pubDate>
      
      <guid>/posts/2011-10-21-own-maven-repository-on-google-code/</guid>
      <description>Często tworząc nowy projekt (z reguły opensource) w naszym przypadku wykorzystujemy jako repozytorium popularny Github, Bitbucket lub code.google.com. Aby podnieść walor biznesowy i jakość świadczonych usług normalnym jest częste wydawanie nowej wersji naszej aplikacji klientom / społeczności. Proces ten czasmi jest dosyć tendencyjny i uciążliwy. Powtarzające się procesy oczywiście dociekliwy programista jest w stanie sobie zautomatyzować w bardzo zwinny sposób.
Dzisiaj pokażemy jak posiadając projekt na code.google.com stworzyć z niego własne repozytorium wykorzystując do tego mavena w wersji 3.</description>
    </item>
    
    <item>
      <title>C3P0 - poprawne zamykanie</title>
      <link>/posts/2011-05-21-c3p0-proper-closing-application/</link>
      <pubDate>Sat, 21 May 2011 22:16:00 +0000</pubDate>
      
      <guid>/posts/2011-05-21-c3p0-proper-closing-application/</guid>
      <description>W przypadku, gdy aplikacja do przechowywania danych wykorzystuje relacyjną bazę danych bardzo często się zdarza, że korzysta z takich narzędzi wspomagających jak Hibernate czy MyBatis (określenie “narzędzie” jest tu celowe, ponieważ najczęściej o tej warstwie mówi się skrótowo ORM, przy czym MyBatis ORM-em nie jest).
Biblioteki te (jak i również inne) mogą wykorzystywać zewnętrzne mechanizmy transakcji, czy zarządzania źródłami danych i tu zmierzam do C3P0.
C3p0 jest biblioteką, która wnosi warstwę obsługi wielu połączeń z bazą danych.</description>
    </item>
    
    <item>
      <title>Hibernate &#43; Guice</title>
      <link>/posts/2010-12-16-hiberante-with-guice/</link>
      <pubDate>Thu, 16 Dec 2010 22:16:00 +0000</pubDate>
      
      <guid>/posts/2010-12-16-hiberante-with-guice/</guid>
      <description>Hibernate – framework do realizacji warstwy dostępu do danych (ang. persistance layer). Zapewnia on przede wszystkim translację danych pomiędzy relacyjną bazą danych, a światem obiektowym (ang. O/R mapping). Opiera się na wykorzystaniu opisu struktury danych za pomocą języka XML, dzięki czemu można “rzutować” obiekty, stosowane w obiektowych językach programowania, takich jak Java bezpośrednio na istniejące tabele bazy danych. Dodatkowo Hibernate zwiększa wydajność operacji na bazie danych dzięki buforowaniu i minimalizacji liczby przesyłanych zapytań.</description>
    </item>
    
    <item>
      <title>Google Web Toolkit</title>
      <link>/posts/2010-12-14-gwt-basic-components/</link>
      <pubDate>Tue, 14 Dec 2010 22:16:00 +0000</pubDate>
      
      <guid>/posts/2010-12-14-gwt-basic-components/</guid>
      <description>Google Web Toolkit (GWT) jest szkieletem do tworzenia aplikacji AJAX w oparciu o język Java. Pozwala on na tworzenie kodu bez ręcznego kodowania i łączenia elementów języka Java oraz JavaScript. Po napisaniu kodu aplikacji następuje kompilacja części klienckiej do JavaScriptu, CSS oraz HTML. Część serwerowa zostaje skompilowana przez standardowy kompilator Javy. Framework w standardzie zapewnia poprawne wyświetlanie komponentów w przeglądarkach: Firefox, Opera, IE, Safari, Google Chrome. (Wikipedia.pl)
W skrócie GWT jest frameworkiem, który pozwala na tworzenie aplikacji typu RIA w całości w języku Java.</description>
    </item>
    
    <item>
      <title>Google Web Toolkit &#43; Guice</title>
      <link>/posts/2010-12-15-gwt-and-guice/</link>
      <pubDate>Fri, 15 Oct 2010 22:16:00 +0000</pubDate>
      
      <guid>/posts/2010-12-15-gwt-and-guice/</guid>
      <description>Guice jest frameworkiem dostarczającym tzn. wstrzykiwania zależności w naszej części serwerowej aplikacji. Gdybyśmy rozważali aplikację typu desktop poniższa konfiguracja w zupełności by wystarczyła:
package testingguice; import com.google.inject.AbstractModule; import com.google.inject.Guice; import com.google.inject.Injector; public class Main { public static void main(String[] args) { Injector injector = Guice.createInjector(new MyModule()); PersonDao personDao = injector.getInstance(PersonDao.class); for (Person person : personDao.getAll()) { System.out.println(&amp;#34;Person: &amp;#34;+person); } } } Klasa modułu w rozumieniu IoC:
public class MyModule extends AbstractModule { @Override protected void configure() { bind(PersonDao.</description>
    </item>
    
  </channel>
</rss>
