# Lerngruppe für Tapestry 5



## Java.getSkill() (28. Mrz 2010)

Hallo,

Projekt befindet sich nun hier: tapestry5start - Project Hosting on Google Code

Ich spiele schon seit einiger Zeit mit dem Gedanken mir das Framework Tapestry 5 genauer anzuschauen und ein paar kleinere Projekte damit umzusetzen.

Ich könnte jetzt natürlich da alleine loslegen und mir Tutorials, Artikel und Bücher durchlesen, aber das wäre viel zu langwierig und langweilig! In einer kleinen Projektgruppe, die das gleiche Ziel und gleichen Wissensstand hat, ist so etwas wesentlich gemütlicher und es wird effektiver gelernt bzw. code produziert! Bei Problemen kann auch sofort gefragt werden.

Deswegen hier die Frage, wer Interesse hätte gemeinsam in die Materie einzusteigen und über einen längeren Zeitraum sein Wissen bezüglich Tapestry 5 auch zu vertiefen. Nach dem Motto: 2+ Gehirne denken besser.

Ziel: Nach einigen Monaten genug Erfahrung besitzen um konkrete Web Applikationen selber entwickeln zu können. (ja ich weiß, das kann vieles bedeuten)

Voraussetzung: 
+ gute Kenntnisse in Java
+ Erfahrung mit Webdevelopment (JEE, JSP, AJAX... sollte kein Fremdwort sein)
+ Nötige Zeit mitbringen 
+ Bereitschaft zu lernen und auch Wissen zu teilen (divide et impera)
+ Kommunikationsbereitschaft

Kommunikation kann über ein Forum, Skype, ICQ oder sonst ein Chatprogramm ablaufen. Treffen in Skype oder TS mit Mikrofon & Headset auch möglich.
Den Einstieg und Hello World in Tapestry hat jeder nach paar Stunden auch alleine geschafft. Wenn sich ein paar Lernbereite finden, dann einigen wir uns auf ein grösseres begleitendes Endprojekt mit Milestones :rtfm: welches dann auch umgesetzt wird.

Wenn jemand nun die Lust verspührt den Frühling mit Tapestry zu verbringen :bloed: und die Vorteile einer Gruppe genießen möchte, dann hier melden bzw. weitere Fragen stellen oder eine private Nachricht schicken.


----------



## Java.getSkill() (1. Apr 2010)

2 Lernbereite haben schon Kontakt aufgenommen und würden sich auch gerne in nächster Zeit mit Tapestry beschäftigen.

Es ist alles ernst gemeint und wird über mehrere Monate dauern. 
Den Anfang schafft natürlich jeder ohne Probleme. Ein Tutorial oder Buch ermöglichen "Hello World", aber mit der Zeit werden die Dinge wahrscheinlich nicht selbsterklärend sein und da ist es nice, wenn man seinen Nachbarn schnell Mal fragen kann, bevor 5h im Internet mit Suche zugebracht werden müssen.

Ein simpler Ideenaustausch zu konkreten Problemen, wo der eigene Horizont erweitert wird, ist schon die Teamarbeit wert.


Also traut euch!  
Auch erfahrene Tapestrybenutzer sind natürlich herzlich eingeladen. Man lernt nie aus!


----------



## adalse0 (2. Apr 2010)

Hi,

wuerde mich grundsaetzlich schon interessieren,
da ich mich einigermassen mit Tapestry 4 auskenne
und mal gerne die Vorteile von Version 5 sehen wuerde.

Mein Problem ist nur dass ich momentan eigentlich anderweitig genug zu tun hab...

Werd mir evtl. ueber das Osterwochende mal ein Hello World Tutorial oder so anschauen.

Zu Version 4 hab ich uebrigens Teilweise das Buch "Enjoy Web Development with Tapestry" (oder so aehnlich) gelesen und fand das echte gut.

Edit:

Bin jetzt ein bisschen angefixt und ueberleg grade hin und her ob ich nicht noch heute anfang ne Umgebung einzurichten.
Allerdings schreckt mich jetzt maven tierisch ab:

Ich komm aus der ant Welt und hab von maven garkeine Ahnung ...

Edit die 2te:

Konnte mich jetzt durchringen maven zu installieren und,
hab den Befehl aus dem Tutorial auf tapestry.apache.org angeworfen.

Leider schepperts hier gleich:


