Ein Standard für metadatenbasierte Validierung in allen Layern einer Applikation. Mit diesem Versprechen geht der neue Bean-Validation Standard, auch bekannt als JSR 303, ins Rennen. Von der Wiederverwendbarkeit von bestehenden Constraints zum einfacheren Aufbau eigener Constraints bis hin zur Validierung von Objektgraphen bietet diese Spezifikation einige Mechanismen für metadatenbasierte Validierungen. In einer Feature Tour werden die zentralen Bestandteile der Spezifikation vorgestellt.
In einem zweiten Teil wird die Nutzung von metadatenbasierter Validierung in JEE-Webapplikationen gezeigt. Anhand von kurzen Beispielen wird die Rolle von MyFaces Extensions Validator (aka MyFaces ExtVal) bei der Integration von JSR 303 in JSF-Applikationen veranschaulicht.
Go Fullstack: Webanwendungen mit Java EE 6 bauen (W-JAX 2011)Michael Kurz
Folien zum Vortrag Go Fullstack: Webanwendungen mit Java EE 6 bauen von Michael Kurz auf der W-JAX 2011 in München.
Die dazugehörenden Beispiele sind unter https://github.com/jsflive/mygourmet-ee zu finden.
JSF und JPA effizient kombinieren (W-JAX 2011)Michael Kurz
Folien zum Vortrag JSF und JPA effizient kombinieren von Michael Kurz auf der W-JAX 2011 in München.
Die dazugehörenden Beispiele sind unter https://github.com/jsflive/mymail-owb zu finden.
JavaServer Faces 2.2 (Herbstcampus 2013)Michael Kurz
Folien für die Session "Neues Gesicht: Neues und Erwähnenswertes aus JavaServer Faces 2.2" vom Herbstcampus 2013.
Die Beispiele für diese Session sind unter https://github.com/jsflive/jsf22-examples verfügbar.
Folien zum Vortrag JSF 2 Kompositkomponenten von Michael Kurz auf der JAX 2012 in Mainz.
Die dazugehörenden Beispiele sind unter https://github.com/jsflive zu finden.
GWT wird verwendet um moderne, komplexe Rich Internet Applications zu erstellen. Durch die Generierung von JavaScript aus Java Code können alle Vorteile von Java genützt und gleichzeitig die immer größer werdenden Anforderungen der Web-Benutzer in Bezug auf Style, Performance, Interaktion und Browser-Kompatibilität von Webseiten abgedeckt werden. In dem Vortrag wird GWT vorgestellt und auf dessen Einsatz in der Praxis eingegangen.
Das Model-View-Presenter-Pattern (MVP) wurde von Google für GWT empfohlen. Es schreibt eine strenge Trennung von View und Presenter vor, die vor allem der Testbarkeit dient. Dieser Vorteil kann auch mit GWT genützt werden, um Logik im Presenter in schnellen Unit-Tests zu überprüfen. Activities und Places helfen in GWT-Applikationen die Browser-History zu verwenden, hängen aber nicht zwingend mit MVP zusammen, wie im Vortrag gezeigt wird.
Zur Internationalisierung von Anwendungen bietet GWT schnelle, typsichere Konzepte. Es wird ein praxisorientierter Einblick gegeben und auf Stolpersteine hingewiesen.
Außerdem wird im Vortrag gezeigt, wie Performance-Probleme des generierten JavaScript-Codes umgangen werden können.
Go Fullstack: Webanwendungen mit Java EE 6 bauen (W-JAX 2011)Michael Kurz
Folien zum Vortrag Go Fullstack: Webanwendungen mit Java EE 6 bauen von Michael Kurz auf der W-JAX 2011 in München.
Die dazugehörenden Beispiele sind unter https://github.com/jsflive/mygourmet-ee zu finden.
JSF und JPA effizient kombinieren (W-JAX 2011)Michael Kurz
Folien zum Vortrag JSF und JPA effizient kombinieren von Michael Kurz auf der W-JAX 2011 in München.
Die dazugehörenden Beispiele sind unter https://github.com/jsflive/mymail-owb zu finden.
JavaServer Faces 2.2 (Herbstcampus 2013)Michael Kurz
Folien für die Session "Neues Gesicht: Neues und Erwähnenswertes aus JavaServer Faces 2.2" vom Herbstcampus 2013.
Die Beispiele für diese Session sind unter https://github.com/jsflive/jsf22-examples verfügbar.
Folien zum Vortrag JSF 2 Kompositkomponenten von Michael Kurz auf der JAX 2012 in Mainz.
Die dazugehörenden Beispiele sind unter https://github.com/jsflive zu finden.
GWT wird verwendet um moderne, komplexe Rich Internet Applications zu erstellen. Durch die Generierung von JavaScript aus Java Code können alle Vorteile von Java genützt und gleichzeitig die immer größer werdenden Anforderungen der Web-Benutzer in Bezug auf Style, Performance, Interaktion und Browser-Kompatibilität von Webseiten abgedeckt werden. In dem Vortrag wird GWT vorgestellt und auf dessen Einsatz in der Praxis eingegangen.
Das Model-View-Presenter-Pattern (MVP) wurde von Google für GWT empfohlen. Es schreibt eine strenge Trennung von View und Presenter vor, die vor allem der Testbarkeit dient. Dieser Vorteil kann auch mit GWT genützt werden, um Logik im Presenter in schnellen Unit-Tests zu überprüfen. Activities und Places helfen in GWT-Applikationen die Browser-History zu verwenden, hängen aber nicht zwingend mit MVP zusammen, wie im Vortrag gezeigt wird.
Zur Internationalisierung von Anwendungen bietet GWT schnelle, typsichere Konzepte. Es wird ein praxisorientierter Einblick gegeben und auf Stolpersteine hingewiesen.
Außerdem wird im Vortrag gezeigt, wie Performance-Probleme des generierten JavaScript-Codes umgangen werden können.
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDIadesso AG
Auch mit JSF 2 und CDI lassen sich in kürzester Zeit komplexe Anwendungen realisieren, wenn man weiß, wie. Anhand des Technologie-Stacks JSF 2, CDI, Lombok, HTML5, jQuery und JPA wird eine leichtgewichtige Architektur anhand einer Livedemo vorgestellt, die den Anforderungen des Rapid Application Development gerecht wird und in der Cloud betrieben werden kann.
Mit dem Google Web Toolkit (GWT) kann das Frontend einer Webapplikation bequem in Java entwickelt werden. Für die Steuerung des UIs wird von Google das Model-View-Presenter-Pattern (MVP) empfohlen.
Es schreibt eine strenge Trennung von View und Presenter vor, die zu einer sauberen Gliederung führt und der Testbarkeit dient. Wir zeigen, wie man MVP mit GWT einsetzt und dabei Unit-Tests zur Qualitätssicherung nutzt.
Activities und Places helfen in GWT-Applikationen die Browser-History zu verwenden. Wir zeigen, wie Activities und Places mit MVP zusammen spielen.
GWT's Architektur ist darauf ausgerichtet, MVP zu unterstützen, ein Pattern für komplexe Server-Client-Side-Applikationen.
Der größte Vorteil dieses Patterns liegt in der guten Testbarkeit mittels Unittests. Aufwändige Tests von UI-Komponenten werden vermieden.
Im Vortrag wird der Aufbau und die Vorteile von MVP vorgestellt sowie das Zusammenspiel von MVP und GWT an praktischen Beispielen gezeigt.
Speaker: Sven Kölpin
Komponentenbibliotheken wie Primefaces und Richfaces stellen für die Entwicklung von JSF-Anwendungen eine Vielzahl komplexer Komponenten bereit. Aber der ersten Euphorie folgt die Ernüchterung. Und statt der erhofften Vorteile muss man sich mit neuen Problemen befassen. Dabei kann man sich mit HTML5, JavaScript, Composite Components und der Behavior API maßgeschneiderte Erweiterungen für die eigene Anwendung schaffen.
Der Vortrag zeigt wie man für eine JSF-Anwendung dynamische und wiederverwendbare Bausteine für die eigene Anwendung realisieren kann.
Java Persistence in Action – Einsatz von JPA 2.x in Java-EE-Anwendungengedoplan
Präsentation zum Vortrag von Dirk Weil (GEDOPLAN, http://www.gedoplan.de) auf der W-JAX 2012:
Der überwiegende Teil von Unternehmensanwendungen nutzt O/R-Mapper zum Zugriff auf Datenbanken. Reicht dafür der Standard JPA 2.0 oder braucht man zwingend spezielle Eigenschaften von Hibernate/EclipseLink/OpenJPA? Soll man transaktionsgebunden oder konversationsorientiert arbeiten? Welche Neuerungen sind für JPA 2.1 geplant? Dieser Talk beantwortet die Fragen anhand diverser Beispiele aus der Praxis.
Präsentation zum Thema Datenbankoptimierung: Effektiver Einsatz von EHCache, etc. "Ein typisches Szenario bei Enterprise-Applications ist folgendes: mehrere Application-Server greifen auf eine Datenbank zu. Schnell wird dabei der Zugriff auf die Datenbank zum Performance-Engpass. Im Vortrag wird das Caching von Query-Ergebnissen auf den Application-Servern mit Hilfe der JPA erklärt."
1. AGES-BfR-Forum "Nahrungsergänzungsmittel: Nutzen und Risiko", 30. Mai 2012
Anlässlich des 10-jährigen Bestehens der AGES und der 5-jährigen Kooperation mit dem deutschen Bundesinstitut für Risikobewertung (BfR) fand eine Spezialveranstaltung zum Thema Nahrungsergänzungsmittel (NEM) statt, bei der die bisher umfassendste Erhebung zum Thema im deutschen Sprachraum exklusiv präsentiert wurde. Risiken und Nutzen von NEM wurden aus Sicht der Lebensmittel- & Arzneimittelsicherheit, Risikobewertung & Risikokommunikation, die den Verbraucherinteressen gerecht wird, betrachtet. Die ExpertInnen von AGES und BfR diskutierten mit rund 120 Gästen aus Wissenschaft & Forschung, Wirtschaft & Industrie, Ärzteschaft & Apotheken sowie Behörden und Medien.
Dokumentation der Fachtagung mit Präsentationen:
http://www.ages.at/ages/ages-akademie/stakeholderveranstaltungen/wien-nahrungsergaenzungsmittel/
Disclaimer:
Die Inhalte dieses Vortrages sind die Privatmeinung der Vortragenden und sind keine offizielle Aussagen der AGES MEA bzw. des Bundesamtes für Sicherheit im Gesundheitswesen
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDIadesso AG
Auch mit JSF 2 und CDI lassen sich in kürzester Zeit komplexe Anwendungen realisieren, wenn man weiß, wie. Anhand des Technologie-Stacks JSF 2, CDI, Lombok, HTML5, jQuery und JPA wird eine leichtgewichtige Architektur anhand einer Livedemo vorgestellt, die den Anforderungen des Rapid Application Development gerecht wird und in der Cloud betrieben werden kann.
Mit dem Google Web Toolkit (GWT) kann das Frontend einer Webapplikation bequem in Java entwickelt werden. Für die Steuerung des UIs wird von Google das Model-View-Presenter-Pattern (MVP) empfohlen.
Es schreibt eine strenge Trennung von View und Presenter vor, die zu einer sauberen Gliederung führt und der Testbarkeit dient. Wir zeigen, wie man MVP mit GWT einsetzt und dabei Unit-Tests zur Qualitätssicherung nutzt.
Activities und Places helfen in GWT-Applikationen die Browser-History zu verwenden. Wir zeigen, wie Activities und Places mit MVP zusammen spielen.
GWT's Architektur ist darauf ausgerichtet, MVP zu unterstützen, ein Pattern für komplexe Server-Client-Side-Applikationen.
Der größte Vorteil dieses Patterns liegt in der guten Testbarkeit mittels Unittests. Aufwändige Tests von UI-Komponenten werden vermieden.
Im Vortrag wird der Aufbau und die Vorteile von MVP vorgestellt sowie das Zusammenspiel von MVP und GWT an praktischen Beispielen gezeigt.
Speaker: Sven Kölpin
Komponentenbibliotheken wie Primefaces und Richfaces stellen für die Entwicklung von JSF-Anwendungen eine Vielzahl komplexer Komponenten bereit. Aber der ersten Euphorie folgt die Ernüchterung. Und statt der erhofften Vorteile muss man sich mit neuen Problemen befassen. Dabei kann man sich mit HTML5, JavaScript, Composite Components und der Behavior API maßgeschneiderte Erweiterungen für die eigene Anwendung schaffen.
Der Vortrag zeigt wie man für eine JSF-Anwendung dynamische und wiederverwendbare Bausteine für die eigene Anwendung realisieren kann.
Java Persistence in Action – Einsatz von JPA 2.x in Java-EE-Anwendungengedoplan
Präsentation zum Vortrag von Dirk Weil (GEDOPLAN, http://www.gedoplan.de) auf der W-JAX 2012:
Der überwiegende Teil von Unternehmensanwendungen nutzt O/R-Mapper zum Zugriff auf Datenbanken. Reicht dafür der Standard JPA 2.0 oder braucht man zwingend spezielle Eigenschaften von Hibernate/EclipseLink/OpenJPA? Soll man transaktionsgebunden oder konversationsorientiert arbeiten? Welche Neuerungen sind für JPA 2.1 geplant? Dieser Talk beantwortet die Fragen anhand diverser Beispiele aus der Praxis.
Präsentation zum Thema Datenbankoptimierung: Effektiver Einsatz von EHCache, etc. "Ein typisches Szenario bei Enterprise-Applications ist folgendes: mehrere Application-Server greifen auf eine Datenbank zu. Schnell wird dabei der Zugriff auf die Datenbank zum Performance-Engpass. Im Vortrag wird das Caching von Query-Ergebnissen auf den Application-Servern mit Hilfe der JPA erklärt."
1. AGES-BfR-Forum "Nahrungsergänzungsmittel: Nutzen und Risiko", 30. Mai 2012
Anlässlich des 10-jährigen Bestehens der AGES und der 5-jährigen Kooperation mit dem deutschen Bundesinstitut für Risikobewertung (BfR) fand eine Spezialveranstaltung zum Thema Nahrungsergänzungsmittel (NEM) statt, bei der die bisher umfassendste Erhebung zum Thema im deutschen Sprachraum exklusiv präsentiert wurde. Risiken und Nutzen von NEM wurden aus Sicht der Lebensmittel- & Arzneimittelsicherheit, Risikobewertung & Risikokommunikation, die den Verbraucherinteressen gerecht wird, betrachtet. Die ExpertInnen von AGES und BfR diskutierten mit rund 120 Gästen aus Wissenschaft & Forschung, Wirtschaft & Industrie, Ärzteschaft & Apotheken sowie Behörden und Medien.
Dokumentation der Fachtagung mit Präsentationen:
http://www.ages.at/ages/ages-akademie/stakeholderveranstaltungen/wien-nahrungsergaenzungsmittel/
Disclaimer:
Die Inhalte dieses Vortrages sind die Privatmeinung der Vortragenden und sind keine offizielle Aussagen der AGES MEA bzw. des Bundesamtes für Sicherheit im Gesundheitswesen
Lernen Sie, wie Sie Schritt für Schritt zum CE-Zeichen für Ihr Medizinprodukt kommen und dass es kein CE-Audit und keine Zulassung gibt.
Die Präsentation beschreibt den Weg von der Zweckbestimmung, über die Wahl des Konformitätsbewertungsverfahrens, die Klassifzierung, den Nachweis der grundlegenden Anforderungen mit harmonisierten Normen über die Konformitätserklärung und das Anbringen des CE-Zeichens bis zur Post-Market-Phase.
Mobile Medical Apps: In 5 Schritten zur "Medizinprodukte-Zertifizierung"Christian Johner
Mobile Medical Apps müssen die gleichen gesetzlichen Forderungen erfüllen wie andere Medizinprodukte. Dazu zählen die Forderungen nach Risikomanagement, Usability und Software-Lebenszyklus-Prozessen. Lernen Sie, wie Sie Ihre Medical App und Ihre Organisation auf eine "Zertifizierung" z.B. nach ISO 13485 vorbereiten können und wie Ihnen dabei Normen IEC 62304, IEC 62366 und ISO 14971 dabei helfen.
Teil 1 der Präsentation „Juristische Gutachten“ befasst sich mit Methode und Gutachtenstil. So ist es von enormer Wichtigkeit, dass Studierende zunächst einmal den Sachverhalt gründlich lesen und in seiner Gesamtheit erfassen. Dies führt zum Erkennen der Problemstellung und zur systematischen Gliederung der Arbeit. Schließlich muss der Gutachtenstil angewendet werden, wobei die Subsumtion des Sachverhalts unter die Tatbestandsvoraussetzungen der Anspruchsgrundlage den wichtigsten Schritt darstellen.
Saisonrückblick Social Media Recht re-publica 2012Henning Krieg
Die Vortragsfolien zum Workshop "Saisonrückblick - Social Media Recht 2011/2012" der Rechtsanwälte Thorsten Feldmann und Henning Krieg auf der re-publica 2012
Restructuration du département de la pédiatrie de Gustave Roussy : Visite de ...Gustave Roussy
Photos de la visite de chantier du département de la pédiatrie pour les donateurs ayant soutenu le projet.
Au programme de cette matinée du 16 novembre 2013 : explication sur les cancers de l’enfant, l’activité du service et la genèse du projet puis visite du nouvel hôpital de jour (phase I), visite du chantier de la phase II (développement d'espaces d'activités, de consultations, hôtel des parents...), et visite de l’ancien Hôpital de Jour.
La dernière phase des travaux qui démarrera en août 2014 n’est pas totalement financée.
Nous avons besoin de 100 000 € pour la création des bureaux des médecins et des zones de recherche clinique.
Si vous souhaitez participer au financement de la dernière phase des travaux, du département de la pédiatrie, rendez-vous sur http://igr.friendraising.eu/poussons.lesmurs
Merci pour votre soutien
Die 2016 gegründete und inzwischen in der Eclipse Foundation beheimatete Initiative MicroProfile ist angetreten, die Lücke zwischen dem Enterprise-Java-Standard (Java EE aka EE4J) und den Praxisanforderungen Microservices-basierter Architekturen zu schließen. Das bestehende Momentum der JEE-Community als Hebel nutzen und organisch um den Bedarf der Microservices-Community ergänzen, so der Plan. Und dieser Plan scheint aufzugehen. In nur wenigen Monaten ist es gelungen, eine Reihe sinnvoller Microservices-relevanter APIs mit bestehenden Java-EE-7/8-APIs zu kombinieren und diese in regelmäßigen MicroProfile-Releases zu veröffentlichen. Egal ob Health Check, Metrics, Fault Tolerance, JWT Propagation, Configuration, Tracing oder Open API, MicroProfile scheint die richtigen Antworten – sprich APIs – im Gepäck zu haben. Die Session zeigt den aktuellen Stand von MicroProfile und demonstriert dessen Mehrwert anhand praktischer Beispiele.
Softwarequalitätssicherung mit Continuous Integration ToolsGFU Cyrus AG
Kurzbeschreibung
Automatische Softwaretests rücken immer mehr in den Mittelpunkt. Gerade die derzeit vielfach eingesetzten agilen Vorgehensweisen benötigen ein teamübergreifendes und reproduzierbares Verfahren zur Sicherung der Softwarequalität. In diesem Vortrag legt Dirk Weil, Geschäftsführer der GEDOPLAN GmbH aus Bielefeld, das Augenmerk auf die Werkzeuge, die in Java-Projekten zum fortlaufenden Build und Test von Software genutzt werden können. Anhand einiger Praxisbeispiele zeigt er den Aufbau und Betrieb einer Continuous-Integration-Umgebung, die GEDOPALN für Softwareprojekte betreibt. Dozent: Dirk Weil, Gedoplan
Inhalt
- Grundlagen und Motivation automatischer Softwaretests
- Testziele und Verfahren (Unit-Tests, Regressionstests, Akzeptanztests etc.)
- Build- und Testautomatisierung
- Beispielumgebung auf Basis von Ant, Maven, Subversion und Hudson
- Code-Analyse
- Extreme Feedback
Basta 2016 - Test- und Releaseumgebungen in der CloudMarc Müller
Test- und Produktionsumgebungen gehören zum täglich Brot von Entwicklungs-, Test- und Adminteams. In der Praxis sieht man dabei sehr oft das Phänomen, dass die diversen Umgebungen immer wieder von den Beteiligten händisch angelegt und gepflegt werden. In modernen DevOps-Prozessen ist dieses Vorgehen nicht mehr zeitgemäß, fehleranfällig und zu teuer. Im Vortrag soll vorgestellt werden, wie Umgebungen mit modernen Deployment- und Verwaltungskonzepten in Azure betrieben und automatisch deployt werden können. Die Grundlage für die Build-, Deployment- und Testautomatiseriung bildet hierbei Team Foundation Server bzw. Team Foundation Team Services.
Acceptance Testing - Automatisierte Web App Tests mit CasperJSBjörn Wilmsmann
PhantomJS und das darauf basierende CasperJS sind WebKit-basierte Lösungen, mit denen Web Anwendungen automatisiert getestet werden können. Über JavaScript können damit Navigationsabläufe und Anwendungsfälle aus Nutzersicht abgebildet werden. Acceptance Tests werden so zu einer wertvollen Ergänzung des Testablaufs.
Die Version 6 der Java Enterprise Edition steht kurz vor der Verabschiedung. Viele Stimmen sagen, dass die darin enthaltenen Technologien nunmehr nahezu ausgereift und alle Erwartungen erfüllt seien. Es werden die neuen Features insbesondere in den Bereichen Enterprise JavaBeans, Webanwendungen, Java Persistence und Webservices beleuchtet. Die anschließende Diskussion kann zeigen, ob die anfangs angesprochenen Vorschusslorbeeren gerechtfertigt sind und ob die Wunschliste tatsächlich vollständig abgearbeitet wurde.
EJB 3.1
- Session Beans ohne local Interface
- Singletons, Timer
- Session Bean Methoden asynchron
Servlet 3.0
- Ease of Development
JSF 2.0
- Ohne faces-config.xml?
JPA 2.0
- Weitere Mapping-Optionen
- Relationsfelder im Primärschlüssel
Features einer Applikation werden häufig implementiert, weil die Verantwortlichen vermuten, dass diese Funktionalitäten einen Mehrwert für die Benutzer der Applikation bieten. Je nach Umfang wird mehr oder weniger Geld investiert. Ohne weitere Unterstützung sind und bleiben es jedoch Vermutungen. Eine bessere Lösung bieten hier A/B-Tests. Features werden kostengünstig in einer oder mehreren Varianten umgesetzt und mit einer Kontrollimplementierung verglichen. Die Umsetzung, die sich als die beste herausstellt, wird überarbeitet und bleibt in der Applikation erhalten. Diese Vorgehensweise lässt sich sehr gut in node.js-Applikationen integrieren. Mithilfe von A/B-Tests können Sie Ihre Applikation an den Anforderungen Ihrer Benutzer ausrichten.
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...Marc Müller
Mittlerweile haben sich im VS-Umfeld immer mehr Nicht-MSTest-Testframeworks etabliert. Im Vortrag wollen wir auf mögliche Alternativen zu MSTest und Coded UI eingehen (z. B. Selenium, Ranorex, Protractor, …). Es geht dabei um Vor-/Nachteile, sinnvolle Szenarien und wie man es geschickt in die TFS-Werkzeugwelt integriert. Das Ziel ist dabei, das Beste aus beiden Welten zu bekommen.
Selenium bietet als Testwerkzeug eine große Spanne an Möglichkeiten, Tests für Webcontent zu erstellen. Häufig haben Nutzer jedoch Probleme, mit Selenium robuste Tests zu erzeugen. Ursache für diese Probleme ist oftmals nicht oder ungenügend berücksichtigtes Zeitverhalten.
Selenium bietet von Haus aus Wege an, diese Probleme zu bewältigen. Bei United Planet gehen wir seit Anfang 2017 noch einen Schritt weiter, indem wir ein hauseigenes Selenium Framework verwenden. Die damit gemachten Erfahrungen möchten wir gern mit den Konferenzteilnehmern teilen. Wir möchten unseren Ansatz zeigen, einen hohen Stabilitätsgrad, bei vernünftiger Laufzeit zu erreichen. Darüber hinaus, möchten wir vorführen, wie es uns durch Nutzung von Docker gelingt, unsere Selenium Tests zu parallelisieren und wie wir dabei vorgehen, um fehlgeschlagene Tests mit Hilfe von Screenshots, Videos und Logausgaben zu debuggen.
Zeitnahe Reaktion auf Verordnungsänderungen mit Feature TogglesBATbern
Häufige und kurzfristige Änderungen an gesetzlichen Grundlagen, die berücksichtigt werden müssen, stellen selbst kurze Releasezyklen vor Herausforderungen. Das Team vom Covid Zertifikat zeigt, wie sie solche Herausforderungen vor allem auch von Features die deaktiviert werden, gelöst haben.
MyFaces CODI and JBoss Seam3 become Apache DeltaSpikeos890
These slides show how to use type-safe mechanisms provided by MyFaces CODI for developing JSF applications which are more type-safe and easier to maintain as well as common pitfalls. Beyond that there is an basic overview of Apache DeltaSpike.
Make JSF more type-safe with CDI and MyFaces CODIos890
These slides show how to use type-safe mechanisms provided by MyFaces CODI for developing JSF applications which are more type-safe and easier to maintain.
http://2012.con-fess.com/sessions/-/details/136/MyFaces-CODI-and-JBoss-Seam3-become-Apache-DeltaSpike is the next part with more details about MyFaces CODI and Apache DeltaSpike at
These slides introduce MyFaces Extensions Validator. This first part is a short overview. To get more details about MyFaces Extensions Validator we also offer slides with all important details. Do not hesitate to contact us!
3. DI (FH) Gerhard.Petracek @irian.at
• JCP-Member
(Bean Validation Expert Group)
• Apache MyFaces
• Committer
• PMC Member
• Project Lead (ExtVal)
• Schulungen zu JEE (v.a. JSF)
• Autor verschiedener Fachartikel
• Vorträge (Software und Web-Engineering)
17.12.2009
4. Bean-Validation Ökosystem - 1
• Spec.-Lead: Emmanuel Bernard
• EG-Members
• Internationale Firmen wie
• Sun
• Oracle
• Google
• uvm.
• Einige Project Leads erfolgreicher
Validierungsframeworks
• Von Irian Solutions: Gerhard Petracek
17.12.2009
5. Bean-Validation Ökosystem - 2
• Implementierungen
• Hibernate-Validator v4+ (RI)
• Agimatec-validation (bald bei Apache SF)
• OVal
• JSF Support lt. Spec. für JSF 2+
• Adapter für JSF
• MyFaces ExtVal BV-Integration-Module
(für JSF 1.x und JSF 2+)
17.12.2009
6. Hello Bean-Validation
• Beispiel
public class Customer {
@NotNull
private String firstName;
public String getFirstName() {
return firstName;
}
public void setFirstName(
String firstName) {
this.firstName = firstName;
}
}
17.12.2009
9. Eigene Constraints Definieren
• Erforderliche Bestandteile:
• @Constraint (1-n Constraint-Validator(en))
• Target
• FIELD
• METHOD
• TYPE
• ANNOTATION_TYPE (für Constraint composition)
• Und natürlich: Retention RUNTIME
• Verpflichtende Attribute
• message
• groups
• payload
17.12.2009
10. Constraint-Validatoren
• Implementierung von
javax.validation.ConstraintValidator
• initialize
• isValid
• Ist auf ein Constraint und einen
Ziel-Typ beschränkt (via Generics)
• Ein Constraint kann für mehrere
Ziel-Typen verwendet werden
• Bsp.: @Size für String, Array, Map, …
17.12.2009
11. Error Messages
• Message-Interpolator transformiert
Nachrichten automatisch
• Keys
• Hardcoded
• Beispiel:
@Size(min = 1, max = 10,
message = "{firstName.lengthMessage}")
Resource-Bundle:
firstName.lengthMessage =
Name must be between {min} and {max}
17.12.2009
12. Group-Validation / Partial-Validation
• Default:
Constraint ist der Default-Gruppe zugeordnet
(javax.validation.groups.Default)
• Gruppen sind Interfaces und somit typesafe
• Ermöglicht Validierung impliziter Gruppen
• Beispiel:
@NotNull
entspricht
@NotNull(groups = Default.class)
17.12.2009
13. Reihenfolge bei der Validierung
• Default: keine Reihenfolge
• @GroupSequence ermöglicht die Angabe
der Reihenfolge
• Rechenintensive Gruppen sollen am Ende
validiert werden
• Validierung einer Gruppe findet statt, wenn
die vorherige Gruppe fehlerfrei validiert
wurde
17.12.2009
14. Multiple-Constraints
• Via Annotation-Element
(Array vom Constraint-Typ)
• Beispiel:
Zuordnung von Constraints zu Rollen
(via Group-Validation)
@Size.List({
@Size(groups = Default.class
min = 10, max = 20),
@Size(groups = AdminGroup.class
min = 1, max = 30)
})
17.12.2009
15. Validation-Payload
• Subset von Validation-Parameter
(siehe MyFaces ExtVal >= 3. Release)
• javax.validation.Payload
• Für Validation-Clients wie MyFaces ExtVal
nutzbar – bspw.: Severity.Warn.class
• Beispiel:
public class Severity {
public static class Warn
implements Payload {}
public static interface Error
extends Payload {}
}
17.12.2009
16. Graph-Validation
• Wird ein Objekt validiert, dann werden
referenzierte Objekte mit-validiert, wenn
@Valid verwendet wird
• Auch Inhalte von Collections und Arrays
• Keine Validierung erfolgt, wenn Lazy-
Properties noch nicht geladen wurden
17.12.2009
17. Class-Level Validation
• Constraint für e. Klasse/Interface
• Wird vererbt aber nicht überschrieben
• Bei der Validierung liegt das aktuelle
Objekt im gesamten vor
• In JSF nur mit MyFaces ExtVal
17.12.2009
18. Constraint-Composition
• Mit Constraints annotierte Constraints
• Wiederverwendung von Constraints
• Violation-Message(s)
• Default: Messages der einzelnen Constraints
• Mit @ReportAsSingleViolation wird die
Error-Message des Haupt-Constraints
angezeigt
17.12.2009
21. Bean-Validation und JSF
• Änderungen in JSF 2.0 für JSR 303
• Default Validator
• Geändertes Verhalten v. required-Attribut
• ValidatorException mit mehreren Messages
• Verschiedene Konfigurationsparameter
• Spezieller Tag (validiert Default-Gruppe):
<f:validateBean/>
• Beispiele:
• Validierung der Default Group
• Group-Validation
<f:validateBean validationGroups =
"at.irian.demo.validation.groups.Order"/>
17.12.2009
22. MyFaces Extensions Validator
Ermöglicht die einfache Umsetzung von
fortschrittlichen Validierungskonzepten für
JSF-Applikationen auf Basis von
dynamischen
Metadaten.
17.12.2009
24. Bean-Validation & MyFaces ExtVal - 1
• MyFaces ExtVal bietet JSR 303
Integration für alle JSF Versionen
• Integration als unabhängiges
Validation-Module
• Group-Validation erfolgt via Annotation
• Definition (norm.) auf Page-Bean-Level
• Compile-time check + IDE Support
• Support für Model-Validation
• Sorted violation messages
• DI Support für Constraint-Validatoren
17.12.2009
25. Bean-Validation & MyFaces ExtVal - 2
• Severity Aware Validation
• Client-side validation in Kombination mit
MyFaces Trinidad
• Group Storage
(ermöglicht die Speicherung von Validation-
Groups in unterschiedlichen Quellen)
• Validation Interception
• Validation Exception Intercepetion
• Einige Add-ons
17.12.2009
27. JSF-Request-Lifecycle - Validierung
Faces- Apply Conversion
Restore Process
request Request and
View Events
Values Validation
Process
events
CLIENT
Update
Model
Faces-
response Render Process Invoke Process
Response Events Application Events
Validation / Conversion Errors
Render Response
17.12.2009
28. Exkurs: ExtVal im JSF-Lifecycle
Apply Conversion
Restore Update Invoke Render
Request and
Application
View Model Response
Values Validation
ExtVal
ExtVal Std. JSF
Cross-
Validation Validation
Validation
17.12.2009
29. ExtVal-BV-Integration im JSF-Lifecycle
Apply Conversion
Restore Update Invoke Render
Request and
Application
View Model Response
Values Validation
ExtVal-BV
ExtVal-BV Std. JSF
Model
Validation Validation
Validation
17.12.2009
30. Group-Validation mit MyFaces ExtVal
• Via @BeanValidation
(= typsichere Alternative zu f:validateBean)
• Nur bei Group-Validation (und Model Validation)
• Möglichkeiten
• Simple Angabe von Gruppen
• Einschränkung auf View-IDs
• Bedingungen via EL-Expression definieren
• Gruppen herausfiltern
17.12.2009
31. @BeanValidation Beispiele
• Group-Validation für alle Seiten, die dieses
Page-Bean verwenden
public class HelloWorldController {
@BeanValidation(useGroups = User.class)
private Person person = new Person();
…
}
• Group-Validation nach Seiten unterscheiden
@BeanValidation.List({
@BeanValidation(viewIds = "/page1.xhtml",
useGroups = User.class),
@BeanValidation(viewIds = "/page2.xhtml",
useGroups = Admin.class)
})
public class HelloWorldController {
private Person person = new Person();
…
}
17.12.2009
32. @ModelValidation
• Diese Validierung erfolgt nach der Phase
„Update Model Values“
• Validiert wird
• Base-Objekt der Property (Default)
• Andere Objekte (via EL-Expression)
• Rollback via Add-on möglich
• Beispiel:
@BeanValidation(modelValidation =
@ModelValidation(isActive = true))
17.12.2009
33. @ModelValidation – Fehlermeldungen
• Fehler-Meldungen werden global angezeigt
(inline ist optional möglich)
• Fehlermeldungen können bei Bedarf
überschrieben werden
17.12.2009
34. ExtVal-Add-ons für JSR 303 Validation
• Group-Validation via action-Methoden
• Transactional model validation
• Continue with warnings
• Bypass BV
• Tag als Alternative zu @BeanValidation
• ...
17.12.2009