MinuteProject is a code generation tool that can reverse engineer databases and WSDLs. It was presented along with several demos including generating JPA2 and REST backends from a database, customizing generated code, and using statement driven development to generate REST endpoints from SQL queries. The talk also covered extending MinuteProject by adding new tracks, templates, libraries, and plugins.
A presentation about OSGi and Java modularity given on DevCon 2009. It lays out what is wrong with Java with respect to modularity and how OSGi fixes these flaws.
Java Performance Fundamental 세미나 교재입니다. 5장은 Execution Engine에 대한 내용을 다루고 있습니다. Class파일에 저장되어 있는 Bytecode를 해석하는 방법을 JIT Compiler와 Hotspot Compiler의 동작과정을 통해 자세히 알아봅니다.
* Execution Engine
* IBM JIT Compiler
* Hotspot Compiler
A presentation about OSGi and Java modularity given on DevCon 2009. It lays out what is wrong with Java with respect to modularity and how OSGi fixes these flaws.
Java Performance Fundamental 세미나 교재입니다. 5장은 Execution Engine에 대한 내용을 다루고 있습니다. Class파일에 저장되어 있는 Bytecode를 해석하는 방법을 JIT Compiler와 Hotspot Compiler의 동작과정을 통해 자세히 알아봅니다.
* Execution Engine
* IBM JIT Compiler
* Hotspot Compiler
With the release of OSGi Enterprise 4.2, the role of OSGi has been extended into the enterprise, alongside what has traditionally been developed using JEE. This session will cover the best practices for developing OSGi Enterprise applications and OSGi bundles in order to utilise the full power of OSGi technology, followed by a demo of using these best practices to assembly an OSGi application. At the end of the session, you will be able to learn how to use OSGi in a recommended way.
Overview of JPA (Java Persistence API) v2.0Bryan Basham
JPA (Java Persistence API) is a JCP Standard for Object-Relational Mapping (ORM) persistence for the Java platform, both JavaSE and JavaEE. This talk will discuss and show examples from the latest version of the spec: JPA v2.0. Based upon influences from a variety of technologies that competed with the original JavaEE EJB specification for Entity beans, JPA promotes the use of light-weight POJO-based Entity objects and a simple EntityManger interface to control the CRUD operations to the backend RDBMS. Even with the rise of NoSQL data stores, there are still many applications that are well suited to a relational database solution and JPA is my favorite ORM tool for Java development.
In the talk I will present:
* Entities
* Entity Operations
* Query Language
* Containers & Deployment
* "In Practice" common problems, solutions and patterns of use
For PROSA:
Onsdag 26.1. Introduktion til Eclipse
Eclipse er et fremstormende open source-udviklingsmiljø (Eclipse IDE), der oprindeligt er udviklet med henblik på Java.
Kom og mød Tonny Madsen, formand for Eclipse Danmark, foreningen for både professionelle, virksomheder og brugere.
Tonny er til daglig direktør i RCP Company, der har specialiseret sig i udvikling, uddannelse og konsulentydelser inden for Eclipse.
Han vil give jer et overblik over platformen, både teknisk, projektmæssigt, organisering, muligheder, fremtiden etc.
Project Zero PHP talk at JavaOne 2008.
This talk describes IBM WebSphere sMash and the PHP support within it. For more information visit http://www.projectzero.org
Java Performance Fundamental 세미나 교재입니다. 3장은 Garbage Collection에 대해 설명하고 있습니다. 먼저 JVM에서 사용하는 Garbage Collection 뿐만 아니라 일반적인 Garbage Collection의 Algorithm을 상세히 알아봅니다. 그 후 Hotspot JVM의 Heap구조와 Garbage Collector를 설명하고 Generation별로 어떻게 동작하는 지에 대해 설명합니다. 이어 IBM JVM에 대한 Heap 구조와 Garbage Collector에 대해서도 설명합니다.
* Garbage Collection 이란?
* Garbage Collection 의 대상
* Garbage Collection 의 기본 Algorithm
* Hotspot JVM의 Garbage Collection
o Serial Collector
o Incremental Collector
o Parallel Collector
o CMS Collector
o Parallel Compaction Collector
o Garbage First Collector
* IBM JVM의 Garbage Collection
o Optimize for Throughput Collector
o Optimize for Pause Time Collector
o Generational Concurrent Collector
o Subpool Collector
Java Performance Fundamental 세미나 자료입니다. 6장은 Thread Synchronization를 다루고 있습니다. 여기서는 Java에서 Thread라는 것은 어떻게 관리되어 왔으며 동기화는 어떤 역할을 하는지를 설명합니다. 더 나아가 JVM의 버전이 올라가면서 추가된 Hotspot JVM의 Biased Lock이나 IBM JVM의 Lock Reservation에 대해서도 설명하고 있습니다.
* Java의 Thread
* Java Synchronization
* Hotspot JVM Synchronization
* IBM JVM Synchronization
Correlation of simulation_models_using_concept_modelingSalvatore Scalera
Pre-requisite for efficient vehicle programs is the CAE driven development process. The accuracy of the models increases over time and leads to an increasing amount of available Concept models in databases. Due to the
increased acceleration of the development process, these models are critical in providing direction on vehicle architecture in the early stages of a program.
Due to the high importance of these decisions it is mandatory to trust the results of this early CAE models. Correlation of this Concept models to test or
reference mainstream CAE models creates the confidence in this approach. The correlation focuses on two aspects: 1. the level of detail required to capture
the detailed folding characteristic of the structure (e.g. siderail or B-Pillar) and 2. the process chain used to process the raw output from SFE Concept into
RADIOSS Include files (e.g. gap, contacts, spot-welding, adhesives, bolts). This process chain is implemented using HyperMesh in batch mode, details may
be found in [4]. This process chain is tuned to latest program modeling approaches and to meet the desired correlation status.
In this presentation RADIOSS safety concept models are correlated to different impact modes. Tools and methods are explained focusing on both the
automated evaluation of simulation output and the judgment of the correlation quality.
Java Performance Fundamental 세미나 교재입니다
2장은 JVM의 메모리 구조인 Runtime Data Areas에 대한 설명을 하고 있습니다. 크게는4개의 모듈로 나누어 지는 Runtime Data Areas를 부분 별로 자세히 다루고 있습니다. 그리고 나서 우리가 프로그램을 수행할 때 Runtime Data Areas에서는 어떻게 데이터들이 움직이는 지를 간단한 예제를 통해 알아보고자 합니다.
* Runtime Data Areas의 구조
* PC Register
* Java Virtual Machine Stacks
* Native Method Stack
* Method Area
* Java Heap
* Runtime Data Areas Simulation
A Java Implementer's Guide to Better Apache Spark PerformanceTim Ellison
Apache Spark has rocked the big data landscape, becoming the largest open source big data community with over 750 contributors from more than 200 organizations. Spark's core tenants of speed, ease of use, and its unified programming model fit neatly with the high performance, scalable, and manageable characteristics of modern Java runtimes. In this talk we introduce the Spark programming model, and describe some of our unique Java 8 capabilities in the JIT, fast networking, serialization techniques, and GPU off-loading that deliver the ultimate big data platform for solving business problems. We will demonstrate how solutions, previously infeasible with regular Java programming, become possible with our high performance Spark core runtime, enabling you to solve problems smarter and faster.
Presented at Jfokus Feb 2016
Java Performance Fundamental 세미나 교재입니다. 7장은 처음에는 JDBC에 대한 얘기로 시작하고 있습니다. 그리고 Oracle JDBC Driver에 대한 설명을 진행하고 여러 Oracle JDBC Driver 중 성능의 차이를 테스트를 통해 알아보게 됩니다. 그리고 Oracle에서 SQL이 수행될 때 Oracle 내부에서는 어떠한 일이 벌어지는지를 살펴보고, Java에서 SQL을 수행할 때와 어떤 차이가 있는지를 테스트를 통해 비교해 본다. 그리고 나서 JDBC에서 제공하는 여러 튜닝 기능이 어떻게 성능에 영향을 주게 되는지를 테스트합니다. 이를 통해 이 기능들이 어느 부분에 얼마만큼의 성능 개선을 하게 되는 지를 실감할 수 있게 됩니다.
* JDBC Overview
* Oracle JDBC Driver
* Java SQL Execution
* Java SQL Performance
With the release of OSGi Enterprise 4.2, the role of OSGi has been extended into the enterprise, alongside what has traditionally been developed using JEE. This session will cover the best practices for developing OSGi Enterprise applications and OSGi bundles in order to utilise the full power of OSGi technology, followed by a demo of using these best practices to assembly an OSGi application. At the end of the session, you will be able to learn how to use OSGi in a recommended way.
Overview of JPA (Java Persistence API) v2.0Bryan Basham
JPA (Java Persistence API) is a JCP Standard for Object-Relational Mapping (ORM) persistence for the Java platform, both JavaSE and JavaEE. This talk will discuss and show examples from the latest version of the spec: JPA v2.0. Based upon influences from a variety of technologies that competed with the original JavaEE EJB specification for Entity beans, JPA promotes the use of light-weight POJO-based Entity objects and a simple EntityManger interface to control the CRUD operations to the backend RDBMS. Even with the rise of NoSQL data stores, there are still many applications that are well suited to a relational database solution and JPA is my favorite ORM tool for Java development.
In the talk I will present:
* Entities
* Entity Operations
* Query Language
* Containers & Deployment
* "In Practice" common problems, solutions and patterns of use
For PROSA:
Onsdag 26.1. Introduktion til Eclipse
Eclipse er et fremstormende open source-udviklingsmiljø (Eclipse IDE), der oprindeligt er udviklet med henblik på Java.
Kom og mød Tonny Madsen, formand for Eclipse Danmark, foreningen for både professionelle, virksomheder og brugere.
Tonny er til daglig direktør i RCP Company, der har specialiseret sig i udvikling, uddannelse og konsulentydelser inden for Eclipse.
Han vil give jer et overblik over platformen, både teknisk, projektmæssigt, organisering, muligheder, fremtiden etc.
Project Zero PHP talk at JavaOne 2008.
This talk describes IBM WebSphere sMash and the PHP support within it. For more information visit http://www.projectzero.org
Java Performance Fundamental 세미나 교재입니다. 3장은 Garbage Collection에 대해 설명하고 있습니다. 먼저 JVM에서 사용하는 Garbage Collection 뿐만 아니라 일반적인 Garbage Collection의 Algorithm을 상세히 알아봅니다. 그 후 Hotspot JVM의 Heap구조와 Garbage Collector를 설명하고 Generation별로 어떻게 동작하는 지에 대해 설명합니다. 이어 IBM JVM에 대한 Heap 구조와 Garbage Collector에 대해서도 설명합니다.
* Garbage Collection 이란?
* Garbage Collection 의 대상
* Garbage Collection 의 기본 Algorithm
* Hotspot JVM의 Garbage Collection
o Serial Collector
o Incremental Collector
o Parallel Collector
o CMS Collector
o Parallel Compaction Collector
o Garbage First Collector
* IBM JVM의 Garbage Collection
o Optimize for Throughput Collector
o Optimize for Pause Time Collector
o Generational Concurrent Collector
o Subpool Collector
Java Performance Fundamental 세미나 자료입니다. 6장은 Thread Synchronization를 다루고 있습니다. 여기서는 Java에서 Thread라는 것은 어떻게 관리되어 왔으며 동기화는 어떤 역할을 하는지를 설명합니다. 더 나아가 JVM의 버전이 올라가면서 추가된 Hotspot JVM의 Biased Lock이나 IBM JVM의 Lock Reservation에 대해서도 설명하고 있습니다.
* Java의 Thread
* Java Synchronization
* Hotspot JVM Synchronization
* IBM JVM Synchronization
Correlation of simulation_models_using_concept_modelingSalvatore Scalera
Pre-requisite for efficient vehicle programs is the CAE driven development process. The accuracy of the models increases over time and leads to an increasing amount of available Concept models in databases. Due to the
increased acceleration of the development process, these models are critical in providing direction on vehicle architecture in the early stages of a program.
Due to the high importance of these decisions it is mandatory to trust the results of this early CAE models. Correlation of this Concept models to test or
reference mainstream CAE models creates the confidence in this approach. The correlation focuses on two aspects: 1. the level of detail required to capture
the detailed folding characteristic of the structure (e.g. siderail or B-Pillar) and 2. the process chain used to process the raw output from SFE Concept into
RADIOSS Include files (e.g. gap, contacts, spot-welding, adhesives, bolts). This process chain is implemented using HyperMesh in batch mode, details may
be found in [4]. This process chain is tuned to latest program modeling approaches and to meet the desired correlation status.
In this presentation RADIOSS safety concept models are correlated to different impact modes. Tools and methods are explained focusing on both the
automated evaluation of simulation output and the judgment of the correlation quality.
Java Performance Fundamental 세미나 교재입니다
2장은 JVM의 메모리 구조인 Runtime Data Areas에 대한 설명을 하고 있습니다. 크게는4개의 모듈로 나누어 지는 Runtime Data Areas를 부분 별로 자세히 다루고 있습니다. 그리고 나서 우리가 프로그램을 수행할 때 Runtime Data Areas에서는 어떻게 데이터들이 움직이는 지를 간단한 예제를 통해 알아보고자 합니다.
* Runtime Data Areas의 구조
* PC Register
* Java Virtual Machine Stacks
* Native Method Stack
* Method Area
* Java Heap
* Runtime Data Areas Simulation
A Java Implementer's Guide to Better Apache Spark PerformanceTim Ellison
Apache Spark has rocked the big data landscape, becoming the largest open source big data community with over 750 contributors from more than 200 organizations. Spark's core tenants of speed, ease of use, and its unified programming model fit neatly with the high performance, scalable, and manageable characteristics of modern Java runtimes. In this talk we introduce the Spark programming model, and describe some of our unique Java 8 capabilities in the JIT, fast networking, serialization techniques, and GPU off-loading that deliver the ultimate big data platform for solving business problems. We will demonstrate how solutions, previously infeasible with regular Java programming, become possible with our high performance Spark core runtime, enabling you to solve problems smarter and faster.
Presented at Jfokus Feb 2016
Java Performance Fundamental 세미나 교재입니다. 7장은 처음에는 JDBC에 대한 얘기로 시작하고 있습니다. 그리고 Oracle JDBC Driver에 대한 설명을 진행하고 여러 Oracle JDBC Driver 중 성능의 차이를 테스트를 통해 알아보게 됩니다. 그리고 Oracle에서 SQL이 수행될 때 Oracle 내부에서는 어떠한 일이 벌어지는지를 살펴보고, Java에서 SQL을 수행할 때와 어떤 차이가 있는지를 테스트를 통해 비교해 본다. 그리고 나서 JDBC에서 제공하는 여러 튜닝 기능이 어떻게 성능에 영향을 주게 되는지를 테스트합니다. 이를 통해 이 기능들이 어느 부분에 얼마만큼의 성능 개선을 하게 되는 지를 실감할 수 있게 됩니다.
* JDBC Overview
* Oracle JDBC Driver
* Java SQL Execution
* Java SQL Performance
Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012Alexandre Morgaut
Wakanda: NoSQL & SSJS for Model-driven Web Applications
A session at SourceDevCon 2012
Developing a business web application is still a long process in 2012.
Model-Driven Development is at the heart of:
requirements design for the contractor and the product manager,
productivity for the developer,
consistency and security for the end-user
evolution toward future applications
The Wakanda platform – via its NoSQL object datastore WakandaDB – intends to let you create such model-driven applications. The presentation will explain and show how to create the application model, with its business and security rules, coded once, then made available everywhere without being bypassable. To add even more consistency, the same language is used everywhere: JavaScript. You'll enjoy the intuitive way to get data from the datastore via either the REST or the SSJS APIs.
You’ll see how to use the defined Model directly in a native framework or the Sencha one.
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5David Nuescheler
A fast paced presentation on the evolution of the WCM industry for the coming year and a brief introduction and demo of CQ5 WCM.
(creative commons credits to http://www.flickr.com/photos/ashleighthompson)
JavaOne 2011: Migrating Spring Applications to Java EE 6Bert Ertman
The Spring Framework has no-doubt played a major role in evolving the way we write enterprise applications on the Java platform today. However, it is still a proprietary framework owned by a single company. The age of having to rely on such proprietary frameworks in order to develop decent enterprise applications is now over and Java EE 6 has become an even easier way to develop enterprise applications based on standards which makes it the best choice for any enterprise application. In this session you will experience how to migrate a typical full stack Spring application to a standards based, completely portable, Java EE 6 application including integration tests.
David Nuescheler from Day Communique presents at the Valtech Agile Edge in London March 2010.
David presents on trends for the WCM industry in 2010 with regards to Agile Methods.
Introduction to JSR-283 at the magnolia user conference in Basel, Switzerland.
- A Content Repository?
- JCR History, Adoption
- Top 10 New Features
- Beyond the Spec (Demo)
- Future Plans
This talk is an introduction about technical aspects of how payment cards function, what technical protocols are involved and what are implementation complexities in a typical payments project. You will learn about concepts like Authorisation and Clearing, Tokenization and know about novelties in the payment world, which will affect consumers in the nearest future.
Как построить свой фреймворк для автотестов?Dmitry Buzdin
Мы пройдемся по всем основным блокам построения тестового фреймворка и тому, как они связаны между собой. Вы научитесь собирать свое решение по автоматизации из библиотек с открытым кодом и делать так, чтобы они дополняли друг друга.
Microservices created quite a buzz in software development. Those are finally being adopted, and a lot of project suffer from that... microservices bring a lot of infrastructure and distributed programming complexity not all organisations can cope with. Question is – is it possible to gradually migrate to microservices architecture without Big Bang/Rewrite From Scratch approach? I would say it is possible, and is a much better idea compared to installing Kubernetes on AWS on day one. This talk is based on practical experience of architecting business applications to scale out and grow up to become micro services one day.
How to Build Your Own Test Automation Framework?Dmitry Buzdin
Even though there are plenty of open source tools on the market every company needs to put them together and create a test automation framework on top. Best practices of doing that are quite well-known in industry and it is important to learn them before building your own framework. We will go through the core building blocks of test automation frameworks and how they are playing together. You will learn how to assemble your test automation toolchain out of open source libraries and how to integrate them together. The session will be heavily biased towards Java platform.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
The Metaverse and AI: how can decision-makers harness the Metaverse for their...Jen Stirrup
The Metaverse is popularized in science fiction, and now it is becoming closer to being a part of our daily lives through the use of social media and shopping companies. How can businesses survive in a world where Artificial Intelligence is becoming the present as well as the future of technology, and how does the Metaverse fit into business strategy when futurist ideas are developing into reality at accelerated rates? How do we do this when our data isn't up to scratch? How can we move towards success with our data so we are set up for the Metaverse when it arrives?
How can you help your company evolve, adapt, and succeed using Artificial Intelligence and the Metaverse to stay ahead of the competition? What are the potential issues, complications, and benefits that these technologies could bring to us and our organizations? In this session, Jen Stirrup will explain how to start thinking about these technologies as an organisation.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
5. Target Techno Ecosystem
REST REST JSF
Vaadin
CXF SpringMVC Primefaces
JSF REST Spring configuration
WS
Primefaces Jersey DAO – ORM integration
EJB – CDI – DAO
DAO layer
Layer
Under investigation
JPA2 JPA (2/1) Hibernate iBatis
First Release
OpenXava FitNesse
Mature
JOOQ MinuteProject
Tutorial Rails Roo
Generator
Under development
Grails
Automated
Business Benerator
Logic
Play
Load model
Enrich
Generate
6. Techno Demos
REST REST JSF
Vaadin
CXF SpringMVC Primefaces
JSF REST Spring configuration
WS
Primefaces Jersey DAO – ORM integration
EJB – CDI – DAO
Layer DAO layer
DEMOS
JPA2 JPA2 Hibernate iBatis
OpenXava FitNesse
JOOQ MinuteProject
Tutorial Rails Roo
Generator
Grails
Automated
Business Benerator
Logic
Play
Load model
Enrich
Generate
7. Why MinuteProject?
• Why code generation?
• Do not reinvent the wheel
– i.e. let the others do the framework/specs
• Crystallize your knowledge
• Go fast and customise
• Reverse-Engineering is not a one shot process
8. When to use it?
• Legacy model upgrades to new tech
• Work from scratch:
– Development tool
– Iterative methodology
• Your own model as your technology tutorial
9. MP generated Artifacts
Operating Mechanism
Target
MP engine
Technologies B
Generates
Target
Technologies A
Loads
Uses DB model
structure
Applies
templates
MP main config
Loads metadata Enriches model
Target Technology A/B
Database model Templates
11. Demo 1 - explanations
• Start from scratch
• Generate from the console & command line
• Review artifacts
• Write a unit test
12. Customisation
• Art of enrichment
• Art of reverse-analysis
• Configure model/target
Configuration options
Individual (fine grain)
Global (declarative conventions)
http://minuteproject.wikispaces.com/Convention
14. Demo 2 - explanations
• Start from scratch
• Generate from the console & command line
• Review artifacts
• Write a unit test
• Secure modified code
15. Integration Technics
2 standards
• integration by extension
• integration by overriding
MP adds a new one
• integration by alteration/mutation
• 3 types of alteration
– artifact level (exclude for next generation)
– added section
– updatable section
16. Demo 3 - REST
Architecture blocks
CXF S
P
R
DAO I
N
JPA2 G
http://minuteproject.blogspot.be/2012/05/rigajug-demo-rest-cxf.html
17. Demo 3 - explanations
• Start from scratch
• Artifacts review:
– CXF track
– Spring config
– Backend DAO
– JPA2
– Maven projects
• Deploy and test on Tomcat
• Test URL
18. SDD – Statement Driven Dev.
• Sometimes statements are just enough
• Model is secondary
• You just need:
– Statement ex: query
– I/O
19. SDD example
Start from an SQL query
to deduce function and output
select k.key_name, t.translation,
t.date_finalization, l.code, l.description,
tl.first_name, tl.last_name, tl.email
from translation t, language l, user tl,
translation_key k
where
t.language_id = l.idlanguage
and tl.idUser = t.translator_id
and k.id = t.key_id
order by key_name
20. SDD example
Provide some input
select k.key_name, t.translation,
t.date_finalization, l.code, l.description,
tl.first_name, tl.last_name, tl.email
from translation t, language l, user tl,
translation_key k
where
t.language_id = l.idlanguage
and tl.idUser = t.translator_id
and k.id = t.key_id
and k.key_name like ?
and l.code like ?
order by key_name
limit ?
21. SDD - example
Feed statement into Minuteproject
<query name="get translation info">
<query-body>
<value>
<![CDATA[select
k.key_name, t.translation, t.date_finalization, l.code, l.des
cription, tl.first_name, tl.last_name, tl.email from
translation t, language l, user tl, translation_key k where
t.language_id = l.idlanguage and tl.idUser =
t.translator_id and k.id = t.key_id and k.key_name like ?
and l.code like ? order by key_name limit ?]]>
</value>
</query-body>
23. Demo 4
SDD is WYSIWYG
what you STATE is what you get
http://minuteproject.blogspot.be/2012/05/rigajug-demo-rest-sdd.html
24. Goodies
Why not have a JEE web app instantly
OpenXava app generation
• Is a RAD Open Source JEE framework based on
JPA2
• Has front-end rendering annotation on
entities
• Is AJAX