The Spring framework packs a lot of punch, out of the box! The surface-level component model's extraordinarily flexible, and works well with in most situations, but the real power of Spring lays just underneath, in the numerous SPIs that Spring exposes, so that you can tailor the component model to your own use cases. Spring's SPI's are a great example of what Bob Martin describes as the open-closed principle, and it provides the solid underpinnings upon which the other Spring frameworks, including Spring Integration, Spring MVC and Spring Batch are built. In this talk, Josh Long, the Spring developer advocate from SpringSource, provides a walking tour of Spring's extension points.
MySQL replication is the backbone of the web economy, but it has shortcomings. Tungtsten Replicator, an open source replication engine, takes MySQL replication to the next level with multiple masters, seamless failover, parallel replication.
MySQL replication is the backbone of the web economy, but it has shortcomings. Tungtsten Replicator, an open source replication engine, takes MySQL replication to the next level with multiple masters, seamless failover, parallel replication.
We upgraded from Backgroundrb to Resque. The pagers have stopped buzzing, and we are very pleased with the migration.
Resque was a little tricky to get the last 5% complete. This presentation shares some of the implementation details (code and config files) to help others make their Resque setup rock solid.
Slides of a talk at the International PHP Conference 2012 on how we successfully mastered the challenge to log everything and transport the logged data into different sinks for different needs.
Slides of my "Rapid JCR applications development with Sling" at ApacheCon EU 2009. Starts like the US 2008 version but uses a different example for the second part.
This talk includes a brief review of the Cloud Foundry Anniversary event on 4/11/2012, and then goes deeply into the idea of Cloud Foundry as the "linux of the cloud"
From the AJUG meeting: http://www.meetup.com/atlantajug/events/222312943/
Oc 20, 2015
In this fully-loaded session we will give you an update on all things Spring. We will talk about the latest features in Spring Framework 4.2 which was released this summer, and also provide an outlook to what is coming with Spring 5 in 2016.
Next, Spring Boot 1.3 is on the horizon and adds many new features. We will go over those and explain how Spring Boot helps you build production-ready Spring applications.
And then we add Spring Cloud to the mix and explain the various modules
Enterprise Integration and Batch Processing on Cloud FoundryJoshua Long
Spring Integration, RabbitMQ and Spring Batch are natural vehicles for building bigger, better, more powerful applications on top of the scale that only Cloud Foundry can provide. This is the deck from my Spring IO 2012 talk.
A Spring Batch bootcamp! Spring Batch is the open source batch processing framework from SpringSource, makes of the Spring framework. http://www.springsource.org/spring-batch
Positions Spring Integration in a messaging architecture and compares with a few others. Also glances over some enterprise integration patterns.
With the presentation are a lot of live demo's, so it might not make sense in isolation.
S2GX 2012 - Introduction to Spring Integration and Spring BatchGunnar Hillert
In this session you will learn what Spring Integration and Spring Batch are all about, how they differ, their commonalities, and how you can use Spring Batch and Spring Integration together.
We will provide a short overview of the Enterprise Integration Patterns (EIP) as described in the highly influential book of the same name. Based on these patterns, we will then see how Spring Integration enables the development of Message-driven applications. This allows you to not only modularize new or existing applications but also makes it easy to integrate with external systems.
This session will also introduce Spring Batch. Spring Batch addresses the needs of any batch process, be it complex calculations in large financial institutions or simple data migration tasks as they exist in many software development projects. We will cover what Spring Batch is, how Spring approaches the concepts of batch and how Spring handles scaling batch processes to be able to handle any volume of data.
You will also see how Spring Integration and Spring Batch maximize the reuse of the integration support provided by the core Spring Framework. In addition to providing a robust, proven foundation, this also flattens the learning curve considerably to all developers already familiar with Spring.
Patterns provide structure and clarity, enabling architects to establish their solutions across the enterprise. Moreover, these software patterns also help to link technology and business requirements in an effective and efficient manner. Patterns help to incorporate robust solutions for business problems due to it’s wide adoption as well as it’s reusability. In addition, patterns create a common method to communicate, document and describe solutions. This session will explain some of these patterns ranging from SOA (Service-Oriented Architecture), WOA (Web-Oriented Architecture), EDA (Event Driven Architecture), and IoT (Internet of Things)
Spring integration을 통해_살펴본_메시징_세계Wangeun Lee
[스프링캠프 2015] Spring Integration을 통해 살펴본 메시징 세계 발표자료 입니다.
예제 소스 저장소는 프리젠테이션 안에 링크 걸어놨습니다.
감사합니다.
-------------------------------------------------------------------
우리는 늘 누군가와 소통(Communication)을 합니다. 소통을 통하여 누군가에게 일을 시키기도 하고 내가 일을 받기도 합니다. 애플리케이션도 마찬가지로 이기종간의 애플리케이션끼리 데이터로 소통을 하며 할 일을 서로 분산 처리할 상황이 발생하기도 합니다.
이런 분산 처리 이전에는 소통이 전제되어야 합니다. 애플리케이션 간 소통에 대한 고민은 선구자들에 의해 Enterprise Integration Patterns로 탄생되었으며 Spring에서도 그 패턴화의 추상화 일원으로 Spring Integration을 탄생시켰습니다.
이 강연에서는 Spring Integration을 통해 애플리케이션 간에 어떻게 쉽고 편하게(?) 소통을 할 수 있게 되었는지 살펴보며 예제와 사례를 통해 Spring Integration 입문에 도움을 주고자 합니다.
Spring in the Cloud - using Spring with Cloud FoundryJoshua Long
This talk's about using the power of the Spring framework with Cloud Foundry, the open source PaaS (platform as-a-service) from VMware. This is a bit more deep an introduction than my other Spring and Cloud Foundry talk, and so I've kept both, while encouraging people to check this one out, first.
CloudFoundry and MongoDb, a marriage made in heavenPatrick Chanezon
This talk will provide an overview of the PaaS (Platform as a Service) landscape, and will describe the Cloud Foundry open source PaaS, with its multi-framework, multi-service, multi-cloud model. Cloud Foundry allows developers to provision apps in Java/Spring, Ruby/Rails, Ruby/Sinatra, Javascript/Node, and leverage services like MySQL, MongoDB, Reddis, Postgres and RabbitMQ. It can be used as a public PaaS on CloudFoundry.com and other service providers (ActiveState, AppFog), to create your own private cloud, or on your laptop using the Micro Cloud Foundry VM. Micro Cloud Foundry is a very easy way for developers to start working on their application using their framework of choice and MongoDB, without the need to setup a development environment, and your app is one command line away (vmc push) from deployment to cloudfoundry.com.
using Spring and MongoDB on Cloud FoundryJoshua Long
This talk introduces how to build MongoDB applications with Spring Data MongoDB on Cloud Foundry. Spring Data provides rich support for easily building applications that work on multiple data stores.
We upgraded from Backgroundrb to Resque. The pagers have stopped buzzing, and we are very pleased with the migration.
Resque was a little tricky to get the last 5% complete. This presentation shares some of the implementation details (code and config files) to help others make their Resque setup rock solid.
Slides of a talk at the International PHP Conference 2012 on how we successfully mastered the challenge to log everything and transport the logged data into different sinks for different needs.
Slides of my "Rapid JCR applications development with Sling" at ApacheCon EU 2009. Starts like the US 2008 version but uses a different example for the second part.
This talk includes a brief review of the Cloud Foundry Anniversary event on 4/11/2012, and then goes deeply into the idea of Cloud Foundry as the "linux of the cloud"
From the AJUG meeting: http://www.meetup.com/atlantajug/events/222312943/
Oc 20, 2015
In this fully-loaded session we will give you an update on all things Spring. We will talk about the latest features in Spring Framework 4.2 which was released this summer, and also provide an outlook to what is coming with Spring 5 in 2016.
Next, Spring Boot 1.3 is on the horizon and adds many new features. We will go over those and explain how Spring Boot helps you build production-ready Spring applications.
And then we add Spring Cloud to the mix and explain the various modules
Enterprise Integration and Batch Processing on Cloud FoundryJoshua Long
Spring Integration, RabbitMQ and Spring Batch are natural vehicles for building bigger, better, more powerful applications on top of the scale that only Cloud Foundry can provide. This is the deck from my Spring IO 2012 talk.
A Spring Batch bootcamp! Spring Batch is the open source batch processing framework from SpringSource, makes of the Spring framework. http://www.springsource.org/spring-batch
Positions Spring Integration in a messaging architecture and compares with a few others. Also glances over some enterprise integration patterns.
With the presentation are a lot of live demo's, so it might not make sense in isolation.
S2GX 2012 - Introduction to Spring Integration and Spring BatchGunnar Hillert
In this session you will learn what Spring Integration and Spring Batch are all about, how they differ, their commonalities, and how you can use Spring Batch and Spring Integration together.
We will provide a short overview of the Enterprise Integration Patterns (EIP) as described in the highly influential book of the same name. Based on these patterns, we will then see how Spring Integration enables the development of Message-driven applications. This allows you to not only modularize new or existing applications but also makes it easy to integrate with external systems.
This session will also introduce Spring Batch. Spring Batch addresses the needs of any batch process, be it complex calculations in large financial institutions or simple data migration tasks as they exist in many software development projects. We will cover what Spring Batch is, how Spring approaches the concepts of batch and how Spring handles scaling batch processes to be able to handle any volume of data.
You will also see how Spring Integration and Spring Batch maximize the reuse of the integration support provided by the core Spring Framework. In addition to providing a robust, proven foundation, this also flattens the learning curve considerably to all developers already familiar with Spring.
Patterns provide structure and clarity, enabling architects to establish their solutions across the enterprise. Moreover, these software patterns also help to link technology and business requirements in an effective and efficient manner. Patterns help to incorporate robust solutions for business problems due to it’s wide adoption as well as it’s reusability. In addition, patterns create a common method to communicate, document and describe solutions. This session will explain some of these patterns ranging from SOA (Service-Oriented Architecture), WOA (Web-Oriented Architecture), EDA (Event Driven Architecture), and IoT (Internet of Things)
Spring integration을 통해_살펴본_메시징_세계Wangeun Lee
[스프링캠프 2015] Spring Integration을 통해 살펴본 메시징 세계 발표자료 입니다.
예제 소스 저장소는 프리젠테이션 안에 링크 걸어놨습니다.
감사합니다.
-------------------------------------------------------------------
우리는 늘 누군가와 소통(Communication)을 합니다. 소통을 통하여 누군가에게 일을 시키기도 하고 내가 일을 받기도 합니다. 애플리케이션도 마찬가지로 이기종간의 애플리케이션끼리 데이터로 소통을 하며 할 일을 서로 분산 처리할 상황이 발생하기도 합니다.
이런 분산 처리 이전에는 소통이 전제되어야 합니다. 애플리케이션 간 소통에 대한 고민은 선구자들에 의해 Enterprise Integration Patterns로 탄생되었으며 Spring에서도 그 패턴화의 추상화 일원으로 Spring Integration을 탄생시켰습니다.
이 강연에서는 Spring Integration을 통해 애플리케이션 간에 어떻게 쉽고 편하게(?) 소통을 할 수 있게 되었는지 살펴보며 예제와 사례를 통해 Spring Integration 입문에 도움을 주고자 합니다.
Spring in the Cloud - using Spring with Cloud FoundryJoshua Long
This talk's about using the power of the Spring framework with Cloud Foundry, the open source PaaS (platform as-a-service) from VMware. This is a bit more deep an introduction than my other Spring and Cloud Foundry talk, and so I've kept both, while encouraging people to check this one out, first.
CloudFoundry and MongoDb, a marriage made in heavenPatrick Chanezon
This talk will provide an overview of the PaaS (Platform as a Service) landscape, and will describe the Cloud Foundry open source PaaS, with its multi-framework, multi-service, multi-cloud model. Cloud Foundry allows developers to provision apps in Java/Spring, Ruby/Rails, Ruby/Sinatra, Javascript/Node, and leverage services like MySQL, MongoDB, Reddis, Postgres and RabbitMQ. It can be used as a public PaaS on CloudFoundry.com and other service providers (ActiveState, AppFog), to create your own private cloud, or on your laptop using the Micro Cloud Foundry VM. Micro Cloud Foundry is a very easy way for developers to start working on their application using their framework of choice and MongoDB, without the need to setup a development environment, and your app is one command line away (vmc push) from deployment to cloudfoundry.com.
using Spring and MongoDB on Cloud FoundryJoshua Long
This talk introduces how to build MongoDB applications with Spring Data MongoDB on Cloud Foundry. Spring Data provides rich support for easily building applications that work on multiple data stores.
From continuous integration servers to blogging systems, we've all seen and used pluggable applications. Writing our own though can be an elusive task. That need not be the case, though, as the Java EE spec contains all you need to do just that. In this session, we'll see how we can leverage the power of CDI to write, for example, easily extensible JSF applications. When the session is over, you'll have all you need to write the next killer app, and, thanks to Java EE, you'll be surprised to see how little work it really is.
Hybernat and structs, spring classes in mumbai
best Hybernat and structs, spring classes in mumbai with job assistance.
our features are:
expert guidance by it industry professionals
lowest fees of 5000
practical exposure to handle projects
well equiped lab
after course resume writing guidance
A Walking Tour of (almost) all of Springdom Joshua Long
this is the deck for my 3+ hour walking tour talk that I give as a workshop at various conferences. This talk introduces practically everything in Spring -- come into the talk unaware of the concepts or frameworks and leave with a working knowledge of all the frameworks, and of all the applications for the technologies.
The next release of the Java Standard Edition is scheduled for the beginning of 2010. In this session we'll review the latest feature list of what's in and what's out of the next version of the JDK.
An update on the latest news around JavaFX including the 1.2 release and the general availability of JavaFX Mobile for Windows Mobile devices.
The Spring Data project provides sophisticated support for NoSQL datastores. The MongoDB module consists of a namespace to easily setup MongoDB access, a template class to provide a nice API to persist and query objects as well as sophisticated support to build repositories accessing entities stored in a MongoDB. The talk will introduce the Spring Data MongoDB support.
Introduction to the Spring Framework:
Generar description
IoC container
Dependency Injection
Beans scope and lifecycle
Autowiring
XML and annotation based configuration
Additional features
Slides from my talk introducing Spring Boot. Unfortunately, this talk is 90% live-coding, so I'll post the relevant video recording here when it's available.
It's been an amazing year for Spring! 2013 saw the Spring family join Pivotal where - along with Cloud Foundry and our data driven technologies (the Pivotal HD Hadoop distribution, the GemFire data grid, and the RabbitMQ message broker) - Spring supports today's application workloads and profiles. Today's Spring embraces Java 8, Scala, Groovy, provides a best-in-class REST stack, supports the open web, mobile applications, big-data applications and batch workloads. Today's Spring is easy to get started with, easy to learn, and embraces conventions over configuration. Today's Spring is part of the Spring.IO platform. Today's Spring is...Pivotal. Join Spring developer advocate Josh Long as he re-introduces you to today's Spring, a Spring you may not have seen yet.
There is a video for this talk, as well: http://www.youtube.com/watch?v=_twyZL_AGCI - Enjoy!
Spring, now part of Pivotal, continues to innovate and support next generation workloads. In this talk, I introduce some of the exciting new Spring technologies supporting websockets, Java 8, Java EE 7, data ingestion and stream processing, NoSQL and Hadoop, and production-ready REST, _and_ I introduce tools designed to expedite ramp-up time for teams who want to deliver, quickly.
This talk introduces Spring's REST stack - Spring MVC, Spring HATEOAS, Spring Data REST, Spring Security OAuth and Spring Social - while refining an API to move higher up the Richardson maturity model
This talk introduces some of the compelling features coming in Spring 3.1, 3.2 and then gazes into the future and looks at some of the powerful new features in the upcoming Spring 4.0 release.
Today's applications don't live in a vacuum - you need to take the applications to where your users are. Let Spring's REST support along with its powerful client-side technology support, help you get there faster.
Integration and Batch Processing on Cloud FoundryJoshua Long
This talk explores the new possibilities for scale by using Spring Integration, Spring Batch and RabbitMQ on Cloud Foundry, the open source PaaS from VMWare.
This talk introduces the role that Spring MVC and REST can play as a service-side endpoint model that can be connected to from mobile, rich, and desktop applications.
Heard about Cloud Foundry? Already a Spring, Grails, Ruby, Node.js, Scala, or generalist programmer looking to understand what Cloud Foundry, the open source PaaS from VMware, means to you? Are you an architect trying to understand where PaaS fits it, and what it brings to the table? If you answered "yes" to any of those questions, then join the experts in this bootcamp to Cloud Foundry.
Spring and Cloud Foundry; a Marriage Made in HeavenJoshua Long
Spring and Cloud Foundry: a Marriage Made in Heaven. This talk introduces how to build Spring applications on top of Cloud Foundry, the open source PaaS from VMware
In this talk, originally presented at JavaZone, in Oslo, Norway, I introduce the broad swath of supported inversion-of-control options in Spring's component model, and then introduce some more advanced features of the component model.
This was a quick (15 minutes!) tour of Cloud Foundry that I gave at JFokus 2012 introducing Cloud Foundry as the answer to the question, "I've got a working web application and Spring made it easy, but where do I host it?"
Want to get to production quickly? RAD tools like Spring Roo, with its support for beautiful, quick UI generation through addons like the Vaadin Roo addon, and Cloud Foundry, which take care of everything under the code, are an ideal combination. In this talk Josh Long, Spring Developer Advocate for SpringSource, introduces the 1-2-3 punch of Cloud Foundry, Roo and Vaadin.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Extending Spring for Custom Usage
1. Tailoring Spring for Custom Usage
• Josh Long, SpringSource, a division of VMware
1
Sunday, February 19, 12
2. About Josh Long (Spring Developer Advocate)
@starbuxman
josh.long@springsource.com
th
s i
is
im
po
rta
nt
!
2
Sunday, February 19, 12
3. Agenda
Explore the value of a framework
Exploit some of the lesser known, but powerful, extension
hooks in the core Spring framework
QA
3
Sunday, February 19, 12
4. Spring’s aim:
bring simplicity to java development
data
web tier integration
batch access
& service tier & mobile
processing / NoSQL /
RIA messaging
Big Data
The Spring framework
the cloud: lightweight traditional
CloudFoundry WebSphere
tc Server
VMForce JBoss AS
Tomcat
Google App Engine WebLogic
Jetty
Amazon Web Services (on legacy versions, too!)
4
Sunday, February 19, 12
5. The Spring ApplicationContext
• Spring Manages the beans you tell it to manage
– use annotations (JSR 250, JSR 330, native)
– XML
– Java configuration
– component scanning
• You can of course use all of them! Mix ‘n match
• All configuration styles tell the ApplicationContext how to
manage your beans
5
Sunday, February 19, 12
6. Spring, a walking tour
• Demos:
– introduce the tool chain
– how to “setup” Spring
– basic dependency injection
• annotations (JSR 250, JSR 330, native)
• xml
• java configuration
6
Sunday, February 19, 12
12. The Open/Closed Principle
"software entities (classes, modules, functions, etc.) should
be open for extension, but closed for modification”
-Bob Martin
12
Sunday, February 19, 12
13. Working with Lots of Beans
• One way to selectively augment beans at the lower level:
– BeanPostProcessor
• are regular beans and are run after the configured beans have
been created, but before the context is finished setting up
– BeanFactoryPostProcessor
• is run before any of the beans definitions are realized
• comes before BPP
• A more natural alternative is Spring’s AOP support
– built on top of AspectJ
– provides a very convenient, powerful way to solve cross
cutting problems
13
Sunday, February 19, 12
14. Spring, a walking tour
• Demos:
– Bean*PostProcessor
– AspectJ
14
Sunday, February 19, 12
15. Life Cycles
• Life Cycles for different folks
– “safe and consistent” - use the interfaces
• InitializingBean, DisposableBean
• correspond to init-method and destroy-method attributes
– Simple and component-centric : use the annotations
• @PostConstruct, @PreDestroy
• correspond to init-method and destroy-method attributes
– More power: SmartLifecycle
• gives you the ability to dynamically start and stop beans in a
certain order as well as to query whether the bean’s been
started or not.
15
Sunday, February 19, 12
16. Scopes
• Spring beans have scopes
– default: singleton
– can be:
• prototype
• HTTP session
• HTTP request
• HTTP application (servlet, basically)
• “step” in Spring batch
• thread-local
• Spring Web Flow “flow” scoped
• Spring Web Flow “conversation scoped”
• Spring Web Flow “view” scoped (in JSF)
• Activiti BPMN2 process-scoped
16
Sunday, February 19, 12
17. Scopes
– Implement o.s.beans.factory.config.Scope
– register the scope with a
o.s.beans.factory.config.CustomScopeConfigurer
public interface Scope {
Object get(String name, ObjectFactory<?> objectFactory);
Object remove(String name);
void registerDestructionCallback(String name, Runnable callback);
Object resolveContextualObject(String key);
String getConversationId();
}
17
Sunday, February 19, 12
18. Scopes
– Implement o.s.beans.factory.config.Scope
– register the scope with a
o.s.beans.factory.config.CustomScopeConfigurer
public interface Scope {
Object get(String name, ObjectFactory<?> objectFactory); map-like lookup
of beans in a
Object remove(String name); given scope
void registerDestructionCallback(String name, Runnable callback);
Object resolveContextualObject(String key);
String getConversationId();
}
17
Sunday, February 19, 12
19. Scopes
– Implement o.s.beans.factory.config.Scope
– register the scope with a
o.s.beans.factory.config.CustomScopeConfigurer
public interface Scope {
Object get(String name, ObjectFactory<?> objectFactory); map-like lookup
of beans in a
Object remove(String name); given scope
void registerDestructionCallback(String name, Runnable callback);
Object resolveContextualObject(String key); well known beans like the
HttpServletRequest ‘request’ for
String getConversationId(); ‘request’ scope
}
17
Sunday, February 19, 12
20. Scopes
– Implement o.s.beans.factory.config.Scope
– register the scope with a
o.s.beans.factory.config.CustomScopeConfigurer
public interface Scope {
Object get(String name, ObjectFactory<?> objectFactory); map-like lookup
of beans in a
Object remove(String name); given scope
void registerDestructionCallback(String name, Runnable callback);
Object resolveContextualObject(String key); well known beans like the
HttpServletRequest ‘request’ for
String getConversationId(); ‘request’ scope
}
null, or storage specific
‘conversation’ ID
17
Sunday, February 19, 12
21. Spring, a walking tour
• Demos:
– life cycle callbacks
– scopes
• using
• creating your own
18
Sunday, February 19, 12
22. Getting Beans from Strange Places
• FactoryBeans
• Spring Expression Language
– convenient way to get at values and inject them
• Spring environment specific beans (profiles)
– introduced in Spring 3.1
– make it easy to conditionally define an object based on
some sort of runtime condition
19
Sunday, February 19, 12
23. Getting Beans from Strange Places
• FactoryBeans
– interface that’s used to provide a reusable definition of how
to create a complicated object with many dependencies
– Related: Java configuration, and builders
• prefer both over FactoryBeans where possible
20
Sunday, February 19, 12
24. Getting Beans from Strange Places
• Spring Expression Language
– convenient way to get at values and inject them
– Andy Clement’s a genius
– like the Unified JSF EL, on steroids
– Can be used in Java, XML
• @Value(“#{ ... }”) or value = “#{ .. }”
21
Sunday, February 19, 12
25. Getting Beans from Strange Places
• Spring profiles
• @Profile(“production”) @Configuration ...
• <beans profile = ‘production’> ... </beans>
– Use System properties or simply specify the active profile on
the environment
– Use ApplicationContextInitializer in web applications
22
Sunday, February 19, 12
26. Getting Beans from Strange Places
• An ApplicationContextInitializer
public interface ApplicationContextInitializer
<C extends ConfigurableApplicationContext> {
void initialize(C applicationContext);
}
23
Sunday, February 19, 12
28. Using Spring’s Resources
• Spring supports out of the box ClassPathResource,
FileResource system, etc.
• Writing your own Resource implementations
public interface Resource extends InputStreamSource {
boolean exists();
boolean isReadable();
boolean isOpen();
URL getURL() throws IOException;
URI getURI() throws IOException;
File getFile() throws IOException;
long contentLength() throws IOException;
long lastModified() throws IOException;
Resource createRelative(String relativePath) throws IOException;
String getFilename();
String getDescription();
}
25
Sunday, February 19, 12
29. Object to XML Marshallers
• Easy to add your own Marshaller (and Unmarshaller)
public interface Marshaller {
boolean supports(Class<?> clazz);
void marshal(Object graph, Result result)
throws IOException, XmlMappingException;
}
26
Sunday, February 19, 12
30. Object to XML Marshallers
• Demos:
– a custom object-to-XML marshaller
27
Sunday, February 19, 12
31. REST
• Spring MVC for the server
@RequestMapping( value = “/crm/customers/{id}” ,
method =HttpMethod.GET)
public @ResponseBody Customer lookupCustomerById(
@PathVariable(“id”) long customerId ) {
...
return customer;
}
28
Sunday, February 19, 12
32. REST
• RestTemplate for the client (Android, SE, web
applications, etc.)
RestTemplate rt = new RestTemplate() ;
String url = “http://mysvc.cloudfoundry.com/crm/customer/{id}”;
Customer customer = rt.getForObject( url, Customer.class, 22);
29
Sunday, February 19, 12
33. REST
• Both need o.s.http.converter.HttpMessageConverters
• Spring supports:
– object-to-XML (JAXB as well as any Spring OXM impl)
– object-to-JSON
– binary data (o.s.resource.Resource references or byte[])
– ATOM/RSS
– images
• Easy to add your own
30
Sunday, February 19, 12
34. Registering a custom HttpMessageConverter
@EnableWebMvc
public class WebConfiguration extends WebMvcConfigurerAdapter {
@Override
public void configureMessageConverters(
List<HttpMessageConverter<?>> converters) {
}
}
31
Sunday, February 19, 12
35. REST
• Demos:
– Writing and using a customer HttpMessageConverter
32
Sunday, February 19, 12
36. Transactions
• Spring supports declarative transaction management
– @EnableTransactionManagement or
<tx:annotation-driven/>
• PlatformTransactionManager implementations used to
manage transactions
– lots of options out of the box:
• AMQP, JMS, JTA, JDBC, JDO, JPA, WebLogic-specific,
WebSphere-specific, OC4J-specific, etc.
33
Sunday, February 19, 12
37. Transactions
• PlatformTransactionManager abstracts the notion
of a transactional “unit of work.”
public interface PlatformTransactionManager {
TransactionStatus getTransaction(TransactionDefinition definition)
throws TransactionException;
void commit(TransactionStatus status) throws TransactionException;
void rollback(TransactionStatus status) throws TransactionException;
}
34
Sunday, February 19, 12
38. Caching
• CacheManager’s maintain Caches.
– CacheManagers are like ‘connections’
– Caches are like regions of a cache
public interface CacheManager { public interface Cache {
Cache getCache(String name);
Collection<String> getCacheNames(); interface ValueWrapper {
} Object get();
}
String getName();
Object getNativeCache();
ValueWrapper get(Object key);
void put(Object key, Object value);
void evict(Object key);
void clear();
}
35
Sunday, February 19, 12
39. Writing a custom View and View Resolver
36
Sunday, February 19, 12
40. Writing a custom View and View Resolver
• Easy to add your own View
– supported views out of the box: FreeMarker, Velocity,
Excel, PDFs, JasperReports, XSLT, Jackson, JSTL, etc.
– Lots of contributions from the open source community:
• Thymeleaf
http://www.thymeleaf.org/
• Mustache by Sean Scanlon
https://github.com/sps/mustache-spring-view
37
Sunday, February 19, 12
41. Writing a custom View and View Resolver
public interface ViewResolver {
View resolveViewName(String viewName, Locale locale)
throws Exception;
}
38
Sunday, February 19, 12
42. Writing a custom View and View Resolver
public interface View {
String RESPONSE_STATUS_ATTRIBUTE =
View.class.getName() + ".responseStatus";
String getContentType();
void render(Map<String, ?> model,
HttpServletRequest request,
HttpServletResponse response) throws Exception;
}
39
Sunday, February 19, 12
43. Writing a custom View and View Resolver
@Bean
public ViewResolver myCustomViewResolver(){
...
} if ‘detectAllViewResolvers’ is
true, all ViewResolvers types
will be registered.
@Bean
public MyCustomViewResolver viewResolver()
{
...
}
40
Sunday, February 19, 12
44. Writing a custom View and View Resolver
@Bean
public ViewResolver myCustomViewResolver(){
...
} if ‘detectAllViewResolvers’ is
true, all ViewResolvers types
will be registered.
@Bean
public MyCustomViewResolver viewResolver()
{
... if ‘detectAllViewResolvers’ is
false, it’ll lookup a bean by a
} well known name
40
Sunday, February 19, 12
45. Writing a custom View and View Resolver
• Demo: writing a custom view/view resolver
41
Sunday, February 19, 12
47. Writing Adapters in Spring Integration
• MessageSource for inbound adapters
• MessageHandler for outbound adapters
MessageSource MessageHandler
43
Sunday, February 19, 12
48. Writing Adapters in Spring Integration
• Inbound channel adapter “receives” message from
external system inward relative to Spring Integration code
package org.springframework.integration.core;
public interface MessageSource<T> {
org.springframework.integration.Message<T> receive();
}
<int:channel id = “in” />
<int:inbound-channel-adapter
channel = “in” ref = “myCustomMessageSource” >
<int:cron-trigger ... />
</int:inbound-channel-adapter>
44
Sunday, February 19, 12
49. Writing Adapters in Spring Integration
• Outbound channel adapter “publishes” message from Spring
Integration outward relative to Spring Integration code
package org.springframework.integration.core;
public interface MessageHandler {
void handleMessage(
org.springframework.integration.Message<?> message)
throws org.springframework.integration.MessagingException;
}
<int:channel id = “out” />
<int:outbound-channel-adapter
channel = “out” ref = “myCustomMessageHandler” />
45
Sunday, February 19, 12
50. Spring Integration File System Adapters
• Spring Integration provides rich file system adapters
– FTP, SFTP, FTPS, files in general
– But... what about SMB/CIFS?
46
Sunday, February 19, 12
51. Writing Readers and Writers in Spring Batch
• ItemReader for inbound adapters
• ItemWriters for outbound adapters
47
Sunday, February 19, 12