```
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error creating from archetype

Embedded error: The META-INF/maven/archetype.xml descriptor cannot be found.
[INFO] ------------------------------------------------------------------------
[INFO] Trace
org.apache.maven.lifecycle.LifecycleExecutionException: Error creating from arch
etype
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defa
ultLifecycleExecutor.java:719)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandalone
Goal(DefaultLifecycleExecutor.java:569)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(Defau
ltLifecycleExecutor.java:539)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHan
dleFailures(DefaultLifecycleExecutor.java:387)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegmen
ts(DefaultLifecycleExecutor.java:284)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLi
fecycleExecutor.java:180)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
        at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:6
0)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
        at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)

        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: org.apache.maven.plugin.MojoExecutionException: Error creating from a
rchetype
        at org.apache.maven.archetype.mojos.MavenArchetypeMojo.execute(MavenArch
etypeMojo.java:249)
        at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPlugi
nManager.java:490)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defa
ultLifecycleExecutor.java:694)
        ... 17 more
Caused by: org.apache.maven.archetype.old.ArchetypeDescriptorException: The META
-INF/maven/archetype.xml descriptor cannot be found.
        at org.apache.maven.archetype.old.DefaultOldArchetype.createArchetype(De
faultOldArchetype.java:187)
        at org.apache.maven.archetype.mojos.MavenArchetypeMojo.execute(MavenArch
etypeMojo.java:230)
        ... 19 more
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 second
[INFO] Finished at: Fri Apr 02 02:54:51 CEST 2010
[INFO] Final Memory: 8M/20M
[INFO] ------------------------------------------------------------------------
C:\workspace>
```


Hab heute keine grossartige Lust mehr daran rumzubasteln,
geh jetzt lieber ins Bett.


----------



## pobv (2. Apr 2010)

Bei meinem ersten Gehversuch in Tapestry 5 empfand ich das Erstellen auch als unnötig schwer. Die Webseite hatte mir damals dabei auch nicht besonders geholfen. Habe das glaube ich mit Hilfe einer externen Seite gelöst: bbWebCraft: Task 1 - Create a skeleton Tapestry 5 project and run it.

Zu Büchern:
Habe das erste T5 Buch (Tapestry 5: Building Web Applications) mir gekauft und darin etwas gelesen... war relativ enttäuscht, da es sehr oberflächlich ist und einem keinen tieferen Einblick in das Framework vermittelt. Inzwischen gibt es ja ein weiteres Buch, wobei das Inhalsverzeichnis schon besser aussieht. Ein Buch ist aber meines Erachtens nicht zwingend nötig, jedoch könnte es etwas schneller Licht ins "Doku-Chaos" von T5 bringen


----------



## ARadauer (2. Apr 2010)

Ich beschäftige mich auch seit einiger Zeit mit Tapestry. Tapestry ist bei uns in der Firma die neue standard Technologie für Webanwendungen.

Gewisse dinge fühlen sich noch einwenig fremd und ungewohnt an, aber  ich denke das wird schon mit der Zeit...



pobv hat gesagt.:


> Zu Büchern:
> Habe das erste T5 Buch (Tapestry 5: Building Web Applications) mir gekauft und darin etwas gelesen... war relativ enttäuscht, da es sehr oberflächlich ist und einem keinen tieferen Einblick in das Framework vermittelt. Inzwischen gibt es ja ein weiteres Buch, wobei das Inhalsverzeichnis schon besser aussieht. Ein Buch ist aber meines Erachtens nicht zwingend nötig, jedoch könnte es etwas schneller Licht ins "Doku-Chaos" von T5 bringen



hab ich auch so empfunden... das ist besser Tapestry 5: Die Entwicklung von Webanwendungen mit Leichtigkeit!


----------



## ARadauer (2. Apr 2010)

@adalse0 was genau hast du eingegeben... ich glaube die haben da was am archetype geändert. Beim mir hats vor einiger Zeit auf anhieb funktioniert.


----------



## Java.getSkill() (2. Apr 2010)

Die Entwicklungsumgebung aufzusetzen ist nicht gerade trivial, vorallem da nicht alle Versionen der eingesetzten tools sofort mit einander laufen. Habe mich selber auch einige Stunden durchlesen dürfen, wollte es aber auch verstehen, bevor mein erstes Hello World lief.

