Cube°n - odpowiednik Mylyn dla NetBeans?

Tym razem przedstawię jeden z projektów w którym biorę udział (choć to może nad wyrost powiedziane :)), chodzi mi oczywiście o Cube°n (Task-Focused Interface for Netbeans).
Cube°n to inspirowana na Eclipse’owym Mylyn wtyczka do NetBeans. Wtyczka ta została stworzona przez członka NetBeans Dream Team - Anuradha Gunasekara, do commiterów projektu należą również inni członkowie NB Dream Team jak również pracownicy Sun’a co powinno oznaczać, że nie jest to tylko chwilowy projekt.

W chwili obecnej pozwala ona na zarządzanie zadaniami zarówno lokalnie jak i za pomocą systemów Jira i Trac, dodatkowo do jej podstawowych funkcjonalności należą:

  • tworzenie zapytań, które pozwalają na wyświetlenie listy zadań wg. określonych kryteriów
  • powiązanie wybranych fragmentów kodu z określonym zadaniem
  • synchronizacji lokalnych zadań ze zdalnymi (zdefiniowanymi z zdalnych systemach) zadaniami
  • możliwość dodawania komentarzy do zadań
  • inne funkcjonalności opisane na tej stronie

W planach jest również support dla Bugzilli, niestety implementacja tej funkcjonalności przypadła mojej skromnej osobie, a ponieważ jak zwykle brakuje mi czasu stąd jej rozwój zatrzymał się chwilowo w miejscu (taka przypadłość projektów open-source :( ).

Jeśli jednak jesteście zainteresowani tą wtyczką to szczególnie Was zachęcam do jej pobrania i zainstalowania, sam fakt, iż znalazła się ona w finale NetBeans Innovators Grant Contest świadczy o tym, że również ludzie z NetBeans widzą w niej potencjał (wtyczka dostała również nagrodę za jakość wykonania).

Więcej informacji na temat najnowszej wersji Cube°n’a znajdziecie w tym wpisie Anuradhy oraz na oficjalnej stronie projektu. W szczególności zapraszam na stronę z planem rozwoju oraz grupę użytkowników na której możecie zgłaszać pomysły/uwagi.

Na koniec życzę sobie i Wam szybkiego ukończenia modułu obsługującego repozytoria Bugzilla :)

November 29, 2008 | 4 Comments 

NetBeans RoadShow

NetBeans WorldTourW dniach 11-13 kwietnia odbędzie się w Polsce NetBeans RoadShow, które wchodzi w skład NetBeans WorldTour 2007 - 2008. W ramach tego cyklu, w miastach takich jak Kraków, Warszawa i Wrocław odbędą się NetBeans Days, czyli wykłady na temat środowiska developerskiego NetBeans.

Uczestnicząc w spotkaniach będzie można się dowiedzieć wielu ciekawych rzeczy na temat możliwości tego mocno rozwijanego IDE.
Prelegentami podczas NetBeans Days będą zarówno inżynierowie Sun Microsystems z centrum w Pradze jak również nasi rodzimi prelegenci, znani z blogosfery. Również i ja będę miał okazję wystąpić - 13 kwietnia we Wrocławiu podczas mojej prezentacji “Visual Web Development w NetBeans” będziecie mieli okazję dowiedzieć się jak można w prosty i szybki sposób stworzyć aplikacje webowe za pomocą NetBeans. Więcej informacji na temat NetBeans RoadShow uzyskacie na stronie www.netbeansday.pl.

Wszystkich serdecznie zapraszam.

March 30, 2008 | Leave a Comment 

NetBeans, Maven 2 i TestNG

Dziś w południe dostałem takiego oto maila:

“Witam,

Znalazlem mail do Pana na JDN. Od wczoraj walcze z proba polaczenia
TestNG oraz Mavena2 pod Netbeans. Mimo iż w lokalnym repozytorium mam
pakiet TestNG i w przeglądarce projektow w TestLibraries widnieje wpis
testing-4.7-jdk15 to jednak gdy probuje napisac jakikolwiek test to
nie mam dostepu do zadnego klas/adnotacji z biblioteki TestNG - jakby
jej nie bylo na classpath.

Dodam jeszcze ze w przegladarce projektow ikona biblioteki TestNG w
gorjen czesci jest brazowa, podczas gdy ikony innych - szare.

Ponizej zamieszczam fragmenty mojego pliku pom.xml”

Poniżej fragment pliku pom.xml i imię autora maila.

W przerwie między dewelopmentem który przydarzył mi się w te święta, postanowiłem odpowiedzieć na tego maila… na blogu :D

A więc opiszę po krótko jak skonfigurować prosty projekt w NetBeans 6.1 Beta , do projektu wygeneruję plik pom.xml oraz dodam prościutki test TestNG.

Krok 1 - utworzenie projektu

