The document introduces the Grails Infinispan Plugin. It describes how traditional approaches like optimizing code, adding servers, and replicating servers fail to handle traffic spikes. It then discusses how Infinispan, a distributed in-memory data grid, provides a solution by caching data across servers. The design principles of the Grails Infinispan Plugin aim to help developers work naturally with Grails, avoid problems, and save time. Code examples demonstrate configuring and using the cache.
The document is a rental guide from Calumet that provides information about rental accounts, rental rates, and equipment available to rent. It lists various Canon DSLR camera bodies and lenses available for daily and weekly rental rates. It also provides information on rental terms and conditions and Calumet's international network of rental locations.
The document discusses using Grails for developing an enterprise telecom application. It describes the application and deployment environment, how Grails improved development productivity, and key plugins and techniques used. Grails enabled faster development through GORM and scaffolding. AST transformations and custom components further improved code readability and maintainability. While there were frustrations with Grails, overall the developers found Groovy and Grails empowering and were enthusiastic about the technology.
The document discusses new features in Groovy 1.8 including command chains expressions which allow dropping dots and parentheses when chaining method calls, runtime performance improvements, bundled GPars for parallel programming, closure enhancements, builtin JSON support, new AST transformations, and more. It also previews upcoming features in Groovy 1.9 such as continued performance work and alignments with JDK 7.
The document discusses the Canoo RIA Suite, which allows building rich web applications using Groovy and Grails. It provides server-side programming and client-side visualization using a pure Java model. The suite includes a Grails plugin and uses a Half-Object and Protocol pattern to synchronize client-server interactions. The talk promotes the benefits of using the Canoo RIA Suite for building desktop-like web applications.
GR8Conf 2011: Building Progressive UIs with GrailsGR8Conf
This document discusses progressive enhancement and how to build progressive user interfaces with Grails. It provides examples of using Grails features like request.xhr and withFormat to vary output for AJAX requests. It also covers techniques like separating markup and behavior, reading and enhancing markup with JavaScript, form enhancements, and test-driven progressive enhancement using Modernizr and yepnope.
This document provides an introduction and agenda for a presentation on Griffon, a desktop framework for Java applications. Griffon brings the same productivity gains as Grails to desktop applications. The presentation will cover Griffon basics like installation and commands, using plugins, and threading GUI applications. It will then demonstrate building a simple counting application and enhancing a Twitter clone application with Griffon. The code examples will be available on GitHub.
The document is a rental guide from Calumet that provides information about rental accounts, rental rates, and equipment available to rent. It lists various Canon DSLR camera bodies and lenses available for daily and weekly rental rates. It also provides information on rental terms and conditions and Calumet's international network of rental locations.
The document discusses using Grails for developing an enterprise telecom application. It describes the application and deployment environment, how Grails improved development productivity, and key plugins and techniques used. Grails enabled faster development through GORM and scaffolding. AST transformations and custom components further improved code readability and maintainability. While there were frustrations with Grails, overall the developers found Groovy and Grails empowering and were enthusiastic about the technology.
The document discusses new features in Groovy 1.8 including command chains expressions which allow dropping dots and parentheses when chaining method calls, runtime performance improvements, bundled GPars for parallel programming, closure enhancements, builtin JSON support, new AST transformations, and more. It also previews upcoming features in Groovy 1.9 such as continued performance work and alignments with JDK 7.
The document discusses the Canoo RIA Suite, which allows building rich web applications using Groovy and Grails. It provides server-side programming and client-side visualization using a pure Java model. The suite includes a Grails plugin and uses a Half-Object and Protocol pattern to synchronize client-server interactions. The talk promotes the benefits of using the Canoo RIA Suite for building desktop-like web applications.
GR8Conf 2011: Building Progressive UIs with GrailsGR8Conf
This document discusses progressive enhancement and how to build progressive user interfaces with Grails. It provides examples of using Grails features like request.xhr and withFormat to vary output for AJAX requests. It also covers techniques like separating markup and behavior, reading and enhancing markup with JavaScript, form enhancements, and test-driven progressive enhancement using Modernizr and yepnope.
This document provides an introduction and agenda for a presentation on Griffon, a desktop framework for Java applications. Griffon brings the same productivity gains as Grails to desktop applications. The presentation will cover Griffon basics like installation and commands, using plugins, and threading GUI applications. It will then demonstrate building a simple counting application and enhancing a Twitter clone application with Griffon. The code examples will be available on GitHub.
A database server health check involves analyzing the hardware, operating system, database software, and application to ensure optimal performance. Key aspects to monitor include response times, server load, capacity, and signs of potential issues. Regular load testing can help identify performance bottlenecks by simulating expected usage patterns and measuring system behavior.
D max launch program 2010 revised by ayman (final) sheet2Ayman Sarhan
The document outlines the schedule and logistics for an Isuzu press conference to promote their new D-Max model, including presentations on the company history, a new TV commercial, and the unveiling of marketing materials for the new vehicle design. Simultaneous translation will be provided between English and Arabic during various segments, and the event will conclude with a dinner for guests.
1. The document discusses the Discrete Cosine Transform (DCT), which is commonly used in image and video processing applications to decorrelate pixel data and reduce redundancy.
2. A typical image/video transmission system first applies a transformation like the DCT in the source encoder to decorrelate pixel values, followed by quantization and entropy encoding to further compress the data.
3. The DCT maps the spatially correlated pixel data into transformed coefficients that are decorrelated. This decorrelation reduces interpixel redundancy and allows more efficient compression of image and video data.
1. The document discusses the Discrete Cosine Transform (DCT), which is commonly used in image and video processing applications to decorrelate pixel data and reduce redundancy.
2. A typical image/video transmission system first applies a transformation like the DCT in the source encoder to decorrelate pixels, followed by quantization and entropy encoding to further compress the data.
3. The DCT maps the spatially correlated pixel data into transformed coefficients that are largely uncorrelated, allowing more efficient compression by reducing the number of bits needed to represent the image information.
1. The document discusses the Discrete Cosine Transform (DCT), which is commonly used in image and video processing applications to decorrelate pixel data and reduce redundancy.
2. A typical image/video transmission system first applies a transformation like the DCT in the source encoder to decorrelate pixels, followed by quantization, entropy encoding, and channel encoding for transmission.
3. The DCT aims to map spatially correlated pixel data into uncorrelated transform coefficients to exploit the fact that pixel values can be predicted from neighbors, allowing for better data compression compared to the original spatial domain representation.
This document describes Bassa, a time shifted web caching system for developing regions. It observes that networks in developing countries are highly congested during the day and underutilized at night. Bassa aims to shift caching of large files like videos to off-peak night hours to reduce congestion. It implements time shifted caching based on object size and content type. Results show Bassa reduced daytime bandwidth usage by 23% while increasing overall data volumes and requests by 35% by better utilizing idle nighttime bandwidth. However, some users experienced session timeouts due to failed downloads of shifted content.
Speaker: Jacob Aae Mikkelsen
Once you have successfully developped your application in Grails, Ratpack or your other favorite framework, you would like to see it deployed as fast and painless as possible, right?
This talk will cover some of the supporting cast members of a succesful modern infrastructure, that developers can understand and use efficiently, and with good DevOps practices.
Key elements are
Docker
Infrastructure as Code
Container Orchestration
The demo-goods will hopefully be on our side, as this talk includes quite some live demos!
Creating and testing REST contracts with Accurest Gradle GR8Conf
REST does not come with an in-built contract compliance mechanism, which in many ways is a great thing. However, while working with microservice-based systems, it often appears that a practical mechanism that would provide help in shaping and describing REST contracts would come in handy. Similarly, creating integration and acceptance tests in such systems presents many challenges.
In this talk, I will present Accurest, a Gradle plugin that allows for both: easily shaping REST contracts and verifying if our app adheres to them using automatically generated Spock tests. I will show how, using Accurest, we can quickly generate automatically-tested stubs from simple Groovy DSL scripts. I will talk about the typical usages and script examples, as well as possible problems and ways of handling them.
Mum, I want to be a Groovy full-stack developerGR8Conf
How many times have you ever heard the term "Full-Stack developer"? In most of the cases it means that you have to be fluent with a backend language, html, javascript, maybe Android or iOS... What if I told you that you can be a Full-Stack developer using only Groovy?
In this talk I'll present the technological stack of Polaromatic, the application with I won the Learning Spring Boot contest, and you'll learn that it's possible to write the whole stack with Groovy: Backend, Javascript, HTML, Android, test, build tool,... Isn't that amazing?
The document discusses metaprogramming in Groovy using the Meta Object Protocol (MOP). It explains that MOP allows modifying classes at runtime by adding/changing methods and properties. Examples are provided of adding string truncation methods to classes using MetaClass, and overriding Integer and Boolean method behavior. Categories are introduced as a way to make metaclass changes persistent only within a code block. Extension modules are also covered as a mechanism to enhance classes by providing extension JAR files and metadata.
Geb is a wonderful tool for testing your Html pages. However, scraping is an unexplored use case where Geb can shine too.
In this talk I will show you different scraping examples powered by Geb, after which you will be able to use Geb beyond functional testing
How to create a conference android app with Groovy and AndroidGR8Conf
In this talk Sergio del Amo will show you how to:
Create conference websites with Wordpress custom post types and custom fields
Use a Groovy Android library to consume your Wordpress’s generated JSON API
Develop a simple Android App with Groovy which shows the conference data.
After this talk you will be able to jump into development for Android with Groovy and consume easily custom Wordpress backends
So you've built your neato Ratpack microservices, but it's already 5 o`clock and you're still fighting your way through testing, deployment and interaction instead of having your usual at the bar; What a PITA! In this talk I'll show you how to harness the power of Gradle and Docker to ease you through service orchestration and make it to the bar on time for happy hour!
"Clean Code" by Bob Martin is probably one of the most important practical documents out there; A must read for all developers, if you will. In this talk I will show how you can use Groovy and its rich ecosystem to apply the discussed principals, thus cleaning and vastly improving your codebase while still maintaining your sanity and joy.
By Noam Tenne
Cut your Grails application to pieces - build feature pluginsGR8Conf
Plugins allow separating an application into focused pieces that can be developed and tested independently. Each plugin should focus on one task or domain. Plugins communicate with each other through asynchronous events handled by the main application, which coordinates the plugins without them knowing about each other. This allows plugins to be reused in different applications and combined in various ways while avoiding dependencies between plugins.
The document discusses performance tuning for Grails applications. It outlines that performance aspects include latency, throughput, and quality of operations. Performance tuning optimizes costs and ensures systems meet requirements under high load. Amdahl's law states that parallelization cannot speed up non-parallelizable tasks. The document recommends measuring and profiling, making single changes in iterations, and setting up feedback cycles for development and production environments. Common pitfalls in profiling Grails applications are also discussed.
One of the goals of Grails 3 is to reach out of the servlet container. Grails 3 has a concept of application profiles for choosing a certain set of core plugins to use. In this talk Lari will present how Ratpack fits in Grails 3. He will also talk about how Grails 3 supports micro service architectures.
Grails & DevOps: continuous integration and delivery in the cloudGR8Conf
Nowadays, companies require very short release cycles, especially in lean startup environments.
But to release often:
deployments should be routine, not terrifying.
configuration should require a few clicks, not a thousand-line shell script.
problems should be easy to spot, not buried in a log file.
You are a developer that need to release every week or every day with a single git commit and zero-downtime? Easily spot release performance or bugs issues? If required, roll back to previous version in few seconds and one click? And you don't want to manage any dedicated repository, monitoring, build, staging, production servers? So this talk is for you!
We will explore Lean startup and DevOps concepts and share our experience on how to create a simple and fully automated build pipeline for Grails apps with a live demo, based on SaaS/cloud services: GitHub, Travis CI, NewRelic, AWS (ElasticBeanstalk, CloudFront), etc.
Functional testing your Grails app with GEBGR8Conf
This document discusses Geb, a Groovy-based browser automation and testing framework built on top of Selenium WebDriver. It provides concise summaries of Geb's key features:
- Geb combines WebDriver, Groovy, jQuery-like content selectors, and a page object model to simplify browser automation and testing.
- It allows defining page objects and modules to represent pages and reusable components, and interacting with pages using content selectors similar to jQuery.
- Geb supports features like waiting for elements, JavaScript execution, screenshots, parallel testing, and remote WebDriver servers.
Deploying, Scaling, and Running Grails on AWS and VPCGR8Conf
This talk will cover how to get your application running on AWS VPC and related services. We will go over some related services and their current state like RDS, autoscaling, s3, cloudfront, s3fs, ebs, elastic beanstalk, etc and how your Grails application can benefit from using these. The networking can also be confusing with your application so we'll cover the basics here as well. I will share lots of random nuggets of information that I have learned the hard and and recommended practices of configuration of your VPC as well.
More Related Content
Similar to GR8Conf 2011: Grails Infinispanplugin, Tom Fuller
A database server health check involves analyzing the hardware, operating system, database software, and application to ensure optimal performance. Key aspects to monitor include response times, server load, capacity, and signs of potential issues. Regular load testing can help identify performance bottlenecks by simulating expected usage patterns and measuring system behavior.
D max launch program 2010 revised by ayman (final) sheet2Ayman Sarhan
The document outlines the schedule and logistics for an Isuzu press conference to promote their new D-Max model, including presentations on the company history, a new TV commercial, and the unveiling of marketing materials for the new vehicle design. Simultaneous translation will be provided between English and Arabic during various segments, and the event will conclude with a dinner for guests.
1. The document discusses the Discrete Cosine Transform (DCT), which is commonly used in image and video processing applications to decorrelate pixel data and reduce redundancy.
2. A typical image/video transmission system first applies a transformation like the DCT in the source encoder to decorrelate pixel values, followed by quantization and entropy encoding to further compress the data.
3. The DCT maps the spatially correlated pixel data into transformed coefficients that are decorrelated. This decorrelation reduces interpixel redundancy and allows more efficient compression of image and video data.
1. The document discusses the Discrete Cosine Transform (DCT), which is commonly used in image and video processing applications to decorrelate pixel data and reduce redundancy.
2. A typical image/video transmission system first applies a transformation like the DCT in the source encoder to decorrelate pixels, followed by quantization and entropy encoding to further compress the data.
3. The DCT maps the spatially correlated pixel data into transformed coefficients that are largely uncorrelated, allowing more efficient compression by reducing the number of bits needed to represent the image information.
1. The document discusses the Discrete Cosine Transform (DCT), which is commonly used in image and video processing applications to decorrelate pixel data and reduce redundancy.
2. A typical image/video transmission system first applies a transformation like the DCT in the source encoder to decorrelate pixels, followed by quantization, entropy encoding, and channel encoding for transmission.
3. The DCT aims to map spatially correlated pixel data into uncorrelated transform coefficients to exploit the fact that pixel values can be predicted from neighbors, allowing for better data compression compared to the original spatial domain representation.
This document describes Bassa, a time shifted web caching system for developing regions. It observes that networks in developing countries are highly congested during the day and underutilized at night. Bassa aims to shift caching of large files like videos to off-peak night hours to reduce congestion. It implements time shifted caching based on object size and content type. Results show Bassa reduced daytime bandwidth usage by 23% while increasing overall data volumes and requests by 35% by better utilizing idle nighttime bandwidth. However, some users experienced session timeouts due to failed downloads of shifted content.
Similar to GR8Conf 2011: Grails Infinispanplugin, Tom Fuller (8)
Speaker: Jacob Aae Mikkelsen
Once you have successfully developped your application in Grails, Ratpack or your other favorite framework, you would like to see it deployed as fast and painless as possible, right?
This talk will cover some of the supporting cast members of a succesful modern infrastructure, that developers can understand and use efficiently, and with good DevOps practices.
Key elements are
Docker
Infrastructure as Code
Container Orchestration
The demo-goods will hopefully be on our side, as this talk includes quite some live demos!
Creating and testing REST contracts with Accurest Gradle GR8Conf
REST does not come with an in-built contract compliance mechanism, which in many ways is a great thing. However, while working with microservice-based systems, it often appears that a practical mechanism that would provide help in shaping and describing REST contracts would come in handy. Similarly, creating integration and acceptance tests in such systems presents many challenges.
In this talk, I will present Accurest, a Gradle plugin that allows for both: easily shaping REST contracts and verifying if our app adheres to them using automatically generated Spock tests. I will show how, using Accurest, we can quickly generate automatically-tested stubs from simple Groovy DSL scripts. I will talk about the typical usages and script examples, as well as possible problems and ways of handling them.
Mum, I want to be a Groovy full-stack developerGR8Conf
How many times have you ever heard the term "Full-Stack developer"? In most of the cases it means that you have to be fluent with a backend language, html, javascript, maybe Android or iOS... What if I told you that you can be a Full-Stack developer using only Groovy?
In this talk I'll present the technological stack of Polaromatic, the application with I won the Learning Spring Boot contest, and you'll learn that it's possible to write the whole stack with Groovy: Backend, Javascript, HTML, Android, test, build tool,... Isn't that amazing?
The document discusses metaprogramming in Groovy using the Meta Object Protocol (MOP). It explains that MOP allows modifying classes at runtime by adding/changing methods and properties. Examples are provided of adding string truncation methods to classes using MetaClass, and overriding Integer and Boolean method behavior. Categories are introduced as a way to make metaclass changes persistent only within a code block. Extension modules are also covered as a mechanism to enhance classes by providing extension JAR files and metadata.
Geb is a wonderful tool for testing your Html pages. However, scraping is an unexplored use case where Geb can shine too.
In this talk I will show you different scraping examples powered by Geb, after which you will be able to use Geb beyond functional testing
How to create a conference android app with Groovy and AndroidGR8Conf
In this talk Sergio del Amo will show you how to:
Create conference websites with Wordpress custom post types and custom fields
Use a Groovy Android library to consume your Wordpress’s generated JSON API
Develop a simple Android App with Groovy which shows the conference data.
After this talk you will be able to jump into development for Android with Groovy and consume easily custom Wordpress backends
So you've built your neato Ratpack microservices, but it's already 5 o`clock and you're still fighting your way through testing, deployment and interaction instead of having your usual at the bar; What a PITA! In this talk I'll show you how to harness the power of Gradle and Docker to ease you through service orchestration and make it to the bar on time for happy hour!
"Clean Code" by Bob Martin is probably one of the most important practical documents out there; A must read for all developers, if you will. In this talk I will show how you can use Groovy and its rich ecosystem to apply the discussed principals, thus cleaning and vastly improving your codebase while still maintaining your sanity and joy.
By Noam Tenne
Cut your Grails application to pieces - build feature pluginsGR8Conf
Plugins allow separating an application into focused pieces that can be developed and tested independently. Each plugin should focus on one task or domain. Plugins communicate with each other through asynchronous events handled by the main application, which coordinates the plugins without them knowing about each other. This allows plugins to be reused in different applications and combined in various ways while avoiding dependencies between plugins.
The document discusses performance tuning for Grails applications. It outlines that performance aspects include latency, throughput, and quality of operations. Performance tuning optimizes costs and ensures systems meet requirements under high load. Amdahl's law states that parallelization cannot speed up non-parallelizable tasks. The document recommends measuring and profiling, making single changes in iterations, and setting up feedback cycles for development and production environments. Common pitfalls in profiling Grails applications are also discussed.
One of the goals of Grails 3 is to reach out of the servlet container. Grails 3 has a concept of application profiles for choosing a certain set of core plugins to use. In this talk Lari will present how Ratpack fits in Grails 3. He will also talk about how Grails 3 supports micro service architectures.
Grails & DevOps: continuous integration and delivery in the cloudGR8Conf
Nowadays, companies require very short release cycles, especially in lean startup environments.
But to release often:
deployments should be routine, not terrifying.
configuration should require a few clicks, not a thousand-line shell script.
problems should be easy to spot, not buried in a log file.
You are a developer that need to release every week or every day with a single git commit and zero-downtime? Easily spot release performance or bugs issues? If required, roll back to previous version in few seconds and one click? And you don't want to manage any dedicated repository, monitoring, build, staging, production servers? So this talk is for you!
We will explore Lean startup and DevOps concepts and share our experience on how to create a simple and fully automated build pipeline for Grails apps with a live demo, based on SaaS/cloud services: GitHub, Travis CI, NewRelic, AWS (ElasticBeanstalk, CloudFront), etc.
Functional testing your Grails app with GEBGR8Conf
This document discusses Geb, a Groovy-based browser automation and testing framework built on top of Selenium WebDriver. It provides concise summaries of Geb's key features:
- Geb combines WebDriver, Groovy, jQuery-like content selectors, and a page object model to simplify browser automation and testing.
- It allows defining page objects and modules to represent pages and reusable components, and interacting with pages using content selectors similar to jQuery.
- Geb supports features like waiting for elements, JavaScript execution, screenshots, parallel testing, and remote WebDriver servers.
Deploying, Scaling, and Running Grails on AWS and VPCGR8Conf
This talk will cover how to get your application running on AWS VPC and related services. We will go over some related services and their current state like RDS, autoscaling, s3, cloudfront, s3fs, ebs, elastic beanstalk, etc and how your Grails application can benefit from using these. The networking can also be confusing with your application so we'll cover the basics here as well. I will share lots of random nuggets of information that I have learned the hard and and recommended practices of configuration of your VPC as well.
This document provides an introduction to Grails, a full-stack web application framework for Groovy and Java. It discusses how to install Grails, its architecture and philosophy, and demonstrates creating a sample Grails application with a Person domain class. Key aspects covered include the Grails command line interface, domain classes, controllers, views, services, testing, and plugins.
Going beyond the basics of how to use Spock this talk will discuss writing expressive, readable & maintainable specifications using the features of Spock and the Groovy language itself. Concrete examples backed up with live coding will cover a range of topics such as how to structure assertions, effective use of the where: block, appropriate use of mocks and stubs, and driving specifications from a database. The focus will always remain on creating tests that are readable, robust and helpful when you need to deal with regressions.
The document lists various open source projects related to the Groovy ecosystem. It provides information on the name, start date, license, purpose, and latest release for each project. The projects cover areas like web frameworks (Grails, Griffon), build tools (Gradle), testing (Spock), cloud platforms (Gaelyk, Caelyf), and more.
Groovy 3 and the new Groovy Meta Object Protocol in examplesGR8Conf
Groovy3 and the new MOP are closing in! But the time of this talk the new MOP will not be done, but I will show some examples of how old Groovy code will look like transferred to the new MOP.
Apache Camel is versatile integration library that supports a huge number of components, enterprise integration patterns, and programming languages.
In this this talk I first introduce you to Apache Camel and its concepts. Then we move on to see how you can use the Groovy programming language with Camel as a first class Groovy DSL to build integration flows.
You will also learn how to build a new Camel and Groovy app from scratch from a live demo.
And we also touch how you can use Camel from grails using the grails-camel plugin.
I will also show the web console tools that give you insight into your running Apache Camel applications, including visual route diagrams with tracing, debugging, and profiling capabilities.
This session will be taught with a 50/50 mix of slides and live demos, and it will conclude with Q&A time.
CRaSH the shell for the Java Virtual MachineGR8Conf
CRaSH is the open source shell for the JVM. The shell can be accessed by various ways, remotely using network protocols such as SSH, locally by attaching a shell to a running virtual machine or via a web interface. Commands are written Groovy and can be developed live making the extensibility of the shell easy with quick development cycles. Since the version 1.3, the REPL also speaks the Groovy language, allowing Groovy combination of command using pipes.
CRaSH comes with commands such as thread management, log management, database access and JMX. The session will begin with an introduction to the shell. The main part of the session will focus on showing CRaSH commands development with few examples, showing how easy and powerful the development is.
The audience will learn how to use CRaSH for their own needs: it can be a simple usage or more advanced like developing a command or embedding the shell in their own runtime like a web application or a Grails application.
18. Where we’re at:
• Optimisation alone won’t solve this
problem.
• Neither will larger servers.
• Scaling the application server and
databases doesn’t work.
20. A solution that works!
Cache
Cache
Cache
Application
Server
Cache
Cache
Cache
Cache
Cache
Application
Server
21. Infinispan
• Based in part on code from JBoss Cache
• Licensed under the LGPL
• Is a distributed in-memory data grid
• Has competition
• As of May 2011 Infinispan is officially
supported by Red Hat.
25. We aim to help developers:
Work with Grails and Groovy naturally.
26. We aim to help developers:
Work with Grails and Groovy naturally.
Avoid and diagnose problems quickly.
27. We aim to help developers:
Work with Grails and Groovy naturally.
Avoid and diagnose problems quickly.
Save time.
28. Configuring Infinispan in Grails
development {
infinispan = {
register {
cacheManager {
named "matrixCacheManager"
configured {
externally {
using "grails-app/conf/infinispan/infinispan-config.xml"
}
}
caches "agentCache", “citiesCache"
}
queryHelper {
named "agentQueryHelper"
referencing "agentCache"
properties queryHelperProperties
classes infinispantestapp.Agent, infinispantestapp.SuperHero
}
}
}
}
}
29. Configuring Infinispan in Grails
production {
infinispan = {
register {
cacheManager {
named "matrixCacheManager"
configured {
declaratively {
using globalConfiguration
using configuration
}
}
caches "agentCache", "illinoisCitiesCache"
}
queryHelper {
named "agentQueryHelper"
referencing "agentCache"
properties queryHelperProperties
classes infinispantestapp.Agent, infinispantestapp.SuperHero
}
}
}
}
}
30. Use the cache
LoadAgentCacheController {
def agentCache
def index = {
for (int ctr in 1..1000) {
agentCache.put (
"person id $ctr",
new Agent (name:"Agent Smith",
weapon:"gun")
)
}
}
}
32. Query and iterate over the results
def term = new Term (WEAPON, GUN)
def termQuery = new TermQuery (term)
def results = agentCache.query (queryHelper,
Agent, termQuery)
results.each {
log.info ("it: $it")
}
34. Food for Thought
• Infinispan 5.0 is currently under
development and will deliver fork/join and
map/reduce implementations.
• Infinispan can help reduce costs for any
data source.
• Infinispan can be very useful in the cloud
and service-oriented architectures (SOA).
35. A p p lic a tio n A p p lic a tio n
S e rv e r S e rv e r
C u s to m e r
I n fo r m a t io n
O rd e r
h is t o r y O rd e r
h is t o r y
A p p lic a tio n
A p p lic a tio n A p p lic a tio n Paym ent
S e rv e r O rd e r
S e rv e r S e rv e r p r o c e s s in g ,
p r o c e s s in g
S h ip p in g
A p p lic a tio n
S e rv e r
P ro d u ct
in fo r m a t io n P a rtn e r & p ro d u ct
A n a ly t ic s in fo r m a t io n
P a rtn e r
r e g is t r a t io n
A p p lic a tio n A p p lic a tio n A p p lic a tio n A p p lic a tio n
S e rv e r S e rv e r S e rv e r S e rv e r
36. Conclusion
• Three attempts that failed to deliver a
solution that could cope with the load.
• Design principles behind the Grails
Infinispan Plugin.
• Example code.
• Further documentation is available at
http://www.grails.org/plugin/infinispan
37. Any questions?
Contact me
Email:
thomas.fuller@coherentlogic.com