Nochmal aufsetzen: 10 Minuten Aufwand.
Ich wundere mich wirklich warum sie nicht auf der tutorialseite eine einfache Anleitung gestellt haben, denn wenn man weiß wie es läuft, sind es nur ein paar Klicks. Überhaupt kein Aufwand im 2. Versuch.

@adalse0, ich schreibe heute Abend wie ich das aufgesetzt habe. Bei mir hat Maven alle benötigten Dependencies später runtergeladen, nachdem ich manuell herumpfuschen wollte 

Das Buch, welches ARadauer gelinkt hat, werde ich heute kaufen. Wäre nice, wenn uns ein paar erfahrenere Tapestryuser wie ARadauer mit Rat und Tat zur Seite stehen würden:rtfm:


----------



## ARadauer (2. Apr 2010)

> erfahrenere Tapestryuser wie ARadauer



wollen wirs mal nicht übertreiben ;-) von Ehrfahrung kann man da glaub ich noch nicht sprechen


----------



## Java.getSkill() (3. Apr 2010)

Hallo,

meine Arbeitsumgebung(zumindest läuft es bei mir so):

1) JDK installieren und JDK Systemvariable setzen
Ich würde neben PATH auch JAVA_HOME setzen

2) Eclipse IDE for JEE (193MB) downloaden

3) WTP Web Tools Platform über Eclipse update holen
WTP Updates

4) .tml mit XML Editor verbinden
Im Menu WINDOW > Preferences klicken
General > Content Types
Text > XML
add .tml

damit eure tml (html) Seiten auch mit dem XML Editor gehen

5) Maven updaten (erstellt die Projektstruktur)
Index of /sites/m2e

6) Jetty Server updaten
run-jetty-run - Revision 56: /trunk/updatesite


New Project>Maven Project nehmen
irgendwann kommt ein Filter welchen Archetyp man möchte. Einfach mal "tap" eingeben, dann bleiben nur die tapestry Dinger über. QUICKSTART wählen. group id, artefact id ist egal.

Wenn man das ganze starten will, dann auf "RUN CONFIGURATION" ( der grüne Startbutton), new jetty erstellen und den port beim HTTPS löschen, sonst wird nach einer .keystore datei gefragt.

jetty fragt auch nach dem ordner, wo sich die .tml dateien aufhalten. müsste src/main/webapp sein


----------



## adalse0 (3. Apr 2010)

Also ich hab als ich das probiert hab einfach die aktuelle maven version installiert und dann mit den parametern aufgerufen, 
wie sie auf der tapestry seite standen.

Eigentlich hiess es auf der tapestry seite ja, 
dass man sich maven in version 2.0.8 oder so installiern sollte...

Hoffe dass ich morgen Zeit hab,
dann werd ich nochmal ein bisschen rumtuefteln.


----------



## Java.getSkill() (3. Apr 2010)

versuchs mit meiner Anleitung. 

Ich habe auch selber erst alles manuell gemacht und wollte in der cmd-shell Sachen ausführen. Jetzt kannst du alles innerhalb Eclipse machen. Maven habe ich nur für 2 Klicks gebraucht und zwar um nur die Ordner/Datei Struktur für Tapestry zu erstellen.


----------



## Rydl (4. Apr 2010)

die maven version ist egal. man kann sich die installation den run-jetty-plugins auch sparen und die applikation direkt über maven starten. das geht so: 

- rechts-klick auf die pom.xml des web-projekts
- "Run As"
- "Maven Build..." (der mit den punkten)
- dann in der maske unter "goals" eintragen: clean jetty:run

manchmal funktioniert das plugin nicht so gut mit multi-module projekten, dann hilft es "resolve workspace artifacts" auszuschalten.


----------



## adalse0 (4. Apr 2010)

Vielen Dank,
aus eclipse heraus hat alles funktioniert.

Die Projektstruktur wurde erzeugt und benoetigten libs sind auch da.

Wenn alles klappt ist maven schon ne feine Sache


----------



## Java.getSkill() (8. Apr 2010)

push

das ganze ist natürlich aktuell. Für den Anfang könnte man ja gemeinsam an einem kleinen Projekt arbeiten. Formulare, XML, Datenbanken oder ähnliches. Pizzabestellservice, Applikation für eine Bibliothek 

gogo melden


----------



## number8 (11. Apr 2010)

