This tutorial is about Spring Boot.
The tutorial includes an introduction to Spring Boot, key features of Spring Boot, prototyping using CLI, managing profiles aka environment in Grails, using GORM and using GSP. The tutorial begins with a section which is an introduction to Spring Boot. It includes an introduction to Spring Boot, the benefits of using Spring Boot.
Following is a features section which includes the key features of Spring Boot like embedded servers, security, metrics etc. Next is a section about prototyping. It includes prototyping using CLI, getting started, the things that happen during prototyping, starter POMs and a demo, building Gradle, using plugin and adding dependencies, and hot reloading.
Consecutively there is a section about managing profiles. It includes managing profiles aka managing environment in Grails like binding properties and its examples, using spring data to add dependency. Moreover, there's also a section which includes using GORM for next level persistence and also includes server side view template libraries like JSP, velocity, tiles, GSP etc.
The last section of this tutorial is about GSP. It includes using GSP with Spring Boot as it has limited tags, adds dependency and helps in packaging executable JAR and WAR files.
YouTube Link: https://youtu.be/eVLPnewCMRI
**Edureka Online Courses: https://www.edureka.co **
This Edureka "Kotlin vs Java" PPT will help you point out the major differences between two Android Development languages - Kotlin and Java. Below are the topics covered in this Kotlin vs Java PPT:
What is Kotlin?
What is Java?
Parameters to compare
Drawbacks of Java
Advantages of Java over Kotlin
Is Kotlin going to replace Java?
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
With the announcement on officially supporting Kotlin for Android, this presentation tries to compare Java and Kotlin to encourage people to switch to Kotlin
Presentation given at the Toulouse JUG in Dec 2019
GraalVM and its native-image component allow building native standalone executables from Java or any other language compiling to Java bytecode like Scala or Kotlin.
This talks goes through the practical steps leading to producing a native executable for a command-line tool, explaining the benefits and also the limits of GraalVM native-image.
This tutorial is about Spring Boot.
The tutorial includes an introduction to Spring Boot, key features of Spring Boot, prototyping using CLI, managing profiles aka environment in Grails, using GORM and using GSP. The tutorial begins with a section which is an introduction to Spring Boot. It includes an introduction to Spring Boot, the benefits of using Spring Boot.
Following is a features section which includes the key features of Spring Boot like embedded servers, security, metrics etc. Next is a section about prototyping. It includes prototyping using CLI, getting started, the things that happen during prototyping, starter POMs and a demo, building Gradle, using plugin and adding dependencies, and hot reloading.
Consecutively there is a section about managing profiles. It includes managing profiles aka managing environment in Grails like binding properties and its examples, using spring data to add dependency. Moreover, there's also a section which includes using GORM for next level persistence and also includes server side view template libraries like JSP, velocity, tiles, GSP etc.
The last section of this tutorial is about GSP. It includes using GSP with Spring Boot as it has limited tags, adds dependency and helps in packaging executable JAR and WAR files.
YouTube Link: https://youtu.be/eVLPnewCMRI
**Edureka Online Courses: https://www.edureka.co **
This Edureka "Kotlin vs Java" PPT will help you point out the major differences between two Android Development languages - Kotlin and Java. Below are the topics covered in this Kotlin vs Java PPT:
What is Kotlin?
What is Java?
Parameters to compare
Drawbacks of Java
Advantages of Java over Kotlin
Is Kotlin going to replace Java?
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
With the announcement on officially supporting Kotlin for Android, this presentation tries to compare Java and Kotlin to encourage people to switch to Kotlin
Presentation given at the Toulouse JUG in Dec 2019
GraalVM and its native-image component allow building native standalone executables from Java or any other language compiling to Java bytecode like Scala or Kotlin.
This talks goes through the practical steps leading to producing a native executable for a command-line tool, explaining the benefits and also the limits of GraalVM native-image.
GraphQL is a query language for APIs and a runtime for fulfilling those queries. It gives clients the power to ask for exactly what they need, which makes it a great fit for modern web and mobile apps. In this talk, we explain why GraphQL was created, introduce you to the syntax and behavior, and then show how to use it to build powerful APIs for your data. We will also introduce you to AWS AppSync, a GraphQL-powered serverless backend for apps, which you can use to host GraphQL APIs and also add real-time and offline capabilities to your web and mobile apps. You can follow along if you have an AWS account – no GraphQL experience required!
Level: Beginner
Speaker: Rohan Deshpande - Sr. Software Dev Engineer, AWS Mobile Applications
Kubernetes supports several security mechanisms such as Seccomp, Apparmor, SELinux, and runAsUser for protecting the hosts from container-breakout attacks. However, these mechanisms are not sufficient for the security demand because Kubelet and CRI/OCI runtimes require the root privileges on the hosts, and these components are seriously bug-prone. The dependency on the root privileges has been also problematic for promoting Kubernetes to the HPC world, where users are often disallowed to install software as the root.
In this talk, Akihiro and Giuseppe will show the community’s ongoing work for making Kubernetes deployable and runnable as a non-root user, by using User Namespaces. The main topics of discussion will be UID/GID mapping, unprivileged Copy-on-Write filesystems, Usermode networking (Slirp), and Cgroups.
https://fosdem.org/2019/schedule/event/containers_k8s_rootless/
Exploring the power of Gradle in android studio - Basics & BeyondKaushal Dhruw
In this presentation we will explore the official build system of android studio. Gradle. We will discuss about Gradle basics, Gradle Wrapper and its usage in android studio. We will explore the possibilities with gradle by covering beginner and advanced level topics.
What you can expect:
1. Just enough gradle to get started.
2. Creating simple and custom gradle tasks.
3. Gradle in android studio
4. Exploring product flavors
5. Using product flavors to our advantage.
6. facebook's stetho debug bridge and configuration via flavors.
Threading Made Easy! A Busy Developer’s Guide to Kotlin CoroutinesLauren Yew
Kotlin Coroutines is a powerful threading library for Kotlin, released by JetBrains in 2018. At The New York Times, we recently migrated our core libraries and parts of our News app from RxJava to Kotlin Coroutines. In this talk we’ll share lessons learned and best practices to understand, migrate to, and use Kotlin Coroutines & Flows.
In this presentation, you will learn:
What Coroutines are and how they function
How to use Kotlin Coroutines & Flows (with real world examples and demos)
Where and why you should use Coroutines & Flows in your app
How to avoid the pitfalls of Coroutines
Kotlin Coroutines vs. RxJava
Lessons learned from migrating to Kotlin Coroutines from RxJava in large legacy projects & libraries
By the end of this talk, you will be able to apply Kotlin Coroutines to your own app, run the provided sample code yourself, and convince your team to give Kotlin Coroutines a try!
non-strict functions, bottom and scala by-name parametersPhilip Schwarz
Download for perfect quality.
Non strict functions, bottom and scala by-name parameters - ‘a close look’, through the work of Runar Bjarnason, Paul Chiusano, Martin Odersky, Bill Venners, Lex Spoon, Alvin Alexander, Mark Lewis and Aleksandar Prokopec.
JavaScript Interview Questions and Answers | Full Stack Web Development Train...Edureka!
( ** Full Stack Web Developer Masters Program: https://www.edureka.co/masters-program/full-stack-developer-training ** )
This Edureka PPT on "JavaScript Interview Questions" will help you to prepare yourself for JavaScript Interviews (JavaScript Interview Questions Blog: https://www.edureka.co/blog/interview-questions/javascript-interview-questions/ ). Learn about the most important JavaScript interview questions and answers and know what will set you apart in the interview process.
Instagram: https://www.instagram.com/edureka_lea...
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...Domenic Denicola
This talk takes a deep dive into asynchronous programming patterns and practices, with an emphasis on the promise pattern.
We go through the basics of the event loop, highlighting the drawbacks of asynchronous programming in a naive callback style. Fortunately, we can use the magic of promises to escape from callback hell with a powerful and unified interface for async APIs. Finally, we take a quick look at the possibilities for using coroutines both in current and future (ECMAScript Harmony) JavaScript.
Kotlin Bytecode Generation and Runtime Performanceintelliyole
In this talk, we'll dive into the details of how various language features supported by Kotlin are translated to Java bytecode. We'll use the JMH microbenchmarking tool to study the relative performance of various constructs and to understand how we can ensure top performance of the Kotlin code that we write.
Quarkus - a next-generation Kubernetes Native Java frameworkSVDevOps
For years, the client-server architecture has been the de-facto standard to build applications. But a major shift happened. The one model rules them all age is over. A new range of applications and architectures has emerged and impacts how code is written and how applications are deployed and executed. HTTP microservices, reactive applications, message-driven microservices, and serverless are now central players in modern systems.
Quarkus has been designed with this new world in mind and provides first-class support for these different paradigms. Developers using the Red Hat build of Quarkus can now choose between deploying natively compiled code or JVM-based code depending on an application’s needs. Natively compiled Quarkus applications are extremely fast and memory-efficient, making Quarkus a great choice for serverless and high-density cloud deployments.
Speakers
1) Shanna Chan, Senior Solutions Architect at Red Hat
2) Mark Baker, Senior Solutions Architect at Red Hat
Speaker Bios
Shanna Chan - Shanna is passionate about how open source solutions help others in their journey of application modernization and transformation of their business into cloud infrastructures. Her background includes application developments, DevOps, and architecting solutions for large enterprises. More about Shanna at http://linkedin.com/in/shanna-chan
Mark Baker - Mark’s experiences coalesce around solution /business architecture and leadership bringing together people in both post / pre-sales software projects bridging traditional legacy systems (i.e. Jakarta (JEE) MVC) with Cloud tolerant and Cloud native open source in the journey of modernization and transformation. More about Mark at http://linkedin.com/in/markwbaker-tsl
Unit test your java architecture with ArchUnitJeremy Cook
From Confoo 2021.
Software architecture tends to be esoteric and intangible. The result of this is architectural drift, with the architecture losing the qualities it was promoting as the code evolves. This talk will introduce ArchUnit, a library that allows you to test your Java architecture. You'll see how to write unit tests that protect architectural characteristics in your code while making your architecture easier to understand for everyone in your team.
In this presentation, I will be having a closer look at how JVM works and how the JVM compilation process looks like. I will also mention GraalVM and its impact on the JVM.
Charla en Madrid Spring User Group (www.meetup.com/madrid-spring-user-group/) sobre el uso del framework Spock en aplicaciones Spring Boot y como contenido extra, breve introducción al framework GEB para pruebas funcionales
GraphQL is a query language for APIs and a runtime for fulfilling those queries. It gives clients the power to ask for exactly what they need, which makes it a great fit for modern web and mobile apps. In this talk, we explain why GraphQL was created, introduce you to the syntax and behavior, and then show how to use it to build powerful APIs for your data. We will also introduce you to AWS AppSync, a GraphQL-powered serverless backend for apps, which you can use to host GraphQL APIs and also add real-time and offline capabilities to your web and mobile apps. You can follow along if you have an AWS account – no GraphQL experience required!
Level: Beginner
Speaker: Rohan Deshpande - Sr. Software Dev Engineer, AWS Mobile Applications
Kubernetes supports several security mechanisms such as Seccomp, Apparmor, SELinux, and runAsUser for protecting the hosts from container-breakout attacks. However, these mechanisms are not sufficient for the security demand because Kubelet and CRI/OCI runtimes require the root privileges on the hosts, and these components are seriously bug-prone. The dependency on the root privileges has been also problematic for promoting Kubernetes to the HPC world, where users are often disallowed to install software as the root.
In this talk, Akihiro and Giuseppe will show the community’s ongoing work for making Kubernetes deployable and runnable as a non-root user, by using User Namespaces. The main topics of discussion will be UID/GID mapping, unprivileged Copy-on-Write filesystems, Usermode networking (Slirp), and Cgroups.
https://fosdem.org/2019/schedule/event/containers_k8s_rootless/
Exploring the power of Gradle in android studio - Basics & BeyondKaushal Dhruw
In this presentation we will explore the official build system of android studio. Gradle. We will discuss about Gradle basics, Gradle Wrapper and its usage in android studio. We will explore the possibilities with gradle by covering beginner and advanced level topics.
What you can expect:
1. Just enough gradle to get started.
2. Creating simple and custom gradle tasks.
3. Gradle in android studio
4. Exploring product flavors
5. Using product flavors to our advantage.
6. facebook's stetho debug bridge and configuration via flavors.
Threading Made Easy! A Busy Developer’s Guide to Kotlin CoroutinesLauren Yew
Kotlin Coroutines is a powerful threading library for Kotlin, released by JetBrains in 2018. At The New York Times, we recently migrated our core libraries and parts of our News app from RxJava to Kotlin Coroutines. In this talk we’ll share lessons learned and best practices to understand, migrate to, and use Kotlin Coroutines & Flows.
In this presentation, you will learn:
What Coroutines are and how they function
How to use Kotlin Coroutines & Flows (with real world examples and demos)
Where and why you should use Coroutines & Flows in your app
How to avoid the pitfalls of Coroutines
Kotlin Coroutines vs. RxJava
Lessons learned from migrating to Kotlin Coroutines from RxJava in large legacy projects & libraries
By the end of this talk, you will be able to apply Kotlin Coroutines to your own app, run the provided sample code yourself, and convince your team to give Kotlin Coroutines a try!
non-strict functions, bottom and scala by-name parametersPhilip Schwarz
Download for perfect quality.
Non strict functions, bottom and scala by-name parameters - ‘a close look’, through the work of Runar Bjarnason, Paul Chiusano, Martin Odersky, Bill Venners, Lex Spoon, Alvin Alexander, Mark Lewis and Aleksandar Prokopec.
JavaScript Interview Questions and Answers | Full Stack Web Development Train...Edureka!
( ** Full Stack Web Developer Masters Program: https://www.edureka.co/masters-program/full-stack-developer-training ** )
This Edureka PPT on "JavaScript Interview Questions" will help you to prepare yourself for JavaScript Interviews (JavaScript Interview Questions Blog: https://www.edureka.co/blog/interview-questions/javascript-interview-questions/ ). Learn about the most important JavaScript interview questions and answers and know what will set you apart in the interview process.
Instagram: https://www.instagram.com/edureka_lea...
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...Domenic Denicola
This talk takes a deep dive into asynchronous programming patterns and practices, with an emphasis on the promise pattern.
We go through the basics of the event loop, highlighting the drawbacks of asynchronous programming in a naive callback style. Fortunately, we can use the magic of promises to escape from callback hell with a powerful and unified interface for async APIs. Finally, we take a quick look at the possibilities for using coroutines both in current and future (ECMAScript Harmony) JavaScript.
Kotlin Bytecode Generation and Runtime Performanceintelliyole
In this talk, we'll dive into the details of how various language features supported by Kotlin are translated to Java bytecode. We'll use the JMH microbenchmarking tool to study the relative performance of various constructs and to understand how we can ensure top performance of the Kotlin code that we write.
Quarkus - a next-generation Kubernetes Native Java frameworkSVDevOps
For years, the client-server architecture has been the de-facto standard to build applications. But a major shift happened. The one model rules them all age is over. A new range of applications and architectures has emerged and impacts how code is written and how applications are deployed and executed. HTTP microservices, reactive applications, message-driven microservices, and serverless are now central players in modern systems.
Quarkus has been designed with this new world in mind and provides first-class support for these different paradigms. Developers using the Red Hat build of Quarkus can now choose between deploying natively compiled code or JVM-based code depending on an application’s needs. Natively compiled Quarkus applications are extremely fast and memory-efficient, making Quarkus a great choice for serverless and high-density cloud deployments.
Speakers
1) Shanna Chan, Senior Solutions Architect at Red Hat
2) Mark Baker, Senior Solutions Architect at Red Hat
Speaker Bios
Shanna Chan - Shanna is passionate about how open source solutions help others in their journey of application modernization and transformation of their business into cloud infrastructures. Her background includes application developments, DevOps, and architecting solutions for large enterprises. More about Shanna at http://linkedin.com/in/shanna-chan
Mark Baker - Mark’s experiences coalesce around solution /business architecture and leadership bringing together people in both post / pre-sales software projects bridging traditional legacy systems (i.e. Jakarta (JEE) MVC) with Cloud tolerant and Cloud native open source in the journey of modernization and transformation. More about Mark at http://linkedin.com/in/markwbaker-tsl
Unit test your java architecture with ArchUnitJeremy Cook
From Confoo 2021.
Software architecture tends to be esoteric and intangible. The result of this is architectural drift, with the architecture losing the qualities it was promoting as the code evolves. This talk will introduce ArchUnit, a library that allows you to test your Java architecture. You'll see how to write unit tests that protect architectural characteristics in your code while making your architecture easier to understand for everyone in your team.
In this presentation, I will be having a closer look at how JVM works and how the JVM compilation process looks like. I will also mention GraalVM and its impact on the JVM.
Charla en Madrid Spring User Group (www.meetup.com/madrid-spring-user-group/) sobre el uso del framework Spock en aplicaciones Spring Boot y como contenido extra, breve introducción al framework GEB para pruebas funcionales
GGX 2014 Lari Hotari Modular Monoliths with Spring Boot and Grails 3Lari Hotari
Modular monoliths are composed of loosely coupled modules of single responsibility. Ideally these modules can be separated into true microservices when needed - instead of introducing accidental complexity and tradeoffs of distributed systems to projects in the beginning. In this presentation we will look in to the practicality of this approach with Grails 3 and Spring Boot.
recording: https://skillsmatter.com/legacy_profile/lari-hotari#skillscasts
t3chfest 2016 - Implementando microservicios, como y por queFátima Casaú Pérez
Últimamente se escucha hablar mucho de microservicios web y parece un tendencia en el desarrollo de aplicaciones pero en muchas ocasiones no se sabe muy bien qué son, cuál es son sus diferencias con respecto a las aplicaciones monolíticas y qué ventajas nos aportan con respecto a éstas últimas.
En esta charla veremos una introducción a los microservicios, una comparativa con las aplicaciones monolíticas y ejemplos de frameworks, herramientas y arquitecturas que podemos montar para implementar y desplegar aplicaciones basadas en microservicios
Creating applications with Grails, Angular JS and Spring Security - GR8Conf E...Alvaro Sanchez-Mariscal
Grails 3.1 enhances and improves the profile system introduced in Grails 3.0. One of the new profiles ease the creation and development of applications where the the front-end is an Angular JS application, and the backend is a Grails REST API.
In this session, Álvaro (member of the Grails team at OCI, Grails committer and author of several plugins) will demonstrate how to use the Angular profile to create an application using Grails 3.1, Angular JS and Spring Security REST.
The workshop is published at http://alvarosanchez.github.io/grails-angularjs-springsecurity-workshop/
Markup Template Engine is a new feature of Groovy, that is a kind of Embedded DSL which is implemented using Groovy 2.x features like:
- Custom Type Checker(Type Check Extension)
- Compiler Configuration
You can generate HTML/XML using full brown programming language features:
- modularity
- abstraction
- type system
- flow structure
- variable, OOP, etc, etc..
Greach es el evento sobre tecnologías basadas en lenguaje Groovy referente en España.
Dentro de este evento, la charla 'Use Groovy & Grails in your Spring Boot projects' se presenta como una propuesta de ejemplos y posibilidades de introducir este lenguaje y algunos módulos del framework Grails (basado también en Groovy) en proyectos implementados con la reciente solución lanzada por Spring llama Spring Boot.
More info:
http://buff.ly/1DXXQWU
Gradle is an open-source build automation tool focused on flexibility, build reproducibility and performance. Over the years, this tool has evolved and introduced new concepts and features around dependency management, publication and other aspects on build and release of artifacts for the Java platform.
Keeping up to date with all these features across several projects can be challenging. How do you make sure that all your projects can be upgraded to the latest version of Gradle? What if you have thousands of projects and hundreds of engineers? How can you abstract common tasks for them and make sure that new releases work as expected?
At Netflix, we built Nebula, a collection of Gradle plugins that helps engineers remove boilerplate in Gradle build files, and makes building software the Netflix way easy. This reduces the cognitive load on developers, allowing them to focus on writing code.
In this talk, I’ll share with you our philosophy on how to build JVM artifacts and the pieces that help us boost the productivity of engineers at Netflix. I’ll talk about:
- What is Nebula
- What are the common problems we face and try to solve
- How we distribute it to every JVM engineer
- How we ensure that Nebula/Gradle changes do not break builds so we can ship new features with confidence at Netflix
Feelin' Groovy: A Groovy Developer in the Java WorldKen Kousen
Keynote given at Gr8conf.in, Delhi, India, January 2017. Variation of same keynote given at Gr8conf.eu in Copenhagen (https://www.youtube.com/watch?v=KZ7u8CddgnI) and Gr8conf.us in Minneapolis, earlier in 2016
Grails @ Java User Group Silicon ValleySven Haiges
Grails presentation by Sven Haiges at Silicon Valley Java User Group on Nov 18, 2008. Check github for code. http://github.com/hansamann/groovyquiz-demo
CoffeeScript: A beginner's presentation for beginners copyPatrick Devins
A short presentation on CoffeeScript for people who may not have much, or any, experience with it. It is a great way to learn JavaScript, as well as a fantastic syntactic sugar fro those who already know JavaScript.
Brief introduction of Google App Engine and Play Framework.
Step-by-step instruction to develop and deploy play! web App on GAE with Siena persistence layer, CRUD management interface and login support.
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
Recreation management software streamlines operations by automating key tasks such as scheduling, registration, and payment processing, reducing manual workload and errors. It provides centralized management of facilities, classes, and events, ensuring efficient resource allocation and facility usage. The software offers user-friendly online portals for easy access to bookings and program information, enhancing customer experience. Real-time reporting and data analytics deliver insights into attendance and preferences, aiding in strategic decision-making. Additionally, effective communication tools keep participants and staff informed with timely updates. Overall, recreation management software enhances efficiency, improves service delivery, and boosts customer satisfaction.
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
Unlocking Business Potential: Tailored Technology Solutions by Prosigns
Discover how Prosigns, a leading technology solutions provider, partners with businesses to drive innovation and success. Our presentation showcases our comprehensive range of services, including custom software development, web and mobile app development, AI & ML solutions, blockchain integration, DevOps services, and Microsoft Dynamics 365 support.
Custom Software Development: Prosigns specializes in creating bespoke software solutions that cater to your unique business needs. Our team of experts works closely with you to understand your requirements and deliver tailor-made software that enhances efficiency and drives growth.
Web and Mobile App Development: From responsive websites to intuitive mobile applications, Prosigns develops cutting-edge solutions that engage users and deliver seamless experiences across devices.
AI & ML Solutions: Harnessing the power of Artificial Intelligence and Machine Learning, Prosigns provides smart solutions that automate processes, provide valuable insights, and drive informed decision-making.
Blockchain Integration: Prosigns offers comprehensive blockchain solutions, including development, integration, and consulting services, enabling businesses to leverage blockchain technology for enhanced security, transparency, and efficiency.
DevOps Services: Prosigns' DevOps services streamline development and operations processes, ensuring faster and more reliable software delivery through automation and continuous integration.
Microsoft Dynamics 365 Support: Prosigns provides comprehensive support and maintenance services for Microsoft Dynamics 365, ensuring your system is always up-to-date, secure, and running smoothly.
Learn how our collaborative approach and dedication to excellence help businesses achieve their goals and stay ahead in today's digital landscape. From concept to deployment, Prosigns is your trusted partner for transforming ideas into reality and unlocking the full potential of your business.
Join us on a journey of innovation and growth. Let's partner for success with Prosigns.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
Atelier - Innover avec l’IA Générative et les graphes de connaissancesNeo4j
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Allez au-delà du battage médiatique autour de l’IA et découvrez des techniques pratiques pour utiliser l’IA de manière responsable à travers les données de votre organisation. Explorez comment utiliser les graphes de connaissances pour augmenter la précision, la transparence et la capacité d’explication dans les systèmes d’IA générative. Vous partirez avec une expérience pratique combinant les relations entre les données et les LLM pour apporter du contexte spécifique à votre domaine et améliorer votre raisonnement.
Amenez votre ordinateur portable et nous vous guiderons sur la mise en place de votre propre pile d’IA générative, en vous fournissant des exemples pratiques et codés pour démarrer en quelques minutes.
Understanding Globus Data Transfers with NetSageGlobus
NetSage is an open privacy-aware network measurement, analysis, and visualization service designed to help end-users visualize and reason about large data transfers. NetSage traditionally has used a combination of passive measurements, including SNMP and flow data, as well as active measurements, mainly perfSONAR, to provide longitudinal network performance data visualization. It has been deployed by dozens of networks world wide, and is supported domestically by the Engagement and Performance Operations Center (EPOC), NSF #2328479. We have recently expanded the NetSage data sources to include logs for Globus data transfers, following the same privacy-preserving approach as for Flow data. Using the logs for the Texas Advanced Computing Center (TACC) as an example, this talk will walk through several different example use cases that NetSage can answer, including: Who is using Globus to share data with my institution, and what kind of performance are they able to achieve? How many transfers has Globus supported for us? Which sites are we sharing the most data with, and how is that changing over time? How is my site using Globus to move data internally, and what kind of performance do we see for those transfers? What percentage of data transfers at my institution used Globus, and how did the overall data transfer performance compare to the Globus users?
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
Listen to the keynote address and hear about the latest developments from Rachana Ananthakrishnan and Ian Foster who review the updates to the Globus Platform and Service, and the relevance of Globus to the scientific community as an automation platform to accelerate scientific discovery.
Developing Distributed High-performance Computing Capabilities of an Open Sci...Globus
COVID-19 had an unprecedented impact on scientific collaboration. The pandemic and its broad response from the scientific community has forged new relationships among public health practitioners, mathematical modelers, and scientific computing specialists, while revealing critical gaps in exploiting advanced computing systems to support urgent decision making. Informed by our team’s work in applying high-performance computing in support of public health decision makers during the COVID-19 pandemic, we present how Globus technologies are enabling the development of an open science platform for robust epidemic analysis, with the goal of collaborative, secure, distributed, on-demand, and fast time-to-solution analyses to support public health.
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Use groovy & grails in your spring boot projects
1. La importancia de un buen título en presentaciones
Use Groovy & Grails in your Spring Boot
projects,
don't be afraid!
@fatimacasau
2. La importancia de un buen título en presentaciones
Fátima Casaú Pérez
Software Engineer for over 7 years ago
Java Architect & Scrum Master in Paradigma Tecnológico
Specialized in Groovy & Grails environments
Recently, Spring Boot world
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
@fatimacasau
3. La importancia de un buen título en presentaciones
What is Spring Boot?
What is Groovy?
Where could you use Groovy in your Spring Boot Projects?
●
Gradle
●
Tests
●
Groovy Templates
●
Anywhere?
●
GORM
●
GSP’s
Overview
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
4. La importancia de un buen título en presentaciones
Spring Boot
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
5. La importancia de un buen título en presentaciones
Standalone
Auto-configuration - CoC
No XML
Embedded Container and Database
Bootstrapping
Groovy!!
Run quickly - Spring Boot CLI
projects.spring.io/spring-boot
Spring Boot
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
6. La importancia de un buen título en presentaciones
Spring Boot application
in a single tweet
DEMO...
7. La importancia de un buen título en presentaciones
GVM
gvmtool.net
> gvm install springboot
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
8. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
HelloWorld.groovy
1 @Controller
2 class ThisWillActuallyRun {
3 @RequestMapping("/")
4 @ResponseBody
5 String home() {
6 "Hello World!"
7 }
8 }
Spring Boot in a single Tweet
9. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
apply plugin: 'springboot'
dependencies {
compile("org.springframework.boot:springbootstarterweb")
…
}
https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples
10. La importancia de un buen título en presentaciones
Groovy
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
11. La importancia de un buen título en presentaciones
Dynamic language
Optionally typed
@TypeChecked & @CompileStatic
Java Platform
Easy & expressive syntax
Powerful features
closures, DSL, meta-programming, functional programming, scripting, ...
Groovy
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
12. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
apply plugin: 'groovy'
dependencies {
compile("org.codehaus.groovy:groovyall:2.2.0")
…
}
13. La importancia de un buen título en presentaciones
Where could you use
Groovy?
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
14. La importancia de un buen título en presentaciones
Gradle
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
15. La importancia de un buen título en presentaciones
Powerful build tool
Support multi-project
Dependency management (based on Apache Ivy)
Support and Integration with Maven & Ivy repositories
Based on Groovy DSL
Build by convention
Ant tasks
Gradle
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
16. La importancia de un buen título en presentaciones
Building a Spring Boot
application with Gradle
DEMO...
17. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
GVM
> gvm install gradle
> gradle build
> gradle tasks
18. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
build.gradle
1 buildscript {
2 repositories {
3 mavenCentral()
4 }
5 dependencies {
6 classpath("org.springframework.boot:springbootgradleplugin:1.2.2.RELEASE")
7 }
8 }
9
10 apply plugin: 'groovy'
11 apply plugin: 'idea'
12 apply plugin: 'springboot'
13
14 jar {
15 baseName = 'helloworld'
16 version = '0.1.0'
17 }
18
19 repositories {
20 mavenCentral()
21 }
22
23 dependencies {
24 compile("org.springframework.boot:springbootstarterweb")
25 }
19. La importancia de un buen título en presentaciones
Testing with Spock
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
20. La importancia de un buen título en presentaciones
Spock framework & specification
Expressive
Groovy DSL’s
Easy to read tests
Well documented
Powerful assertions
Testing with Spock
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
21. La importancia de un buen título en presentaciones
Testing with Spock
DEMO...
22. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
GoogleSpec.groovy
1 void "test Google Maps API where address is ‘Madrid’"(){
2 setup: “Google Maps API Host & Uri”
3 def rest = new RESTClient("https://maps.googleapis.com")
4 def uri = "/maps/api/geocode/json"
5 when: “Call the API with address = ‘madrid’”
6 def result = rest.get(path: uri, query: [address:'madrid'])
7 then: “HttpStatus is OK, return a list of results and field status = OK”
8 result
9 result.status == HttpStatus.OK.value()
10 !result.data.results.isEmpty()
11 result.data.status == ‘OK’
12 result.data.toString().contains('Madrid')
13 }
23. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
GoogleSpec.groovy
1 void "test Google Maps API with different values"(){
2 setup: “Google Maps API Host & Uri”
3 def rest = new RESTClient("https://maps.googleapis.com")
4 def uri = "/maps/api/geocode/json"
5 expect: “result & status when call the REST API”
6 def result = rest.get(path: uri, query: [address:address])
7 resultsIsEmpty == result.data.results.isEmpty()
8 result.data.status == status
9 where: “address takes different values with different results & status”
10 address | resultsIsEmpty | status
11 'Madrid'| false | 'OK'
12 'abdkji'| true | 'ZERO_RESULTS'
13 '186730'| false | 'ZERO_RESULTS' // This fails!
14
15 }
24. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
Assertion failed:
assert resultsIsEmpty == result.data.results.isEmpty()
| | | | | |
false false | | true
| | [...]
| |
| ...
...
docs.spockframework
.org
25. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
dependencies {
testCompile("org.springframework.boot:springbootstartertest")
testCompile("org.springframework:springtest")
testRuntime("org.spockframework:spockspring:0.7groovy2.0") {
exclude group: 'org.spockframework', module: 'spockcore'
}
testCompile("org.spockframework:spockcore:0.7groovy2.0") {
exclude group: 'org.codehaus.groovy', module: 'groovyall'
}
…
}
https://github.com/tomaslin/gs-spring-boot-spock
26. La importancia de un buen título en presentaciones
Groovy templates
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
27. La importancia de un buen título en presentaciones
Groovy Template Framework
Based MarkupBuilder
Groovy DSL’s
Render readable views
Replace variables easily
Groovy templates
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
28. La importancia de un buen título en presentaciones
Groovy Templates
DEMO...
29. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
1 ul {
2 people.each { p >
3 li(p.name)
4 }
5 }
With the following model
6 def model = [people: [
7 new Person(name:'Bob'),
8 new Person(name:'Alice')
9 ]]
Renders the following
10 <ul><li>Bob</li><li>Alice</li></ul>
30. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
dependencies {
compile("org.springframework.boot:springbootstartergroovytemplates")
…
}
https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-
boot-sample-web-groovy-templates
31. La importancia de un buen título en presentaciones
Anywhere!
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
32. La importancia de un buen título en presentaciones
Anywhere
Mix Java & Groovy easily
More expressive, simple & flexible than Java
Extension of JDK -> GDK
@CompileStatic @TypeChecked
Controllers, Services, Model,...
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
33. La importancia de un buen título en presentaciones
Groovy Controller
DEMO...
34. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
HelloWorld.groovy
1
2 @Controller
3 class ThisWillActuallyRun {
4 @RequestMapping("/")
5 @ResponseBody
6 String home() {
7 "Hello World!"
8 }
9 }
@groovy.transform.CompileStatic
35. La importancia de un buen título en presentaciones
GORM
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
36. La importancia de un buen título en presentaciones
Automatic mapping for entities
Dynamic finders, criterias, persistence methods, validation,
mappings, constraints…
Expressive and simple code
implicit getters & setters
implicit constructors
implicit primary key
For Hibernate
For MongoDB
GORM: Grails Object Relational Mapping
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
37. La importancia de un buen título en presentaciones
GORM for Hibernate
DEMO...
38. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
Customer.groovy
1 @Entity
2 public class Customer {
3
4 String firstName;
5 String lastName;
6
7 static constraints = {
8 firstName blank:false
9 lastName blank:false
10 }
11 static mapping = {
12 firstName column: 'first_name'
13 lastName column: 'last_name'
14 }
15 }
39. La importancia de un buen título en presentaciones
@fatimacasa
uUse Groovy & Grails in your Spring Boot projects, don't be afraid!
1 [[firstName:"Jack", lastName:"Bauer"],
2 [firstName:"Michelle", lastName:"Dessler"]].each {
3 new Customer(it).save()
4 }
5
6 def customers = Customer.findAll()
7
8 customers.each {
9 println it
10 }
11
12 def customer = Customer.get(1L)
13
14 customers = Customer.findByLastName("Bauer")
15 customers.each {println it}
40. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
dependencies {
compile("org.grails:gormhibernate4springboot:1.1.0.RELEASE")
compile("com.h2database:h2")
…
}
https://github.com/fatimacasau/spring-boot-talk/blob/spring-boot-groovy-gorm
41. La importancia de un buen título en presentaciones
GSP's
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
42. La importancia de un buen título en presentaciones
Groovy Server Pages is used by Grails
Large list of useful Tag Libraries
Easy to define new Tags
Not only views
Layouts & Templates
Reuse Code
GSP's: Groovy Server Pages
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
43. La importancia de un buen título en presentaciones
GSP's in Spring Boot
DEMO...
44. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
1 <g:if test="${session.role == 'admin'}">
2 <% show administrative functions %>
3 </g:if>
4 <g:else>
5 <% show basic functions %>
6 </g:else>
___________________________________________________________________
1 <g:each in="${[1,2,3]}" var="num">
2 <p>Number ${num}</p>
3 </g:each>
___________________________________________________________________
1 <g:findAll in="${books}" expr="it.author == 'Stephen King'">
2 <p>Title: ${it.title}</p>
3 </g:findAll>
___________________________________________________________________
1 <g:dateFormat format="ddMMyyyy" date="${new Date()}" />
___________________________________________________________________
1 <g:render template="bookTemplate" model="[book: myBook]" />
45. La importancia de un buen título en presentaciones
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
dependencies {
compile("org.grails:grailsgspspringboot:1.0.0")
compile("org.grails:grailswebgsp:2.5.0")
compile("org.grails:grailswebgsptaglib:2.5.0")
compile("org.grails:grailswebjsp:2.5.0")
…
}
https://github.com/grails/grails-boot/tree/master/sample-apps/gsp/gsp-example
46. La importancia de un buen título en presentaciones
Conclusions
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
47. La importancia de un buen título en presentaciones
If you use Groovy…
Less code
More features
Cool Tests
Cool utilities
Why not? Please try to use Groovy!
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
49. La importancia de un buen título en presentaciones
MVC Spring based Apps
Convention Over Configuration
Bootstrapping
Groovy
GORM
GSP’s ...
It's sounds like Grails!
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
50. La importancia de un buen título en presentaciones
Why do you not use Grails?
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
51. La importancia de un buen título en presentaciones
Thanks!!
@fatimacasau
52. La importancia de un buen título en presentaciones
EXAMPLE
http://github.com/fatimacasau/spring-boot-talk
Simple API Rest with Spring Boot, Groovy and GORM
@fatimacasau
Use Groovy & Grails in your Spring Boot projects, don't be afraid!
53. La importancia de un buen título en presentaciones
We are hiring!
JEE, Python, PHP, MongoDB, Cassandra, Big Data, Scala, NoSQL,
AngularJS, Javascript, iOS, Android, HTML, CSS3… and Commitment,
Ping Pong, Arcade…
SEND US YOUR CV
Editor's Notes
My name is Fatima Casau
I’m a software engineer since seven years ago and currently, I work as a Java Architect and Scrum Master in Paradigma Tecnologico
Since 6 years ago, I’m specialized in Groovy & Grails technologies and recently, I&apos;m working with Spring Boot. For this, I&apos;m here and I want to tell you my experience about this
Well...
In short, What are we going to see in this talk?
I’m going to talk about Spring Boot and Groovy and where you could use Groovy in your spring boot projects
We go to see...
What is Spring Boot
What is Groovy
And, how or where use both. For example
Using Gradle
Developing tests with groovy and the Spock framework
Using Groovy Templates
Or why not?, Anywhere in your projects
Also, We will see how to use GORM and GSP’s in a Spring Boot project, outside Grails
In First Place, What is Spring Boot?
Question: How many people know Spring Boot?
Question: How many people are using Spring Boot currently?
(If many people -&gt; As many of you know...
… Spring Boot is a new project from Spring that allows you to develop standalone Spring MVC applications easily.
Probably, You think about the many configurations there are in Spring projects, but, Spring Boot, follows Convention Over Configuration allowing Autoconfiguration and configuration with annotations, eliminating the necessity of use XML configuration files.
In other hand, Spring Boot allows you to start and build production applications quickly, because
provides an embedded container and database according to the dependencies specified in the build system, so, you don&apos;t need to configure this to start to work.
Additionally, we can use Groovy, and, of course, all of its features, only including a dependency.
Finally, we can run an application quickly thanks to Spring Boot CLI Tool
Of course, you can find examples and documentation about all of this on the Spring Boot website in projects (dot) spring (dot) io (slash) spring-boot
We go to see a little but powerful example:
We can develop an application that can be contained in a single tweet and execute it quickly with Spring Boot CLI
First, I want to talk about the GVM Tool
GVM is a Tool for managing versions of multiple Software Development Kits
To use it, you can download in its website gvmtool.net
Once you have downloaded, you can see witch framework are available only typing &apos;gvm&apos;
you can download Spring Boot with the GVM Tool
Once you have installed GVM tool, only you need to do is execute in a terminal gvm install springboot and this will install the latest version of spring boot
Here we have the example: a groovy script with:
an annotation (at) Controller that means this is a Controller component
two more annotations, to determine the URI and response of the controller
and finally, a method that returns the message “Hello World”
To execute this, we open a terminal and go to the path that contains the groovy script and type spring run helloWorld.groovy
(By command line)
go to workspaces/greach14
spring run helloWorld.groovy
Later, go to Chrome and type localhost:8080 and see the result
It&apos;s only you need to do to start an example
In second place, The next lead actor in this talk, of course, is Groovy!
Question: How many people know Groovy?
Question: How many people are using Groovy currently?
What is Groovy?
Groovy is a dynamic language,
optionally typed with static-typing and static compilation capabilities for the Java platform
Thanks to an easy and expressive syntax it’s easy to learn for java developers.
Furthermore, it integrates easily with any Java program, delivering powerful features, including closures, runtime and compile-time meta-programming, functional programming, scripting, powerful tests...and so on
So..., if we combine the power of Spring Boot with the features of Groovy
we obtain a couple of powerful tools that allows to developers work
in an easy and more productive, interesting and amazing way
Then....
Where could you introduce Groovy in your spring boot applications? In short, anywhere!, but we go to see the different sites in the project where you could use Groovy bit by bit
The first option is use Groovy in the process to build the project using Gradle
With Spring Boot we can build our projects with Maven, but also, we can use Gradle
With Maven, we have to manage a static xml file, the pom.xml file, but with Gradle we have a flexible and modular groovy file that it&apos;s more easy to read thanks to a friendly syntax based on Groovy DSL’s and a plugin model
With Gradle, we have a powerful building tool with many features such as support for multi-project, dependency management based on Apache Ivy, with support and integration with Maven and Ivy repositories.. And also, we have a large list of tasks based on Ant to manage our application
See you how to use
Like with Spring Boot, we can download and manage our versions of Gradle with GVM Tool
Later, we only need to create a build.gradle file with some dependencies and execute the command gradle build to compile, test and assemble the code into a jar file.
If we execute gradle ‘tasks’ we can see a list of available for our project.
This is an example of build.gradle file.
We can see some plugins such as groovy, idea or spring boot, of course.
Also, we have got the configurations about the jar file, the name and the version of our project
Below, the repositories configuration and the dependencies.
If you include some plugin more and execute the ‘tasks’ command again, you will can see new tasks in the list, the tasks are related with the dependencies available in the project
Other site where use Groovy is implementing tests using the framework Spock.
This is my favorite section
I like to implement tests with groovy and Spock framework
Why?
Spock is not only a test framework, Spock is a test specification for Groovy and Java projects
With an expressive language, its also based on Groovy DSL’s and this makes our tests become easy to read and well documented.
Moreover, when an assertion failed, the exit is very intuitive and easy to read as well.
Let me to show some examples of simple spock tests and how to use its test blocks
For example,
With Spock we can define test with descriptive signatures.
We can organize the code in intuitive blocks such as:
“given” or “setup” to setup initial variables, for example,
“when” to execute an action
and “then” to test the result. In this block we needn’t asserts, only test if a sentence is true or not by the use of groovy truth
In the other hand we have got two blocks more, ‘expect’ and ‘where’. With this blocks we can test different combinations of data in only one test and later, we will see what iterations it has failed and what not easily
Here, we can view the way to show the assertions failed. It’s very easy read the failure
In addition to these, we have more features with diferents tags and utilities. Please visit the documentation and test the examples
I think that this is a good point to start with Groovy and know the features and the simplicity of the language
Another possibility is the use of Groovy templates
Groovy Template Framework is based on MarkupBuild that permits a pretty and easy way to write readable Groovy Views using Groovy DSL&apos;s
Also, provide an easy way to replace variables in the view
See you an example
In this block, we have an ‘ul’ block where a people list is iterated and for each person, its name is printed in a li element. We can pass a list and iterate it in the view easily
If we return this view and, in the model, we send this list of people, we obtain the result printed in the line below
Right?
Well...,
Really, You can use Groovy anywhere in your spring boot project
Yes! Anywhere!
We can use Groovy in controllers, services, domain classes…
If we need, we can combine Java & Groovy easily, that is, if we need have classes in Java & in other hand, classes in Groovy, it is possible.
And, you must to know that the most important features of use groovy over java is that our applications will be very simple, expressive and flexible, will have less code and, if there are less code, there will be less errors. This is a fact!
Furthermore, with Groovy we have many features available than with Java, because Groovy provides the GDK as an extension of JDK with many more features about the use of Strings, collections, control structures, closures… and so on.
Finally, you could think about compilation in runtime or dynamic typing, but, if you are worry about this, you must to know that you can use Static Compilation or Static Typing with the annotations (at)CompileStatic and (at)TypeChecked in your classes.
Here, I won&apos;t to show anything different, only, the same controller in the beginning of the talk but with the use of CompileStatic annotation
Only, you need to add the annotation (at)CompileStatic in the definition of the class
This code should already run as fast as Java.
The use of GORM with Spring Boot
GORM is the Grails Object Relational Mapping
Since Grails 2.4, It is possible to use GORM outside of Grails, and this permits access relational database or MongoDB with GORM in a Spring Application including the correct dependency in the project.
With GORM we can map the entities automatically, we have dynamic finders, criterias, persistence methods, validations… and more. We don’t need implements getters & setters methods, constructors or specify the primary key.
With this features, our code is even simple
See some code...
This is a domain class implemented with Groovy and using GORM. The annotation @Entity indicates that we are using GORM.
We can specify some constraints easily, or some mapping options.
Now, see how to use a domain class with GORM.
For example. We can instance new object of the class with a map in the constructor and we have not defined this constructor
In other hand, We have dynamic finders without implement it, findAll, get, findBy… any attributes… and many more
As GORM, we can use GSP’s (Groovy Server Pages) outside of Grails.
With GSP’s we have a large list of Tag libraries that we can use to make our views more simple.
Also, we can create easily our own tags or we can define layouts, templates and reuse the code easily
See some examples of predefined tags:
conditional tags as g:if and g:else
iterator tags as g:each or using a finder that iterates a list with a condition
g:dateFormat to format dates in view easily
g:render to render templates sending a model
and many more!
Also, remind that you can implements your own tags easily
well… after all of this…
What are the conclusions? (Almost my conclusions)
If you use Groovy… as I’ve said before, your application has less lines of code, so, less errors, if there are errors, you can find them easily so, you will be more productive
Remind that with Groovy you can get more features for your project, you can implement cool test and you can use cool utilities, this is: you have a super-vitaminized Project!
Then, Why not use Groovy in your Spring Boot project? Please, use Groovy! Try to introduce bit to bit in the application. Begin with Spock tests, later, introduce groovy in the code of your services, and so on.
But, one moment...
We have talked about MVC Spring Based Apps
Convention Over Configuration
Application Bootstrapping
Groovy Language
GORM
GSP’s….
This sounds like Grails!
And also, Grails 3.0 is built on Spring Boot!!
So, I want to leave you with a question,... Why not use Grails instead of Spring Boot?
The next lead actor in this talk is Groovy!
Question: How many people know Groovy?
Question: How many people are using Groovy currently?
One more thing.
In Paradigma, we are hiring for people specialized in many technologies as you can see, so, if your are interested or you know somebody could be interested, please, send us your CV
&lt;number&gt;