Utwórzmy najpierw projekt z użyciem NetBeans 6.1 Beta oraz skonfigurujmy go jako projekt Maven 2. W tym celu wybieramy z menu opcję File -> New Project , następnie pojawi nam się takie oto okienko:

Rysunek 1

Wybieramy w nim opcję Maven -> Maven Project i klikamy Next.

Następny ekran to wybranie archetypu, wybieramy Maven Quickstart Archetype i klikamy Next:

Rysunek 2

Teraz czas na nadanie groupId i artifactId naszemu projektowi, ja zrobiłem to tak jak widzicie na poniższym obrazku:

Rysunek 3

Teraz kliamy Finish i proszę, oto nasz projekt:

Rysunek 4

Składa się on z przykładowego pliku aplikacji (App.java) oraz przykładowego testu (AppTest.java).

Krok 2 - modyfikacja projektu

Ponieważ w tym wpisie interesuje nas TestNG a przykładowy test jest napisany dla JUnit to możemy go usunąć - napiszemy swój od podstaw :D
Zmodyfikujmy nasz plik pom.xml na następujący (ten plik dotyczy mojego projektu, jeśli nadaliście inne groupId i artifactId to musicie go zmienić analogicznie):

<?xml version=“1.0″ encoding=“UTF-8″?>
<project xmlns=“http://maven.apache.org/POM/4.0.0″
  xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
  xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd”>

  <modelVersion>4.0.0</modelVersion>
  <groupId>org.holewa</groupId>
  <artifactId>test</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>test</name>
  <url>http://www.holewa.org</url>
  <dependencies>
    <dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <version>5.6</version>
      <scope>test</scope>
      <classifier>jdk15</classifier>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <suiteXmlFiles>
            <suiteXmlFile>testng.xml</suiteXmlFile>
          </suiteXmlFiles>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

Teraz zmieńmy ustawienia naszego projektu tak aby ustawić dla niego wersję Java zgodną z wersja 1.5, w tym celu wybierzmy z menu kontekstowego naszego projektu opcję Properties, następnie z listy w okienku po lewej stronie opcję Sources i na dole ekranu który nam się ukaże Source/Binary Format ustawmy na 1.5. Możecie to zobaczyć na poniższym obrazku:

Rysunek 4b

NetBeans zmodyfikuje nasz plik pom.xml, dodając do niego taki fragment kodu:

<plugin>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>RELEASE</version>
  <configuration>
    <source>1.5</source>
    <target>1.5</target>
  </configuration>
</plugin>