Wenn ich Netbeans nutze, dann erstelle ich ein Tapestry-Projekt als normale Webanwendung - kein Maven.
Unter Eclipse dagegen nutze ich Maven und das Jetty-Plugin wegen dem Live-Class Reloading. Dort kann man außerdem auch die tapestry-taglib einbinden (siehe Tapestry-Wiki).
Ansonsten trete ich gerne der Gruppe bei, da wir in der Firma ein großes Tapestry Projekt am Laufen haben.


----------



## ARadauer (29. Apr 2010)

von euch weiß zufällig keiner, wie ich ein mixin an alle felder eines beaneditors binde?


----------



## Rydl (30. Apr 2010)

mixins kann man nicht auf felder binden, mixins erweitern komponenten. versuch lieber das mixin dem beaneditor direkt zuzuweisen.
was willst du denn erreichen? ...vielleicht gibt's einen anderen weg.


----------



## reinsle (7. Mai 2010)

Hy zusammen,

habt ihr schon angefangen, oder seit ihr noch in den Vorbereitungen? Wenn ihr noch "Platz" habt, währe ich auch gern mit dabei.

Robert


----------



## number8 (10. Mai 2010)

@ARadauer


```
<t:beaneditform object="book">
      	<p:price>
      		<t:textfield value="book.price" t:mixins="testmixin"/>
      	</p:price>
</t:beaneditform>
```

??? 
Mehr fällt mir im Moment auch nicht ein.


----------



## Java.getSkill() (11. Mai 2010)

Wie die Zeit doch verfliegt. 

Ab Anfang nächster Woche geht es dann konkret los und ich werde auch noch in anderen Foren das ankündigen. Jeder der Tapestry lernen und nach einiger Zeit auch ein grösseres Projekt umsetzen möchte, kann mitmachen.

Paar Rahmenbedingungen:
- Tapestry 5.1 + Maven + Hibernate(mysql,postgresql,hsqldb) + Subversion (homogene Entwicklungsumgebung )


- Schriftliche Kommunikation läuft über ein Forum. Skype/Icq zum schnell jemanden anschreiben und TeamSpeak/Skype mit Headset zum Reden
Es wird immer wieder fixe Termine geben, wo wir uns treffen können und paar Weisheiten über Tapestry austauschen.

- Interesse und Zeit wöchentlich über längeren Zeitraum an verschiedenen praktischen Aufgaben zu arbeiten um Tapestry zu lernen
Learning by doing: Nach der Einarbeitungsphase gibt es verschiedene praktische Aufgaben mit Tapestry zu lösen: 

Also Standardanwendungen wie Pizzabestellservice, onlineterminplaner/notizblock oder Videothekverwaltungsapplikation um sich einfach mit Formularen, Lokalisierung, Ajax, Komponenten, Mixins, Datenbanken und überhaupt mit dem Framework zu beschäftigen. Dabei arbeiten wir alle an der gleichen Aufgabe bzw. Aufgabenpool und jeder darf sich mal alleine austoben. Bei Fragen einfach ins Forum oder andere Kommunikationsmöglichkeit wählen um Kontakt aufzunehmen. Wenn jemand die Lösung schon hat, dann kann er sie online stellen und kommentieren, damit der Rest es versteht und dabei was lernt. Synergieeffekte nutzen und sicher einiges an Nerven und Zeit sparen. Das ist kein Wunschkonzert wo jeder das programmiert, was ihm in den Sinn kommt, sondern es wird planmäßig vorgegangen um so effektiver den "tapestrystoff" schneller abzudecken. Das nebenbei jeder seine eigenen Geschichten entwickeln und dazu Fragen stellen kannn ist natürlich auch klar.


Wer nun mitmachen möchte, bitte hier melden oder mir nochmal eine Nachricht schicken. Es können sowohl Anfänger wir erfahrene Tapestry Entwickler mitmachen, denn nach kurzer Zeit wird sich das Wissen und Niveau angleichen.

Vielleicht bekommen wir hier bei java-forum ein "Projektforum" ansonten stelle ich Eines online.

edit: Vorschläge, Anregungen einfach posten. Haben ja das gleiche Ziel


----------



## number8 (11. Mai 2010)

++


----------



## Java.getSkill() (13. Mai 2010)

hab mal ein projekt bei googlecode eingerichtet

tapestry5start - Project Hosting on Google Code

Meldet euch!


----------

