SlideShare une entreprise Scribd logo
1  sur  21
 Good GateIn stuff Disclaimer : this will not be about visual things
Model Object for Portal Workspace: the global object Site: three kind of sites portal, group, user Navigations: a tree of links Link : page link, URL link Each navigation points to a layout reduced to using the navigation of the root Pages: a tree of pages The tree structure provides inheritance for page state reduced to a flat set of named pages Each page points to a root UI container
Object structure Workpace Site Navigation Link <<layout>> Page Page Link <<shows>> UI Container URL Link … Link
Content customization Content State Customization Context Customization Clone Specialization <<inheritance>>
Portal customization context Several levels are potentially available Shared by workspace objects Workspace: used by application registry Site: declared in portlet-preferences.xml Page: usedfor page deep cloning Non shared: window
Customization inheritance Basic use case supported in 3.0 Application dropped from composer in page The window customization references a workspace customization
Additional customization context Window context MOP Framework Only Customization Identity Context Navigation Context Julien Tug Nav 1 Nav 2
Content plugability Native support for content Statefull  Portlet: Map<String, String[]> Gadget: Map<String, Object> WSRP: byte[] Stateless Current status Persistence : supported by adding new node type GateIn level : partially supported
Layouting Three nested layouts Shared layout Shared by all sites and not editable/persisted at the moment Site layout Portal: the classic portal layout Group layout: useful for adding group logo User layout: shows the dashboard tab Todo: per navigation node layout to provide different layout of a navigation subtree Page layout Layouts are pages in an hidden space
Model extension Each entity has a set of generic properties Useful for driving the behavior Possiblity to add mixin to mop node types Need to make mixin available at the object level (Chromattic and MOP support) Use case : add mixin to Site to add contain additional resources
Content extension Content type plugin MOP plugin manages the content customization manages import / export of the content manages versionning of the content UI plugin Show the content visually in the UI composer Manage content in the application content registry
Chromattic and GateIn An object / JCR mapping engine Not perfect yet But heavily tested Enable development rich models Efficient lazy loading Controls the flow of your code (get rid of hasNode/hasProperty/RepotoryException)
Type safe and simple access to data public Integer getFooOfBar(Bar bar /* type safe */) {   return bar.getFoo(); // simple and typed } public Integer getFooOfBar(Node bar) throws RepositoryException /* WTF? */ {   // Is it the right node? Should check its type…   Integer size = null;   if (node.hasProperty(“foo”)) // Is it here ?      return (int)node.getProperty(“foo”).getLong();   return null; }
List support for ordering List<Foo> foos= bar.getFoos(); foos.add(0, foos.get(2)); throw new UnsupportedOperationException(“need to find someone to implement element order change as the nobody understands the API to do it”);
Find references by UUID (or Path) // Find the bar node pointing to foo Bar bar = foo.getBar(); // With @OneToMany(type = RelationshipType.REFERENCE) @MappedBy(“foo”); public abstract Foo getFoo(); PropertyIterator i = foo.getReferences(); while (i.hasNext()) {   Property p = i.nextProperty();   Node referent = p.getParent();   if (isTypeOfNode(reference, “foo”)) {     return referent;   } } return null;
Chromattic work to do Detach / attach entity graph Embeddable object support Nodetypes.xml generation Finalize 1.0 public API
Web Container Integration Deployment is based on Web Container Integration framework (aka WCI) GateIn component that focus on integrating the web container deployment and runtime Easily be aware of web application life cycle Removes the need of ServletContextListener intrusion in web.xml One listener to rule them all
GateIn descriptors Based on WCI events /WEB-INF/gatein-resources.xml Declares CSS, skins and javascript /WEB-INF/gadgets.xml Was already existing but now with a XSD
Groovy template Groovy template engine was rewritten Increased performances Provides contextual exceptions with template name, line of code and even an excerpt of the failing code
Gadget unification Dashboard container is now stored in the containing MOP page instead of having a portlet that pointed to another container Use native gadget support Avoid data federation Simplify data life cycle (i.e page deletion transitively deletes the dashboard)
Other stuff Identity integration via JBoss Picket Link Open source SSO support (CAS, Josso, OpenSSO)

Contenu connexe

Similaire à Good GateIn Stuff

uMobile Preconference Seminar
uMobile Preconference SeminaruMobile Preconference Seminar
uMobile Preconference SeminarJennifer Bourey
 
Html5 - Awesome APIs
Html5 - Awesome APIsHtml5 - Awesome APIs
Html5 - Awesome APIsDragos Ionita
 
A Complete Tour of JSF 2
A Complete Tour of JSF 2A Complete Tour of JSF 2
A Complete Tour of JSF 2Jim Driscoll
 
Advanced SharePoint Web Part Development
Advanced SharePoint Web Part DevelopmentAdvanced SharePoint Web Part Development
Advanced SharePoint Web Part DevelopmentRob Windsor
 
Chrome & Webkit overview
Chrome & Webkit overviewChrome & Webkit overview
Chrome & Webkit overviewBin Chen
 
Nasdanika Foundation Server
Nasdanika Foundation ServerNasdanika Foundation Server
Nasdanika Foundation ServerPavel Vlasov
 
Asp.net By Durgesh Singh
Asp.net By Durgesh SinghAsp.net By Durgesh Singh
Asp.net By Durgesh Singhimdurgesh
 
The Functional Web
The Functional WebThe Functional Web
The Functional WebRyan Riley
 
CIRCUIT 2015 - Content API's For AEM Sites
CIRCUIT 2015 - Content API's For AEM SitesCIRCUIT 2015 - Content API's For AEM Sites
CIRCUIT 2015 - Content API's For AEM SitesICF CIRCUIT
 
Customizing the Document Library
Customizing the Document LibraryCustomizing the Document Library
Customizing the Document LibraryAlfresco Software
 
Sprint Portlet MVC Seminar
Sprint Portlet MVC SeminarSprint Portlet MVC Seminar
Sprint Portlet MVC SeminarJohn Lewis
 
D22 Portlet Development With Open Source Frameworks
D22 Portlet Development With Open Source FrameworksD22 Portlet Development With Open Source Frameworks
D22 Portlet Development With Open Source FrameworksSunil Patil
 
D22 portlet development with open source frameworks
D22 portlet development with open source frameworksD22 portlet development with open source frameworks
D22 portlet development with open source frameworksSunil Patil
 
Build powerfull and smart web applications with Symfony2
Build powerfull and smart web applications with Symfony2Build powerfull and smart web applications with Symfony2
Build powerfull and smart web applications with Symfony2Hugo Hamon
 
Angular jS Introduction by Google
Angular jS Introduction by GoogleAngular jS Introduction by Google
Angular jS Introduction by GoogleASG
 
sMash at May NYPHP UG
sMash at May NYPHP UGsMash at May NYPHP UG
sMash at May NYPHP UGProject Zero
 
Making Watir and Cucumber an efficient tool for Web UI Automation
Making Watir and Cucumber an efficient tool for Web UI AutomationMaking Watir and Cucumber an efficient tool for Web UI Automation
Making Watir and Cucumber an efficient tool for Web UI AutomationRuslan Strazhnyk
 

Similaire à Good GateIn Stuff (20)

uMobile Preconference Seminar
uMobile Preconference SeminaruMobile Preconference Seminar
uMobile Preconference Seminar
 
Html5 - Awesome APIs
Html5 - Awesome APIsHtml5 - Awesome APIs
Html5 - Awesome APIs
 
A Complete Tour of JSF 2
A Complete Tour of JSF 2A Complete Tour of JSF 2
A Complete Tour of JSF 2
 
Advanced SharePoint Web Part Development
Advanced SharePoint Web Part DevelopmentAdvanced SharePoint Web Part Development
Advanced SharePoint Web Part Development
 
Chrome & Webkit overview
Chrome & Webkit overviewChrome & Webkit overview
Chrome & Webkit overview
 
Nasdanika Foundation Server
Nasdanika Foundation ServerNasdanika Foundation Server
Nasdanika Foundation Server
 
Advanced xamarin development
Advanced xamarin developmentAdvanced xamarin development
Advanced xamarin development
 
Asp.net By Durgesh Singh
Asp.net By Durgesh SinghAsp.net By Durgesh Singh
Asp.net By Durgesh Singh
 
The Functional Web
The Functional WebThe Functional Web
The Functional Web
 
CIRCUIT 2015 - Content API's For AEM Sites
CIRCUIT 2015 - Content API's For AEM SitesCIRCUIT 2015 - Content API's For AEM Sites
CIRCUIT 2015 - Content API's For AEM Sites
 
Os Johnson
Os JohnsonOs Johnson
Os Johnson
 
Customizing the Document Library
Customizing the Document LibraryCustomizing the Document Library
Customizing the Document Library
 
Customizing Oracle EBS OA Framework
Customizing Oracle EBS OA FrameworkCustomizing Oracle EBS OA Framework
Customizing Oracle EBS OA Framework
 
Sprint Portlet MVC Seminar
Sprint Portlet MVC SeminarSprint Portlet MVC Seminar
Sprint Portlet MVC Seminar
 
D22 Portlet Development With Open Source Frameworks
D22 Portlet Development With Open Source FrameworksD22 Portlet Development With Open Source Frameworks
D22 Portlet Development With Open Source Frameworks
 
D22 portlet development with open source frameworks
D22 portlet development with open source frameworksD22 portlet development with open source frameworks
D22 portlet development with open source frameworks
 
Build powerfull and smart web applications with Symfony2
Build powerfull and smart web applications with Symfony2Build powerfull and smart web applications with Symfony2
Build powerfull and smart web applications with Symfony2
 
Angular jS Introduction by Google
Angular jS Introduction by GoogleAngular jS Introduction by Google
Angular jS Introduction by Google
 
sMash at May NYPHP UG
sMash at May NYPHP UGsMash at May NYPHP UG
sMash at May NYPHP UG
 
Making Watir and Cucumber an efficient tool for Web UI Automation
Making Watir and Cucumber an efficient tool for Web UI AutomationMaking Watir and Cucumber an efficient tool for Web UI Automation
Making Watir and Cucumber an efficient tool for Web UI Automation
 

Plus de jviet

CRaSH: the shell for the Java Platform
CRaSH: the shell for the Java PlatformCRaSH: the shell for the Java Platform
CRaSH: the shell for the Java Platformjviet
 
Annotations pour les Geeks
Annotations pour les GeeksAnnotations pour les Geeks
Annotations pour les Geeksjviet
 
CRaSH the shell for the JVM
CRaSH the shell for the JVMCRaSH the shell for the JVM
CRaSH the shell for the JVMjviet
 
Navigation Service
Navigation ServiceNavigation Service
Navigation Servicejviet
 
GateIn Frameworks
GateIn FrameworksGateIn Frameworks
GateIn Frameworksjviet
 
What's new and cool in Portlet 2.0
What's new and cool in Portlet 2.0What's new and cool in Portlet 2.0
What's new and cool in Portlet 2.0jviet
 

Plus de jviet (6)

CRaSH: the shell for the Java Platform
CRaSH: the shell for the Java PlatformCRaSH: the shell for the Java Platform
CRaSH: the shell for the Java Platform
 
Annotations pour les Geeks
Annotations pour les GeeksAnnotations pour les Geeks
Annotations pour les Geeks
 
CRaSH the shell for the JVM
CRaSH the shell for the JVMCRaSH the shell for the JVM
CRaSH the shell for the JVM
 
Navigation Service
Navigation ServiceNavigation Service
Navigation Service
 
GateIn Frameworks
GateIn FrameworksGateIn Frameworks
GateIn Frameworks
 
What's new and cool in Portlet 2.0
What's new and cool in Portlet 2.0What's new and cool in Portlet 2.0
What's new and cool in Portlet 2.0
 

Dernier

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 

Dernier (20)

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

Good GateIn Stuff

  • 1. Good GateIn stuff Disclaimer : this will not be about visual things
  • 2. Model Object for Portal Workspace: the global object Site: three kind of sites portal, group, user Navigations: a tree of links Link : page link, URL link Each navigation points to a layout reduced to using the navigation of the root Pages: a tree of pages The tree structure provides inheritance for page state reduced to a flat set of named pages Each page points to a root UI container
  • 3. Object structure Workpace Site Navigation Link <<layout>> Page Page Link <<shows>> UI Container URL Link … Link
  • 4. Content customization Content State Customization Context Customization Clone Specialization <<inheritance>>
  • 5. Portal customization context Several levels are potentially available Shared by workspace objects Workspace: used by application registry Site: declared in portlet-preferences.xml Page: usedfor page deep cloning Non shared: window
  • 6. Customization inheritance Basic use case supported in 3.0 Application dropped from composer in page The window customization references a workspace customization
  • 7. Additional customization context Window context MOP Framework Only Customization Identity Context Navigation Context Julien Tug Nav 1 Nav 2
  • 8. Content plugability Native support for content Statefull Portlet: Map<String, String[]> Gadget: Map<String, Object> WSRP: byte[] Stateless Current status Persistence : supported by adding new node type GateIn level : partially supported
  • 9. Layouting Three nested layouts Shared layout Shared by all sites and not editable/persisted at the moment Site layout Portal: the classic portal layout Group layout: useful for adding group logo User layout: shows the dashboard tab Todo: per navigation node layout to provide different layout of a navigation subtree Page layout Layouts are pages in an hidden space
  • 10. Model extension Each entity has a set of generic properties Useful for driving the behavior Possiblity to add mixin to mop node types Need to make mixin available at the object level (Chromattic and MOP support) Use case : add mixin to Site to add contain additional resources
  • 11. Content extension Content type plugin MOP plugin manages the content customization manages import / export of the content manages versionning of the content UI plugin Show the content visually in the UI composer Manage content in the application content registry
  • 12. Chromattic and GateIn An object / JCR mapping engine Not perfect yet But heavily tested Enable development rich models Efficient lazy loading Controls the flow of your code (get rid of hasNode/hasProperty/RepotoryException)
  • 13. Type safe and simple access to data public Integer getFooOfBar(Bar bar /* type safe */) { return bar.getFoo(); // simple and typed } public Integer getFooOfBar(Node bar) throws RepositoryException /* WTF? */ { // Is it the right node? Should check its type… Integer size = null; if (node.hasProperty(“foo”)) // Is it here ? return (int)node.getProperty(“foo”).getLong(); return null; }
  • 14. List support for ordering List<Foo> foos= bar.getFoos(); foos.add(0, foos.get(2)); throw new UnsupportedOperationException(“need to find someone to implement element order change as the nobody understands the API to do it”);
  • 15. Find references by UUID (or Path) // Find the bar node pointing to foo Bar bar = foo.getBar(); // With @OneToMany(type = RelationshipType.REFERENCE) @MappedBy(“foo”); public abstract Foo getFoo(); PropertyIterator i = foo.getReferences(); while (i.hasNext()) { Property p = i.nextProperty(); Node referent = p.getParent(); if (isTypeOfNode(reference, “foo”)) { return referent; } } return null;
  • 16. Chromattic work to do Detach / attach entity graph Embeddable object support Nodetypes.xml generation Finalize 1.0 public API
  • 17. Web Container Integration Deployment is based on Web Container Integration framework (aka WCI) GateIn component that focus on integrating the web container deployment and runtime Easily be aware of web application life cycle Removes the need of ServletContextListener intrusion in web.xml One listener to rule them all
  • 18. GateIn descriptors Based on WCI events /WEB-INF/gatein-resources.xml Declares CSS, skins and javascript /WEB-INF/gadgets.xml Was already existing but now with a XSD
  • 19. Groovy template Groovy template engine was rewritten Increased performances Provides contextual exceptions with template name, line of code and even an excerpt of the failing code
  • 20. Gadget unification Dashboard container is now stored in the containing MOP page instead of having a portlet that pointed to another container Use native gadget support Avoid data federation Simplify data life cycle (i.e page deletion transitively deletes the dashboard)
  • 21. Other stuff Identity integration via JBoss Picket Link Open source SSO support (CAS, Josso, OpenSSO)