Dobra, teraz wybierzmy z menu kontekstowego projektu opcję Clean and Build, projekt nam się przebuduje a TestNG dodane jako zależność do naszego pom`a pobierze się z repozytorium Maven 2.

Krok 3 - pisanie testu

Nadszedł czas na nasz test :D W tym celu tworzymy nowy plik xml o nazwie testng.xml, musi się on znajdować w tym katalogu w którym znajduje się nasz pom.xml, jego zawartość będzie następująca:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name=“Simple test siute”>
  <test name=“Simple test”>
    <classes>
      <class name=“org.holewa.test.SimpleTest”/>
    </classes>
  </test>
</suite>

Podaliśmy w nim, że nasz projekt zawiera jeden test org.holewa.test.SimpleTest w takim razie czas na jego napisanie :)
Dodajmy nową klasę do projektu, klikamy prawym przyciskiem myszy na gałąź Test Packages w strukturze projektu, następnie wybieramy opcję New -> Java Class… i dodajemy klasę org.holewa.test.SimpleTest.

Kod znajdujący się w niej powinien mieć następującą postać:

package org.holewa.test;

import org.testng.annotations.*;

public class SimpleTest {

  @Test
  public void simpleTest() {
    System.out.println(“My simple test.”);
  }
}

Zapiszmy plik. Wybierzmy z menu kontekstowego projektu opcję Clean and Build, w logach które pojawią się na dole w okienku zobaczymy podobną treść:

——————————————————-
T E S T S
——————————————————-
Running TestSuite
[Parser] Running:
C:\Documents and Settings\raho\My Documents\NetBeansProjects\test\testng.xml
My simple test.

To znak, że nasz test się wykonał, gdy zmienimy kod metody testowej na:

@Test
public void simpleTest() {
  System.out.println(“My simple test.”);
  assert false;
}

Dostaniemy podobny komunikat do tego:

——————————————————-
T E S T S
——————————————————-
Running TestSuite
[Parser] Running:
C:\Documents and Settings\raho\My Documents\NetBeansProjects\test\testng.xml
My simple test.
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.297 sec <<< FAILURE!
Results :
Failed tests:
simpleTest(org.holewa.test.SimpleTest)
------------------------------------------------------------------------
[ERROR]BUILD FAILURE
------------------------------------------------------------------------
There are test failures.

Gdy wybierzemy teraz z menu kontekstowego projektu opcję Test ukarze nam się wynik w okienku testów JUnit:

Rysunek 6

Niestety NetBeans nie posiada wtyczki do obsługi testów TestNG, stąd też pojawiające się okienko JUnit ;(

Ponieważ w mailu który był na samym początku padło stwierdzenie “Dodam jeszcze ze w przegladarce projektow ikona biblioteki TestNG w gorjen czesci jest brazowa, podczas gdy ikony innych - szare”, chciałem wytłumaczyć opisaną w nim sytuację.

Zobaczmy na widoku projektu:

Rysunek 5

A dokładnie bibliotek które się znajdują w zależnościach. Biblioteki zaznaczone kolorowo to bezpośrednie zależności w naszym pom.xml, biblioteki zaznaczone na szaro to biblioteki które są zależnościami do naszych zależności, stąd też inne ich oznaczenie, gdyż nie wprowadzaliśmy ich do projektu bezpośrednio - wprowadził je twórca dodanej przez nas biblioteki ustawiając je jako zależność bez której jego biblioteka nie może funkcjonować. Gdy chcemy ustawić tą bibliotekę tak aby nie była dodana do naszego projektu możemy to zrobić w bardzo łatwy sposób, wystarczy wybrać w menu kontekstowym biblioteki opcję Exclude Dependency a nasz pom.xml zostanie automatycznie zmodyfikowany. Prawda, że łatwe? :D

March 22, 2008 | 2 Comments 

Prezentacja z NetBeans Mobile Game Builder

W najbliższy wtorek w ramach programu Sun Campus Ambassador, będę miał prezentację z tworzenia gier na urządzenia mobilne za pomocą NetBeans Mobile Game Builder, jest to już moja trzecia prezentacja dotycząca NetBeans.
Wszystkich serdecznie zapraszam, miejsce prezentacji to Uniwersytet Ekonomiczny w Krakowie, sala 413 pawilon F, godzina 18:15. Przewiduję 60 minut na prezentację i około 20 na dyskusję.

January 12, 2008 | 2 Comments 

Struts 2, NetBeans 6 i GlassFish - część II

Jako, że w ostatni weekend dorwała mnie choroba i siedziałem cały czas w domu (czego bardzo żałuję, gdyż miałem okazję spotkać się z Wiktorem Gworkiem i pogadać przy piwku o sprawach “javowych” - sorry Wiktor :( ).

Na szczęście nie ma tego złego, co by na dobre nie wyszło :) W ten sposób znalazłem czas aby wreszcie napisać kolejną część podręcznika dotyczącego tworzenia aplikacji Struts 2 z wykorzystaniem NetBeans 6 i GlassFish :D
Tym razem opisałem proste użycie Struts 2, EJB3 i Hibernate JPA. Ta część jest do pobrania tutaj.

Już wiem co będzie w następnej części :D Przedstawię w niej dodanie walidacji danych zarówno client-side jak i server-side, poruszę też temat tworzenia własnych walidatorów :)

Aaa i zapomniałbym, cały czas jest to DRAFT, proszę o wszelkie uwagi/pytania. Na koniec (jak będą gotowe wszystkie części) uwzględnię wszelkie uwagi i zrobię z tego jeden dokument :)

January 2, 2008 | 4 Comments 

Struts 2, NetBeans 6 i Glassfish

No i stało się, dziś zamieszczam pierwszą część tutoriala który będę publikował jako pliki PDF. Stwierdziłem, iż jest to najlepszy sposób na publikowanie tutoriali, pozwoli mi on zebrać wszystko do kupy a Wam ułatwi przeglądanie.
Ponieważ jest to pierwsza część więc liczę się z faktem, że pojawi się sporo uwag, zarówno merytorycznych jak i dotyczących wyglądu PDF`ów.

W tej części konfiguruję środowisko NetBeans 6 i tworzę przykładową, bardzo trywialną aplikację przy użyciu Struts2. Aplikację tą następnie uruchamiam na serwerze Glassfish, pewnie zapytacie dlaczego serwer aplikacyjny do uruchomienia prostej aplikacji ? Wybrałem Glassfish z dwóch powodów, pierwszy to dlatego, że aktualnie powiązany jestem z Sun Microsystems a drugi dlatego, że jako alternatywę miałem Apache Geronimo a mimo wszystko nie chciałem uruchamiać tego na zwykłym Tomcacie. Ostatnio rozmawiałem też z kolegą na temat porównania Glassfisha z Geronimo i w jego mniemaniu Geronimo wypada słabiej od Glassfisha, stąd przekonał mnie on dodatkowo do tego, iż mój wybór jest słuszny :D

Tutorial możecie pobrać tutaj, część ta jest przeznaczona dla osób początkujących więc jeśli znacie się cokolwiek na tworzeniu aplikacji webowych to nie znajdziecie w niej nic interesującego dla siebie :)

November 11, 2007 | 19 Comments