Introducing Spring Roo 1.0.0, which is a Java-based rapid application development framework. This presentation represents an updated version of the session I delivered at SpringOne USA in October 2009.
Technical deep dive covering Spring Roo 1.0.0, which is a Java-based rapid application development framework. This presentation represents an updated version of the session I delivered at SpringOne USA in October 2009.
This presentation was given by Ishad M. Barot, Client Technical Professional, India(West) during Impact India 2012 on the 1st of June at Mumbai. It focuses on how businesses can save time and efforts using the WebSphere Application Server. WAS is much more than just being Open Source
Example build files are available at http://mark.gruden.com/masters-of-war-build-files.zip
Mark walks though how to create a scalable and automated deployment process for Coldfusion apps using Ant. Starting with some reverse engineering of CF's built-in WAR deployment process, we'll then be working through to the separation of application code, the CF runtime and CF's configuration files into distinct elements that can be versioned independently and finally looking at how these assets can be deployed selectively to a number of servers and put back together into running applications.
Technical deep dive covering Spring Roo 1.0.0, which is a Java-based rapid application development framework. This presentation represents an updated version of the session I delivered at SpringOne USA in October 2009.
This presentation was given by Ishad M. Barot, Client Technical Professional, India(West) during Impact India 2012 on the 1st of June at Mumbai. It focuses on how businesses can save time and efforts using the WebSphere Application Server. WAS is much more than just being Open Source
Example build files are available at http://mark.gruden.com/masters-of-war-build-files.zip
Mark walks though how to create a scalable and automated deployment process for Coldfusion apps using Ant. Starting with some reverse engineering of CF's built-in WAR deployment process, we'll then be working through to the separation of application code, the CF runtime and CF's configuration files into distinct elements that can be versioned independently and finally looking at how these assets can be deployed selectively to a number of servers and put back together into running applications.
API Description Languages: Which is the Right One for Me?Akana
SOA Software Director of API Strategy, Laura Heritage, discusses new ways to describe and document APIs have emerged such as Swagger, RAML, API Blueprint and others, each taking a slightly different approach. Please join us in this webinar to hear how these description languages differ and how to choose right one for your API.
This is my presentation from ODTUG Mobile Day in Utrecht the Netherlands. It shows several examples / how to's regarding Oracle's mobile application Framework MAF
Ror Seminar With agilebd.org on 23 Jan09Shaer Hassan
This presentation is done by Code71 Team to the IT community in Bangladesh. The presentation covers the basics of Ruby on Rails and the advantage of it over many other contemporary languages to build web applications. It also mentions the strength of RoR by siting great quotes and examples of great sites.
Continuous Delivery at SAPIT
Gain insight into the CD processes and tools used by the web development unit at SAP IT. We will show how we use CD best practices like infrastructure as code, cloud automation, deployment pipelines, test automation and other techniques to power ongoing releases, and greatly simplify our software development and delivery capabilities.
Presented in the Continuous Delivery track at DevOps Con Israel 2013
APIdays 2016 - The State of Web API LanguagesRestlet
Jerome Louvel, founder and CTO of Restlet discusses use cases of API-centric software. Continuous API delivery. APi team collaboration. OAS, Swagger, RAML, API Blueprint, other.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
API Description Languages: Which is the Right One for Me?Akana
SOA Software Director of API Strategy, Laura Heritage, discusses new ways to describe and document APIs have emerged such as Swagger, RAML, API Blueprint and others, each taking a slightly different approach. Please join us in this webinar to hear how these description languages differ and how to choose right one for your API.
This is my presentation from ODTUG Mobile Day in Utrecht the Netherlands. It shows several examples / how to's regarding Oracle's mobile application Framework MAF
Ror Seminar With agilebd.org on 23 Jan09Shaer Hassan
This presentation is done by Code71 Team to the IT community in Bangladesh. The presentation covers the basics of Ruby on Rails and the advantage of it over many other contemporary languages to build web applications. It also mentions the strength of RoR by siting great quotes and examples of great sites.
Continuous Delivery at SAPIT
Gain insight into the CD processes and tools used by the web development unit at SAP IT. We will show how we use CD best practices like infrastructure as code, cloud automation, deployment pipelines, test automation and other techniques to power ongoing releases, and greatly simplify our software development and delivery capabilities.
Presented in the Continuous Delivery track at DevOps Con Israel 2013
APIdays 2016 - The State of Web API LanguagesRestlet
Jerome Louvel, founder and CTO of Restlet discusses use cases of API-centric software. Continuous API delivery. APi team collaboration. OAS, Swagger, RAML, API Blueprint, other.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
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.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
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.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
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.
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
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.
The Art of the Pitch: WordPress Relationships and Sales
Introduction To Spring Roo 1.0.0
1. Introducing Spring Roo 1.0.0
Extreme Productivity in 10 Minutes
Ben Alex, Project Lead, Spring Roo
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
2. Agenda
• Introducing Roo
• Capability Areas
• Using Roo
• Roadmap and Resources
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 2
3. Agenda
• Introducing Roo
• Capability Areas
• Using Roo
• Roadmap and Resources
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 3
4. Mission Statement
“Roo's mission is to
fundamentally and sustainably
improve Java developer
productivity without
compromising engineering
integrity or flexibility”
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 4
5. End User's Description
“Roo is a little genie who sits
in the background and
handles the things I don't
want to worry about”
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 5
6. What Is Roo?
• Roo is an extensible, text-based RAD tool for Java
• Roo is development-time only (no Roo runtime)
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 6
7. Implementation Overview
Roo Infrastructure
Roo STS
Roo
provide Add-Ons
Roo
@Roo Add-Ons
Roo
Add-Ons
Annotations Add-Ons
Shell
source only monitor and
retention change
User's Project
.aj .java .xml .jsp .properties
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 7
8. Easy To Learn and Use
• Usability you'll love
– “hint” and “help” commands to guide you all the way
– TAB completion for nearly everything
– Command hiding and automatic contextual awareness
– Even if you make a mistake, Roo will rollback changes!
• Scriptable UI that can even “replay” scripts
• You're in charge and Roo won't get in your way
– Roo acts predictably and conservatively at all times
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 8
9. Familiar Libraries
• Roo builds on what you already know
– Popular, proven, and mature APIs at your full disposal
• Java
• Spring Framework
• Java Persistence API (Hibernate)
• Java Server Pages
• Spring Security
• Spring Web Flow
• Log4J, Maven, AspectJ, Eclipse/STS...
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 9
10. Uses Java's Strengths
• The world's most popular language (Tiobe)
– Skills availability, vendor choice, low risks, open source
• APIs are popular, standardised, safe, proven
• Quality, mature and deep tooling integration
– IDE code assist, debuggers, refactoring, profilers etc
• Static typing
– Fewer errors, robust refactoring, code assist, JVM design
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 10
11. Cloud-Class Scalability
• Zero performance overhead
– Efficient, reflection-free code
– No dynamic proxies, deferred compiling, LTW or similar
– No Roo runtime means no runtime performance cost
• Zero memory overhead
– No class creation means no Perm Gen memory issues
– No Roo runtime means no runtime memory cost
• Zero deployment footprint
– Roo apps leverage OSGi bundles out-of-the-box
– No Roo runtime means no WAR footprint size
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 11
12. More Great Stuff
• No lock-in
– Get rid of Roo from your project in under 10 minutes!
• Easy to write and deploy your own Roo add-ons
– Roo can even write them for you (seriously!)
• Open source and SpringSource maintained
– SpringSource-endorsed application architecture
• Consistent apps across your team and enterprise
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 12
13. Code Generation Approach
• Roo is a hybrid code generator
– The best of the passive and active generation models
– Achieved by use case-specific design decisions
• Passive generation
– Use Roo shell to make Roo generate something
– It's done and it's finished (usually .xml and .java files)
• Active generation (automatic round-tripping)
– Builds detailed metadata model with help of @Roo*
– Incrementally updates .aj, .jsp files - never .java files
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 13
14. Active Generation
AspectJ ITDs
Person_Roo_
write Roo read Person.java
ToString.aj Roo
Add-Ons
Roo
Add-Ons
Roo name:String
toString():String Add-Ons
Add-Ons
Person_Roo_
JavaBean.aj
read AspectJ read
getName():String Compiler
setName(String):void
Person.class
write
Compilation unit separation name:String
toString():String
with automated round-trips getName():String
setName(String):void
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 14
15. Demo #1
The Roo Tour:
A Web App Without Reading The Manual
(or blogs, web sites, samples, pre-written code or similar)
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 15
16. Agenda
• Introducing Roo
• Capability Areas
• Using Roo
• Roadmap and Resources
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 16
17. Out Of The Box
• Project management
• General object services
• Entity support
• Field management
• Persistence
• JUnit testing
• Dynamic finders
• Spring MVC, Spring Web Flow and Selenium
• JMS, SMTP and build system integration
• Spring Security, Logging Setup.....
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 17
18. Project Management
• Commands
– “project” → creates new project in current dir
– “dependency add” → adds dependency to POM
– “dependency remove” → opposite of add
– “backup” → creates ZIP of project
• All dependencies use Enterprise Bundle Repo
– Versioned, quality-checked, OSGi-compatible JARs
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 18
19. General Objects
• Roo annotations suitable for any class
– @RooJavaBean – getters and setters for free
– @RooConfigurable – adds Spring @Configurable
– @RooToString – you guessed it
• Roo will automatically maintain the code for you
• Roo won't get in your way
– It just sits in the background and writes code you don't
– You don't have to “tell” it to stop doing something
– You don't have to use the Roo shell (any editor will do)
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 19
20. Entity Support
• “entity” → creates an @RooEntity
– Delivers a flexible, feature-rich JPA entity
– Declares a JPA @Entity with id, version, EntityManager
and a no-arg constructor
– Automatically adds count, findAll, findById, findEntries,
persist, remove, merge and flush methods to an entity
• Command accepts many optional directives
– Whether to build an automatic integration test
– Table name, identifier column name etc
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 20
21. Field Management
• “field” commands for most major field types
• Field commands have options for
– JPA-specific annotations (--fetch, --column etc)
– JavaBean valiation-specific annotations (--max etc)
– Java modifiers (--primitive, --transient etc)
• Shell remembers last entity you worked with
– Fields are automatically added to that entity
– Override using --class
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 21
22. Persistence
• “persistence setup”
– Use --provider for Hibernate, OpenJPA and EclipseLink
– Use --database for most common databases
• Related commands
– “persistence exception translation” → via AspectJ
– “database properties list” → lists JDBC props
– “database properties set” → changes JDBC prop
– “database properties remove” → deletes JDBC prop
• You can re-run “persistence setup” at any time
– Switch from Hibernate to OpenJPA in one line!
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 22
23. JUnit Testing
• “test integration” → JUnit integration test
– Automatic “data on demand” feature for seed data
– This is implied with “entity --testAutomatically”
• “test mock” → JUnit mock test
– Allows test mocking of static methods in your entities
• “dod” → creates a data on demand class
– Rarely used directly
– Automatically created if tests require it
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 23
24. Dynamic Finders
• Saves you having to write JPA QL finders
– Roo will write them for you, complete with type safety!
• Finders are added as static methods to entities
– They're even compatible with abstract entities
– “finder list” → shows all available finders
– “finder add” → enable a specific finder
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 24
25. Easy Spring Web MVC
• “controller scaffold” → an automatic controller
– Automatic REST controller for a given entity
– Automatic JSP creation and maintenance
– Can fine-tune allowed methods (CRUD subset)
– Permits date format to be specified
• “controller all” → automatically scaffold all entities
• “controller class” → stub a manual controller
– Just the controller – you write the rest
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 25
26. Web Stack
• Automatic Spring JS, Tiles and URL Rewrite
• “selenium test” → Test a scaffolded controller
– Start Tomcat with “mvn tomcat:run”
– Then run the test with “mvn selenium:selenese”
• “webflow” → Create a flow with Spring Web Flow
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 26
27. Messaging: SMTP and JMS
• “email sender setup” → setup SMTP sender
• “field email” → adds an email sender field
• “jms setup” → sets up JMS support
– Optionally embeds a TCP-accessible ActiveMQ instance
• “field jms template” → adds a JMS sender field
• “jms listener class” → makes a JMS receiver
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 27
28. Build System Integration
• Assorted build options
– “perform clean” → runs “mvn clean eclipse:clean”
– “perform eclipse” → runs “mvn eclipse:eclipse”
– “perform tests” → runs “mvn test”
– “perform package” → runs “mvn package”
– “perform command” → custom mvn command
• You must have Maven setup and in path to use
• Often used at end of “script” files
– Verifies success
– Brings project into Eclipse for further work
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 28
29. Miscellaneous
• “security setup” → sets up Spring Security
• “logging setup” → sets up Log4J configuration
• “script” → executes a script
– Specify clinic.roo, wedding.roo, vote.roo and
bundlor.roo for inbuilt sample applications
– Specify a fully-qualified file system path for your files
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 29
30. Demo #2
Exploring “script clinic.roo”
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 30
31. Agenda
• Introducing Roo
• Capability Areas
• Using Roo
• Roadmap and Resources
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 31
32. Requirements
• Java 5
– Same as Spring 3
• Maven 2.0.9 or above
– Roo itself doesn't need Maven installed to work
– Maven is only needed for Roo-generated projects
– ROO-91 requests Ant/Ivy → vote if you'd like it!
• Tested with Linux, Windows and Apple
– All platforms support tab completion and a colour shell
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 32
33. Download and Easy Install
• Download Roo from www.springsource.org/roo
– Simply unzip and add to your path
• Linux/Apple users would use something like:
– sudo ln -s $HOME/spring-roo-
1.0.0.RELEASE/bin/roo.sh /usr/bin/roo
• Windows
– Add %HOME%/spring-roo-1.0.0.RELEASE/bin to PATH
• A public Subversion repository is also available
– See readme.txt in root of checkout for dev installation
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 33
34. IDE Interoperability
• We highly recommend SpringSource Tool Suite
– Download it from www.springsource.com
– Totally free to use
– Includes Roo integration (eg CTRL-ALT-R commands)
– Also pre-bundles AJDT and other useful IDE plugins
• Eclipse also works, but use the latest AJDT
– Eclipse does not provide STS' Roo integration
– Roo can still be used concurrently via the shell
• Roo also happily lives alongside emacs, vim,
notepad, and no IDE at all
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 34
35. Lifecycle Notes
• SpringSource Tool Suite
– Use the embedded Roo option
• Any other case
– Load Roo at the same time as your IDE or text editor
– Roo automatically detects changes made outside Roo
• No need to add Roo to your build system
– Although “roo quit” will run Roo, update files and exit
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 35
36. Upgrade Actions
• When you upgrade Roo, .aj files may change
– This is a feature of active code generation
– We make optimizations and enhancements in .aj files
• Please refrain from editing Roo's .aj files
– Roo “owns” the *_Roo_*.aj files
– You can freely edit any file in your project except these
• Just “push-in refactor” any .aj files you wish to edit
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 36
37. Removing Roo in Three Steps
1. Use AJDT's “push-in refactoring” feature
– This moves the Roo .aj content into normal .java files
2. Remove Roo's annotation JAR from your POM
– You can use Roo's “dependency remove” command
3. Remove @Roo* annotations from .java files
– Use a regular exp find/replace in Eclipse for speed
• You can still use Roo on the project again
– Its “hands off by default” will ensure it's problem-free
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 37
38. Roo Internals
• “development mode” → full exception tracing
• “poll status” → auto-scaled file monitoring stats
• “poll speed” → adjust auto-scaled file monitoring
• “poll now” → force an immediate file scan
• “metadata status” → metadata statistics
• “metadata for type” → metadata summary
• “metadata for id” → metadata information
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 38
39. Add-On Services
• Third parties can easily publish new add-ons
– See the addon.roo script
• “addon list” → lists add-ons presently installed
• “addon install” → downloads and installs add-on
• “addon uninstall” → removes an add-on
• “addon cleanup” → refreshes the environment
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 39
40. Recommendations
• Use SpringSource Tool Suite
• Don't remove Roo from your projects
– You'll have much code to now manage by hand again
– You'll miss out on automatic upgrade improvements
– Consider removal as your insurance against lock-in
• Record your jump-start applications as scripts
– It's now so quick to change your design, so enjoy it!
– Defer custom coding until your model seems correct
• Ask questions on the forum for fast support
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 40
41. Demo #3
Roo IDE Integration
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 41
42. Agenda
• Introducing Roo
• Capability Areas
• Using Roo
• Roadmap and Resources
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 42
43. Present Release
• Spring Roo 1.0.0.RELEASE
• Released 31 December 2009
• Extensive community feedback over 8 releases
• Plenty of documentation and tutorials included
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 43
44. Project Resources
• Home → http://www.springsource.org/roo
– Contains links to all other resources
• Forum → http://forum.springsource.org
– Roo team actively monitor forum and answer queries
• Issues → http://jira.springframework.org/browse/ROO
• Twitter → #roo hash key
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 44
45. Conclusion
• Roo delivers serious productivity gains for Java
– Popular, proven technologies you already know
– Easy to learn and easy to use
– Builds on Java's strengths
– Extreme performance
– No runtime, no lock-in, no risk
• An active, supported, open source project
• Questions? balex@vmware.com
Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 45