Spring and Coherence Recipes

Size: px
Start display at page:

Download "Spring and Coherence Recipes"

Transcription

1 Spring and Coherence Recipes David Whitmarsh, Phil Wheeler December 4, 2013

2 Outline 1 IoC Frameworks 2 Problems with Spring and Coherence 3 ApplicationContexts 4 LifeCycle 5 Bean Definition and Injection

3 Outline 1 IoC Frameworks 2 Problems with Spring and Coherence 3 ApplicationContexts 4 LifeCycle 5 Bean Definition and Injection

4 Benefits of IoC Frameworks Pluggability Testability Configurability

5 SpringAwareCacheFactory, Coherence Spring Integration SpringAware- CacheFactory Spring Integration project Version to Uses incubator? Yes/No/Maybe No Inject beans in cache-config Yes Yes Set placeholders as bean properties Yes Yes Pre-instantiate ApplicationContext Yes No

6 Outline 1 IoC Frameworks 2 Problems with Spring and Coherence 3 ApplicationContexts 4 LifeCycle 5 Bean Definition and Injection

7 Static Initialisation Coherence cluster startup conditions ill-defined Unit testing is harder No way to access <class-scheme> objects

8 Coherence Node Startup start cluster service read operational config

9 Coherence Node Startup start cluster service read operational config create CacheFactory read cache config

10 Coherence Node Startup start cluster service read operational config create CacheFactory read cache config instantiate objects

11 Coherence Node Startup start cluster service read operational config create CacheFactory read cache config instantiate objects start services, threads

12 Coherence Node Startup start cluster service read operational config create CacheFactory read cache config instantiate objects start services, threads partitioning (storage only)

13 Coherence Node Startup start cluster service read operational config create CacheFactory read cache config instantiate objects start services, threads partitioning (storage only) receive data

14 Coherence Node Startup start cluster service read operational config create CacheFactory read cache config instantiate objects start services, threads partitioning (storage only) receive data instantiate cache

15 Coherence Node Startup start cluster service read operational config create CacheFactory read cache config instantiate objects start services, threads partitioning (storage only) receive data instantiate cache instantiate objects

16 Circular Dependencies

17 Circular Dependencies Application

18 Circular Dependencies Application getcache() Coherence

19 Circular Dependencies Application getcache() Coherence read config

20 Circular Dependencies Application getcache() Coherence read config start distributed service

21 Circular Dependencies Application getcache() Coherence read config start distributed service create application context read config

22 Circular Dependencies Application getcache() Coherence read config start distributed service create application context read config instantiate bean: cache store bean: cache

23 Circular Dependencies Application getcache() Coherence read config start distributed service create application context read config instantiate bean: cache store bean: cache

24

25 Who s in charge? Spring and Coherence both try to control instantiation

26 Who s in charge? Spring and Coherence both try to control instantiation Which one is designed as an IoC framework?

27 Who s in charge? Spring and Coherence both try to control instantiation Which one is designed as an IoC framework? Keep the framework in control

28 Solutions? lazy instantiation? lazy initialisation? explicit dependencies? lifecycle? separate contexts

29 Outline 1 IoC Frameworks 2 Problems with Spring and Coherence 3 ApplicationContexts 4 LifeCycle 5 Bean Definition and Injection

30 Objects used by Coherence Beans needed by Coherence during startup Beans needed as caches are repartitioned May implement Coherence interfaces May not call Coherence APIs during instantiation or initialisation CoherenceBeanContext - these can and should be created before starting Coherence

31 Objects that use Coherence Beans that reference Coherence Application logic JMS readers, message processing, etc Embedded web server May call Coherence APIs during instantiation or initialisation May be empty or absent for storage, proxy, etc nodes ApplicationBeanContext - these cannot be created until Coherence is available

32 CommonObjects Beans reference by Coherence and Application Common resources DataSources JMS Connections etc May not call Coherence APIs during instantiation or initialisation Parent context of CoherenceBeanContext and ApplicationBeanContext CommonBeanContext

33 Contexts & initialisation order commonbeancontext depends depends applicationbeancontext coherencebeancontext depends depends Coherence

34 Contexts & initialisation order commonbeancontext 1 depends depends applicationbeancontext coherencebeancontext depends depends Coherence x order of initialisation

35 Contexts & initialisation order commonbeancontext 1 depends depends applicationbeancontext coherencebeancontext 2 depends depends Coherence x order of initialisation

36 Contexts & initialisation order commonbeancontext 1 depends depends applicationbeancontext coherencebeancontext 2 depends depends Coherence 3 x order of initialisation

37 Contexts & initialisation order commonbeancontext 1 depends depends 4 applicationbeancontext coherencebeancontext 2 depends depends Coherence 3 x order of initialisation

38 Prevent Premature Instantiation public class ValidatingCacheFactoryBuilder extends DefaultCacheFactoryBuilder { private static boolean buildok = public ConfigurableCacheFactory getconfigurablecachefactory( ClassLoader loader) { if (!buildok) { throw new IllegalStateException("Attempt to build a cache factory too early"); } return super.getconfigurablecachefactory(loader); } } static void enablebuild() { buildok = true; }

39 Define the contexts Use a master context: mastercontext.xml <?xml version="1.0" encoding="utf-8"?> <beans> <bean id="commonbeancontext" class="org.springframework.context.support.classpathxmlapplicationcontext"> <constructor-arg><value>utilbeancontext.xml</value></constructor-arg> </bean>

40 Define the contexts Use a master context: mastercontext.xml <?xml version="1.0" encoding="utf-8"?> <beans> <bean id="commonbeancontext" class="org.springframework.context.support.classpathxmlapplicationcontext"> <constructor-arg><value>utilbeancontext.xml</value></constructor-arg> </bean> <bean id="coherencebeancontext" class="org.springframework.context.support.classpathxmlapplicationcontext"> <constructor-arg> <list><value>coherencebeancontext.xml</value></list> </constructor-arg> <constructor-arg> <ref bean="commonbeancontext"/> </constructor-arg> </bean>

41 Define the contexts Use a master context: mastercontext.xml <?xml version="1.0" encoding="utf-8"?> <beans> <bean id="commonbeancontext" class="org.springframework.context.support.classpathxmlapplicationcontext"> <constructor-arg><value>utilbeancontext.xml</value></constructor-arg> </bean> <bean id="coherencebeancontext" class="org.springframework.context.support.classpathxmlapplicationcontext"> <constructor-arg> <list><value>coherencebeancontext.xml</value></list> </constructor-arg> <constructor-arg> <ref bean="commonbeancontext"/> </constructor-arg> </bean> <bean id="applicationbeancontext" lazy-init="true" class="org.springframework.context.support.classpathxmlapplicationcontext"> <constructor-arg> <list><value>applicationbeancontext.xml</value></list> </constructor-arg> <constructor-arg> <ref bean="commonbeancontext"/> </constructor-arg> </bean> </beans>

42 Access a Bean public class BeanLocator { private static ApplicationContext applicationcontexts = new ClassPathXmlApplicationContext( "classpath:mastercontext.xml"); public static BeanFactory getcontext(string contextname) { return (BeanFactory) applicationcontexts.getbean(contextname); } } public static Object getbean(string contextname, String beanname) { return getcontext(contextname).getbean(beanname); }

43 Reference a Bean <cachestore-scheme> <class-scheme> <class-factory-name> org.cohbook.configuration.spring.beanlocator </class-factory-name> <method-name>getbean</method-name> <init-params> <init-param> <param-value>coherencebeancontext</param-value> </init-param> <init-param> <param-value>examplecacheloader</param-value> </init-param> </init-params> </class-scheme> </cachestore-scheme>

44 Starting a Node public static void main(string[] args) { } loadcoherenceproperties(); BeanLocator.getContext("coherenceBeanContext"); CacheFactory.ensureCluster(); BeanFactory bf = BeanLocator.getContext("applicationBeanContext"); // Application logic

45 Outline 1 IoC Frameworks 2 Problems with Spring and Coherence 3 ApplicationContexts 4 LifeCycle 5 Bean Definition and Injection

46 Circular dependency Problem: What if a bean that Coherence depends on, also depends on Coherence? e.g. A Controllable CacheStore that references a replicated control cache to determine whether to persist.

47 Circular Dependency 2 commonbeancontext depends depends applicationbeancontext coherencebeancontext depends depends Coherence

48 Circular Dependency 2 commonbeancontext depends depends applicationbeancontext coherencebeancontext depends depends depends Coherence

49 Using Spring SmartLifeCycle After Coherence beans instantiated and initialised Permit Coherence to start Start Coherence Implement start method in beans with circular dependencies

50 Permit Coherence to Start public static class BuilderLifeCycle implements SmartLifecycle { public static final int BEFORE_CLUSTER_PHASE = 100; public static final int CLUSTER_PHASE = 200; public static final int AFTER_CLUSTER_PHASE = 300; public void start() { ValidatingCacheFactoryBuilder.enableBuild(); CacheFactory.ensureCluster(); } public int getphase() { return CLUSTER_PHASE; } } public boolean isautostartup() { return true; }...

51 Starting a Node with SmartLifecycle... In the Coherence beans context... <bean class="...builderlifecycle"/>

52 Starting a Node with SmartLifecycle... In the Coherence beans context... <bean class="...builderlifecycle"/>... The main method... public static void main(string[] args) { } loadcoherenceproperties(); BeanLocator.getContext("coherenceBeanContext").start(); BeanFactory bf = BeanLocator.getContext("applicationBeanContext"); // Application logic

53 Outline 1 IoC Frameworks 2 Problems with Spring and Coherence 3 ApplicationContexts 4 LifeCycle 5 Bean Definition and Injection

54 Recipe: Avoid static Coherence Methods <bean id="cachefactory" class="com.tangosol.net.cachefactory" factory-method="getconfigurablecachefactory"/>

55 Recipe: Avoid static Coherence Methods <bean id="cachefactory" class="com.tangosol.net.cachefactory" factory-method="getconfigurablecachefactory"/> <bean id="examplecache" factory-bean="cachefactory" factory-method="ensurecache"> <constructor-arg value="test"/> <constructor-arg><null/></constructor-arg> </bean>

56 Recipe: Avoid static Coherence Methods <bean id="cachefactory" class="com.tangosol.net.cachefactory" factory-method="getconfigurablecachefactory"/> <bean id="examplecache" factory-bean="cachefactory" factory-method="ensurecache"> <constructor-arg value="test"/> <constructor-arg><null/></constructor-arg> </bean> <bean id="distributedservice" factory-bean="cachefactory" factory-method="ensureservice"> <constructor-arg value="exampledistributedservice"/> </bean>

57 Recipe: Avoid static Coherence Methods <bean id="cachefactory" class="com.tangosol.net.cachefactory" factory-method="getconfigurablecachefactory"/> <bean id="examplecache" factory-bean="cachefactory" factory-method="ensurecache"> <constructor-arg value="test"/> <constructor-arg><null/></constructor-arg> </bean> <bean id="distributedservice" factory-bean="cachefactory" factory-method="ensureservice"> <constructor-arg value="exampledistributedservice"/> </bean> <bean id="cluster" class="com.tangosol.net.cachefactory" factory-method="getcluster"/>

58 Configuration Macro 1 <cachestore-scheme> <class-scheme> <class-factory-name> org.cohbook.configuration.spring.beanlocator </class-factory-name> <method-name>getbean</method-name> <init-params> <init-param><param-value>coherencebeancontext</param-value></init-param> <init-param><param-value>dynamiccacheloader</param-value></init-param> <init-param><param-value>cachename</param-value></init-param> <init-param><param-value>{cache-name}</param-value></init-param> </init-params> </class-scheme> </cachestore-scheme>

59 Configuration Macro 2 public class BeanLocator {... public static Object getbean( String contextname, String beanname, String propertyname, Object propertyvalue) { } if (propertyvalue instanceof Value) { propertyvalue = ((Value)propertyValue).get(); } Object bean = getcontext(contextname).getbean(beanname); PropertyAccessor accessor = PropertyAccessorFactory.forBeanPropertyAccess(bean); accessor.setpropertyvalue(propertyname, propertyvalue); return bean; }

60 Configuration Macro 3 <bean id="dynamiccacheloader" class="org.cohbook.configuration.spring.dynamiccacheloader" scope="prototype"> <constructor-arg> <ref bean="exampledatasource"/> </constructor-arg> </bean>

61 Injection In Grid Objects 1 Transported objects may need references to beans Invocable EntryProcessor Filter Aggregator Cache keys/values (if you really must) How and when do we inject these values?

62 Injection In Grid Objects 1 Transported objects may need references to beans Invocable EntryProcessor Filter Aggregator Cache keys/values (if you really must) How and when do we inject these values? During deserialisation!

63 Injection In Grid Objects 2 public class SpringSerializer implements Serializer { private final Serializer delegate; private final String applicationcontextname;

64 Injection In Grid Objects 2 public class SpringSerializer implements Serializer { private final Serializer delegate; private final String applicationcontextname; public SpringSerializer(String applicationcontextname, Serializer delegate) { this.applicationcontextname = applicationcontextname; this.delegate = delegate; }

65 Injection In Grid Objects 2 public class SpringSerializer implements Serializer { private final Serializer delegate; private final String applicationcontextname; public SpringSerializer(String applicationcontextname, Serializer delegate) { this.applicationcontextname = applicationcontextname; this.delegate = delegate; } private AutowireCapableBeanFactory getbeanfactory() { return BeanLocator.getContext(applicationContextName).getAutowireCapableBeanFactory(); }

66 Injection In Grid Objects 2 public class SpringSerializer implements Serializer { private final Serializer delegate; private final String applicationcontextname; public SpringSerializer(String applicationcontextname, Serializer delegate) { this.applicationcontextname = applicationcontextname; this.delegate = delegate; } private AutowireCapableBeanFactory getbeanfactory() { return BeanLocator.getContext(applicationContextName).getAutowireCapableBeanFactory(); public Object deserialize(bufferinput in) throws IOException { Object result = delegate.deserialize(in); getbeanfactory().autowirebeanproperties(result, AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE, false); } return result;

67 Injection In Grid Objects 2 public class SpringSerializer implements Serializer { private final Serializer delegate; private final String applicationcontextname; public SpringSerializer(String applicationcontextname, Serializer delegate) { this.applicationcontextname = applicationcontextname; this.delegate = delegate; } private AutowireCapableBeanFactory getbeanfactory() { return BeanLocator.getContext(applicationContextName).getAutowireCapableBeanFactory(); public Object deserialize(bufferinput in) throws IOException { Object result = delegate.deserialize(in); getbeanfactory().autowirebeanproperties(result, AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE, false); } return result; public void serialize(bufferoutput bufferoutput, Object obj) throws IOException { delegate.serialize(bufferoutput, obj); }

68 Recipe: Spring JMX Exporter public class SpringCoherenceJMXExporter extends MBeanExporter {

69 Recipe: Spring JMX Exporter public class SpringCoherenceJMXExporter extends MBeanExporter protected void doregister(object mbean, ObjectName objectname) throws JMXException {

70 Recipe: Spring JMX Exporter public class SpringCoherenceJMXExporter extends MBeanExporter protected void doregister(object mbean, ObjectName objectname) throws JMXException { Registry registry = CacheFactory.ensureCluster().getManagement();

71 Recipe: Spring JMX Exporter public class SpringCoherenceJMXExporter extends MBeanExporter protected void doregister(object mbean, ObjectName objectname) throws JMXException { Registry registry = CacheFactory.ensureCluster().getManagement(); String sname = registry.ensureglobalname(objectname.getcanonicalname());

72 Recipe: Spring JMX Exporter public class SpringCoherenceJMXExporter extends MBeanExporter protected void doregister(object mbean, ObjectName objectname) throws JMXException { Registry registry = CacheFactory.ensureCluster().getManagement(); String sname = registry.ensureglobalname(objectname.getcanonicalname()); } } registry.register(sname, mbean);

73 Finally...

74 Luncheon!

Spring Certification Questions

Spring Certification Questions Spring Certification Questions Free on-line spring certification test available here. Enrol now to get full access to a set of four Spring Mock Exams. Enrolling now you will get access to 200 unique spring

More information

<Insert Picture Here>

<Insert Picture Here> Caching Schemes & Accessing Data Lesson 2 Objectives After completing this lesson, you should be able to: Describe the different caching schemes that Coherence

More information

Oracle Fusion Middleware 12c

Oracle Fusion Middleware 12c Oracle Fusion Middleware 12c Cloud Application Foundation Coherence 12.1.2 Coherence 12.1.2 Configuration Enhancements (or Building Your Own Services) Brian Oliver Senior Consulting

More information

Dan Hayes. October 27, 2005

Dan Hayes. October 27, 2005 Spring Introduction and Dependency Injection Dan Hayes October 27, 2005 Agenda Introduction to Spring The BeanFactory The Application Context Inversion of Control Bean Lifecyle and Callbacks Introduction

More information

Spring Interview Questions

Spring Interview Questions Spring Interview Questions By Srinivas Short description: Spring Interview Questions for the Developers. @2016 Attune World Wide All right reserved. www.attuneww.com Contents Contents 1. Preface 1.1. About

More information

Spring JavaConfig. Reference Documentation. version 1.0-m Rod Johnson, Costin Leau. Copyright (c) Interface21

Spring JavaConfig. Reference Documentation. version 1.0-m Rod Johnson, Costin Leau. Copyright (c) Interface21 Spring JavaConfig Reference Documentation version 1.0-m2 2007.05.08 Rod Johnson, Costin Leau Copyright (c) 2005-2007 Interface21 Copies of this document may be made for your own use and for distribution

More information

Spring Soup with OC4J and MBeans

Spring Soup with OC4J and MBeans Spring Soup with OC4J and MBeans Steve Button 4/27/2007 The Spring Framework includes support for dynamically exposing Spring Beans as managed resources (MBeans) in a JMX environment. Exposing Spring Beans

More information

Spring. and. the IoC Container

Spring. and. the IoC Container Spring and the IoC Container Menu Recap - The IoC container The ApplicationContext Bean scopes Bean lifecycle customization Internationalization Application events / listeners Resources Factory beans Spring

More information

spring - 4 주차 Bean Life Cycle

spring - 4 주차 Bean Life Cycle spring - 4 주차 Bean Life Cycle Bean Life Cycle? spring - 2주차 ApplicationContext에서 Factory를활용하여설정값을셋팅하고, Bean을등록하고, 의존성주입을통한학습을진행했다. 그렇다면 Bean 객체는 IoC Container 안에서어떻게생성부터소멸까지의단계를진행할까? Spring 이없던시절에는? Servlet

More information

Introduction to the Spring Framework

Introduction to the Spring Framework Introduction to the Spring Framework Elements of the Spring Framework everything you need Professional programming component based design Inversion of Control principles Creating Components in Spring Dependency

More information

Modular Java Applications with Spring, dm Server and OSGi

Modular Java Applications with Spring, dm Server and OSGi Modular Java Applications with Spring, dm Server and OSGi Copyright 2005-2008 SpringSource. Copying, publishing or distributing without express written permission is prohibit Topics in this session Introduction

More information

A Lightweight Java Container

A Lightweight Java Container Introducing Spring A Lightweight Java Container Sample Content garth@ggilmour.com Introducing Spring Spring was born from dislike of JEE JEE can be viewed as cumbersome, awkward and intrusive Especially

More information

Singleton. Computer Science and Engineering College of Engineering The Ohio State University. Lecture 29

Singleton. Computer Science and Engineering College of Engineering The Ohio State University. Lecture 29 Singleton Computer Science and Engineering College of Engineering The Ohio State University Lecture 29 Preventing Instantiation Default (zero-argument) constructor Provided only if there is no explicit

More information

CONFIGURING A SPRING DEVELOPMENT ENVIRONMENT

CONFIGURING A SPRING DEVELOPMENT ENVIRONMENT Module 5 CONFIGURING A SPRING DEVELOPMENT ENVIRONMENT The Spring Framework > The Spring framework (spring.io) is a comprehensive Java SE/Java EE application framework > Spring addresses many aspects of

More information

SPRING MOCK TEST SPRING MOCK TEST I

SPRING MOCK TEST SPRING MOCK TEST I http://www.tutorialspoint.com SPRING MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to Spring Framework. You can download these sample mock tests at

More information

Metadata driven component development. using Beanlet

Metadata driven component development. using Beanlet Metadata driven component development using Beanlet What is metadata driven component development? It s all about POJOs and IoC Use Plain Old Java Objects to focus on business logic, and business logic

More information

JBossCache: an In-Memory Replicated Transactional Cache

JBossCache: an In-Memory Replicated Transactional Cache JBossCache: an In-Memory Replicated Transactional Cache Bela Ban (bela@jboss.org) - Lead JGroups / JBossCache Ben Wang (bwang@jboss.org) - Lead JBossCacheAOP JBoss Inc http://www.jboss.org 09/22/04 1 Goal

More information

Tapestry. Code less, deliver more. Rayland Jeans

Tapestry. Code less, deliver more. Rayland Jeans Tapestry Code less, deliver more. Rayland Jeans What is Apache Tapestry? Apache Tapestry is an open-source framework designed to create scalable web applications in Java. Tapestry allows developers to

More information

CS/B.TECH/CSE(New)/SEM-5/CS-504D/ OBJECT ORIENTED PROGRAMMING. Time Allotted : 3 Hours Full Marks : 70 GROUP A. (Multiple Choice Type Question)

CS/B.TECH/CSE(New)/SEM-5/CS-504D/ OBJECT ORIENTED PROGRAMMING. Time Allotted : 3 Hours Full Marks : 70 GROUP A. (Multiple Choice Type Question) CS/B.TECH/CSE(New)/SEM-5/CS-504D/2013-14 2013 OBJECT ORIENTED PROGRAMMING Time Allotted : 3 Hours Full Marks : 70 The figures in the margin indicate full marks. Candidates are required to give their answers

More information

Introducing the Spring framework

Introducing the Spring framework Chair of Software Engineering Languages in Depth Series: Java Programming Prof. Dr. Bertrand Meyer Introducing the Spring framework Marco Piccioni Yet another framework? It addresses areas that other frameworks

More information

Coherence An Introduction. Shaun Smith Principal Product Manager

Coherence An Introduction. Shaun Smith Principal Product Manager Coherence An Introduction Shaun Smith Principal Product Manager About Me Product Manager for Oracle TopLink Involved with object-relational and object-xml mapping technology for over 10 years. Co-Lead

More information

Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub

Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub Lebanese University Faculty of Science Computer Science BS Degree Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub 2 Crash Course in JAVA Classes A Java

More information

Standardize caching in Java. Introduction to JCache and In-Memory data grid solutions

Standardize caching in Java. Introduction to JCache and In-Memory data grid solutions Standardize caching in Java Introduction to JCache and In-Memory data grid solutions Agenda 1. What is caching? 2. JCache overview 3. Quick walk through providers 4. C2MON highlights What is caching? What

More information

SPEL INJECTION. Alexandr (WebR0ck) Romanov

SPEL INJECTION. Alexandr (WebR0ck) Romanov SPEL INJECTION Alexandr (WebR0ck) Romanov SpEL? The Spring Expression Language (SpEL for short) is expression language that supports querying and manipulating an object graph at runtime. For what? To associate

More information

Binghamton University. CS-140 Fall Problem Solving. Creating a class from scratch

Binghamton University. CS-140 Fall Problem Solving. Creating a class from scratch Problem Solving Creating a class from scratch 1 Recipe for Writing a Class 1. Write the class boilerplate stuff 2. Declare Fields 3. Write Creator(s) 4. Write accessor methods 5. Write mutator methods

More information

Configuration for Microprofile. Mark Struberg, Emily Jiang, John D. Ament

Configuration for Microprofile. Mark Struberg, Emily Jiang, John D. Ament Configuration for Microprofile Mark Struberg, Emily Jiang, John D. Ament 1.2, December 21, 2017 Table of Contents Microprofile Config.........................................................................

More information

Coherence & WebLogic Server integration with Coherence (Active Cache)

Coherence & WebLogic Server integration with Coherence (Active Cache) WebLogic Innovation Seminar Coherence & WebLogic Server integration with Coherence (Active Cache) Duško Vukmanović FMW Principal Sales Consultant Agenda Coherence Overview WebLogic

More information

JBoss World 2009 Marius Bogoevici

JBoss World 2009 Marius Bogoevici 1 Spring on JBoss Marius Bogoevici Senior Software Engineer, Red Hat September 2 nd, 2009 2 About the presenter: Marius Bogoevici - mariusb@redhat.com Senior Software Engineer at Red Hat Lead for Snowdrop,

More information

Spring Framework. Christoph Pickl

Spring Framework. Christoph Pickl Spring Framework Christoph Pickl agenda 1. short introduction 2. basic declaration 3. medieval times 4. advanced features 5. demo short introduction common tool stack Log4j Maven Spring Code Checkstyle

More information

Oracle Coherence 3.6: Share and Manage Data in Clusters

Oracle Coherence 3.6: Share and Manage Data in Clusters Oracle Coherence 3.6: Share and Manage Data in Clusters Volume I Student Guide D66791GC10 Edition 1.0 November 2010 D69716 Authors Mark Lindros Copyright 2010, Oracle and/or its affiliates. All rights

More information

<Insert Picture Here>

<Insert Picture Here> Introduction to Data Grids & Oracle Coherence Lesson 1 Objectives After completing this lesson, you should be able to: Describe Data Grid drivers Describe Oracle

More information

Core Capabilities Part 3

Core Capabilities Part 3 2008 coreservlets.com The Spring Framework: Core Capabilities Part 3 Originals of Slides and Source Code for Examples: http://courses.coreservlets.com/course-materials/spring.html Customized Java EE Training:

More information

Dependency Injection. Kenneth M. Anderson University of Colorado, Boulder Lecture 30 CSCI 4448/ /08/11

Dependency Injection. Kenneth M. Anderson University of Colorado, Boulder Lecture 30 CSCI 4448/ /08/11 Dependency Injection Kenneth M. Anderson University of Colorado, Boulder Lecture 30 CSCI 4448/5448 12/08/11 1 Goals of the Lecture Introduce the topic of dependency injection See examples using the Spring

More information

Configuration for Microprofile. Mark Struberg, Emily Jiang, John D. Ament 1.1,

Configuration for Microprofile. Mark Struberg, Emily Jiang, John D. Ament 1.1, Configuration for Microprofile Mark Struberg, Emily Jiang, John D. Ament 1.1, 2017-08-31 Table of Contents Microprofile Config......................................................................... 2

More information

The Singleton Pattern. Design Patterns In Java Bob Tarr

The Singleton Pattern. Design Patterns In Java Bob Tarr The Singleton Pattern Intent Ensure a class only has one instance, and provide a global point of access to it Motivation Sometimes we want just a single instance of a class to exist in the system For example,

More information

Refactoring HelloWorld Application

Refactoring HelloWorld Application Refactoring HelloWorld Application 1 Theme of this Presentation How a simple HelloWorld application can be refactored in order to achieve the agility (and testability)? How can I change a certain part

More information

Fast Track. Evaluation Copy. to Spring 3.x. on Eclipse/Tomcat. LearningPatterns, Inc. Courseware. Student Guide

Fast Track. Evaluation Copy. to Spring 3.x. on Eclipse/Tomcat. LearningPatterns, Inc. Courseware. Student Guide Fast Track to Spring 3.x on Eclipse/Tomcat LearningPatterns, Inc. Courseware Student Guide This material is copyrighted by LearningPatterns Inc. This content and shall not be reproduced, edited, or distributed,

More information

/* Copyright 2012 Robert C. Ilardi

/* Copyright 2012 Robert C. Ilardi / Copyright 2012 Robert C. Ilardi Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

More information

Part 2. can be held on-site at your organization.

Part 2. can be held on-site at your organization. 2008 coreservlets.com Spring JDBC Part 2 Originals of Slides and Source Code for Examples: http://courses.coreservlets.com/course-materials/spring.html Customized Java EE Training: http://courses.coreservlets.com/

More information

Inversion of Control (IoC) and Dependency Injection (DI) in Spring

Inversion of Control (IoC) and Dependency Injection (DI) in Spring April 2018, IPT Course Introduction to Spring 5 Inversion of Control (IoC) and Dependency Injection (DI) in Spring Trayan Iliev tiliev@iproduct.org http://iproduct.org Copyright 2003-2018 IPT - Intellectual

More information

Never Write A main() Again!

Never Write A main() Again! Agenda Never Write A main() Again! Harnessing The Power Of The JBoss MicroContainer Dimitris Andreadis Core Developer JBoss Inc. About the MicroContainer Motivation Micro* History Hijacking JMX Extending

More information

SEP-13: unify high- and low-level user applications in YARN and standalone

SEP-13: unify high- and low-level user applications in YARN and standalone SEP-13: unify high- and low-level user applications in YARN and standalone Status Current state: IMPLEMENTED Discussion thread:http://mail-archives.apache.org/mod_mbox/samza-dev/201807.mbox/% 3CCAFvExu3_nmaSQTy=5SypzwmqGA7S9+Txa=QkyERQ+hT3JZ29ig@mail.gmail.com%3E

More information

Oracle Insurance Policy Administration

Oracle Insurance Policy Administration Oracle Insurance Policy Administration Coherence Version 10.2.2.0 Document Part Number: E69382-01 December, 2015 Copyright 2009, 2015, Oracle and/or its affiliates. All rights reserved. Trademark Notice

More information

Object Oriented Programming is a programming method that combines: Advantage of Object Oriented Programming

Object Oriented Programming is a programming method that combines: Advantage of Object Oriented Programming Overview of OOP Object Oriented Programming is a programming method that combines: a) Data b) Instructions for processing that data into a self-sufficient object that can be used within a program or in

More information

Techniques for Building J2EE Applications

Techniques for Building J2EE Applications Techniques for Building J2EE Applications Dave Landers BEA Systems, Inc. dave.landers@4dv.net dave.landers@bea.com Why are we Here? Discuss issues encountered with J2EE Application deployment Based on

More information

Call: JSP Spring Hibernate Webservice Course Content:35-40hours Course Outline

Call: JSP Spring Hibernate Webservice Course Content:35-40hours Course Outline JSP Spring Hibernate Webservice Course Content:35-40hours Course Outline Advanced Java Database Programming JDBC overview SQL- Structured Query Language JDBC Programming Concepts Query Execution Scrollable

More information

<Insert Picture Here> Oracle Application Cache Solution: Coherence

<Insert Picture Here> Oracle Application Cache Solution: Coherence Oracle Application Cache Solution: Coherence 黃開印 Kevin Huang Principal Sales Consultant Outline Oracle Data Grid Solution for Application Caching Use Cases Coherence Features Summary

More information

Fast Track to Spring 3 and Spring MVC / Web Flow

Fast Track to Spring 3 and Spring MVC / Web Flow Duration: 5 days Fast Track to Spring 3 and Spring MVC / Web Flow Description Spring is a lightweight Java framework for building enterprise applications. Its Core module allows you to manage the lifecycle

More information

Business Logic and Spring Framework

Business Logic and Spring Framework Business Logic and Spring Framework Petr Křemen petr.kremen@fel.cvut.cz Winter Term 2017 Petr Křemen (petr.kremen@fel.cvut.cz) Business Logic and Spring Framework Winter Term 2017 1 / 32 Contents 1 Business

More information

Configuration for Microprofile. Mark Struberg, Emily Jiang 0.3,

Configuration for Microprofile. Mark Struberg, Emily Jiang 0.3, Configuration for Microprofile Mark Struberg, Emily Jiang 0.3, 2017-01-18 Table of Contents Microprofile Config......................................................................... 2 Architecture................................................................................

More information

Introduction to Spring Framework: Hibernate, Web MVC & REST

Introduction to Spring Framework: Hibernate, Web MVC & REST Introduction to Spring Framework: Hibernate, Web MVC & REST Course domain: Software Engineering Number of modules: 1 Duration of the course: 50 hours Sofia, 2017 Copyright 2003-2017 IPT Intellectual Products

More information

Introduction to Spring Framework: Hibernate, Spring MVC & REST

Introduction to Spring Framework: Hibernate, Spring MVC & REST Introduction to Spring Framework: Hibernate, Spring MVC & REST Training domain: Software Engineering Number of modules: 1 Duration of the training: 36 hours Sofia, 2017 Copyright 2003-2017 IPT Intellectual

More information

Using Apache Felix: OSGi best practices. Marcel Offermans luminis

Using Apache Felix: OSGi best practices. Marcel Offermans luminis Using Apache Felix: OSGi best practices Marcel Offermans luminis 1 About me Marcel Offermans Software architect at luminis Consultancy & product development Over 4 years of experience with OSGi Committer

More information

David Blevins State of OpenEJB 3.0

David Blevins State of OpenEJB 3.0 David Blevins dblevins@visi.com State of OpenEJB 3.0 OpenEJB 1 History OpenEJB 2 EJB 1.1 Only CMP with Castor JDO Embeddable Tomcat Integration Standalone Capable EJB 2.1 Certified CMP with TranQL IoC

More information

Spring JavaConfig Reference Guide

Spring JavaConfig Reference Guide Spring JavaConfig Reference Guide Version 1.0.0.m4-SNAPSHOT Copyright 2005-2008 Rod Johnson, Costin Leau, Chris Beams Copies of this document may be made for your own use and for distribution to others,

More information

Java Finite State Machine Framework

Java Finite State Machine Framework 1. Requirements JDK 1.4.x (http://java.sun.com/j2se/1.4.2/download.html) 2. Overview Java Finite State Machine Framework contains classes that define FSM meta-model, allows to manipulate with model, compile

More information

Class, Variable, Constructor, Object, Method Questions

Class, Variable, Constructor, Object, Method Questions Class, Variable, Constructor, Object, Method Questions http://www.wideskills.com/java-interview-questions/java-classes-andobjects-interview-questions https://www.careerride.com/java-objects-classes-methods.aspx

More information

Just Spring Madhusudhan Konda

Just Spring Madhusudhan Konda Just Spring Just Spring Madhusudhan Konda Beijing Cambridge Farnham Köln Sebastopol Tokyo Just Spring by Madhusudhan Konda Copyright 2011 Madhusudhan Konda. All rights reserved. Printed in the United

More information

Ray Tsang Developer Advocate Google Cloud Platform

Ray Tsang Developer Advocate Google Cloud Platform Ray Tsang Developer Advocate Google Cloud Platform @saturnism +RayTsang Ray Tsang Developer Architect Traveler Photographer flickr.com/saturnism Writing a Kubernetes Autoscaler Kubernetes API - In Depth

More information

Chapter 13. Hibernate with Spring

Chapter 13. Hibernate with Spring Chapter 13. Hibernate with Spring What Is Spring? Writing a Data Access Object (DAO) Creating an Application Context Putting It All Together 1 / 24 What is Spring? The Spring Framework is an Inversion

More information

Adding New Features to the CS 5625 Framework. Pramook Khungurn

Adding New Features to the CS 5625 Framework. Pramook Khungurn Adding New Features to the CS 5625 Framework Pramook Khungurn Understanding the CS 5625 framework Features Lazy loading of data loads data only when needed Caching of data no loading same file twice GPU

More information

ADVANCED JAVA TRAINING IN BANGALORE

ADVANCED JAVA TRAINING IN BANGALORE ADVANCED JAVA TRAINING IN BANGALORE TIB ACADEMY #5/3 BEML LAYOUT, VARATHUR MAIN ROAD KUNDALAHALLI GATE, BANGALORE 560066 PH: +91-9513332301/2302 www.traininginbangalore.com 2EE Training Syllabus Java EE

More information

Implementing a Web Service p. 110 Implementing a Web Service Client p. 114 Summary p. 117 Introduction to Entity Beans p. 119 Persistence Concepts p.

Implementing a Web Service p. 110 Implementing a Web Service Client p. 114 Summary p. 117 Introduction to Entity Beans p. 119 Persistence Concepts p. Acknowledgments p. xvi Introduction p. xvii Overview p. 1 Overview p. 3 The Motivation for Enterprise JavaBeans p. 4 Component Architectures p. 7 Divide and Conquer to the Extreme with Reusable Services

More information

public static boolean isoutside(int min, int max, int value)

public static boolean isoutside(int min, int max, int value) See the 2 APIs attached at the end of this worksheet. 1. Methods: Javadoc Complete the Javadoc comments for the following two methods from the API: (a) / @param @param @param @return @pre. / public static

More information

Oracle Complex Event Processing

Oracle Complex Event Processing Oracle Complex Event Processing Reference Guide Release 3.0 July 2008 Alpha/Beta Draft Oracle Complex Event Processing Reference Guide, Release 3.0 Copyright 2007, 2008, Oracle and/or its affiliates. All

More information

The Singleton Pattern. Design Patterns In Java Bob Tarr

The Singleton Pattern. Design Patterns In Java Bob Tarr The Singleton Pattern Intent Ensure a class only has one instance, and provide a global point of access to it Motivation Sometimes we want just a single instance of a class to exist in the system For example,

More information

JAVA. 1. Introduction to JAVA

JAVA. 1. Introduction to JAVA JAVA 1. Introduction to JAVA History of Java Difference between Java and other programming languages. Features of Java Working of Java Language Fundamentals o Tokens o Identifiers o Literals o Keywords

More information

Chair of Software Engineering. Languages in Depth Series: Java Programming. Prof. Dr. Bertrand Meyer. Exercise Session 10

Chair of Software Engineering. Languages in Depth Series: Java Programming. Prof. Dr. Bertrand Meyer. Exercise Session 10 Chair of Software Engineering Languages in Depth Series: Java Programming Prof. Dr. Bertrand Meyer Exercise Session 10 Today s Exercise Session Pattern of the Day Proxy Quizzes 2 Proxy Pattern Structural

More information

Design Patterns. Structural Patterns. Oliver Haase

Design Patterns. Structural Patterns. Oliver Haase Design Patterns Structural Patterns Oliver Haase 1 Purpose Structural patterns describe how to compose classes (incl. interfaces) and objects to get larger structures. Class based structural patterns use

More information

JBoss Remoting. Version beta. January 12, 2005

JBoss Remoting. Version beta. January 12, 2005 JBoss Remoting Version 1.0.1 beta January 12, 2005 What is JBoss Remoting? The purpose of JBoss Remoting is to provide a single API for most network based invocations and related service that uses pluggable

More information

Program #3 - Airport Simulation

Program #3 - Airport Simulation CSCI212 Program #3 - Airport Simulation Write a simulation for a small airport that has one runway. There will be a queue of planes waiting to land and a queue of planes waiting to take off. Only one plane

More information

Polymorphism. return a.doublevalue() + b.doublevalue();

Polymorphism. return a.doublevalue() + b.doublevalue(); Outline Class hierarchy and inheritance Method overriding or overloading, polymorphism Abstract classes Casting and instanceof/getclass Class Object Exception class hierarchy Some Reminders Interfaces

More information

Spring Dependency Injection & Java 5

Spring Dependency Injection & Java 5 Spring Dependency Injection & Java 5 Alef Arendsen Introductions Alef Arendsen Spring committer since 2003 Now Principal at SpringSource (NL) 2 3 Imagine A big pile of car parts Workers running around

More information

Call: Core&Advanced Java Springframeworks Course Content:35-40hours Course Outline

Call: Core&Advanced Java Springframeworks Course Content:35-40hours Course Outline Core&Advanced Java Springframeworks Course Content:35-40hours Course Outline Object-Oriented Programming (OOP) concepts Introduction Abstraction Encapsulation Inheritance Polymorphism Getting started with

More information

Spring Dynamic Modules

Spring Dynamic Modules June 10-11, 2008 Berlin, Germany Spring Dynamic Modules by Example Martin Lippert Gerd Wütherich Agenda Spring Overview of the Spring framework A short example Spring Dynamic Modules Overview of Spring

More information

Chapter 4 Defining Classes I

Chapter 4 Defining Classes I Chapter 4 Defining Classes I This chapter introduces the idea that students can create their own classes and therefore their own objects. Introduced is the idea of methods and instance variables as the

More information

2.0 Technical Description of the new features

2.0 Technical Description of the new features Generic JMS Resource Adapter Test Specification Sonia Liu Version 1.0 Date last updated 11/02/2006 1.0 Introduction 1.1 Overview The Generic JMS Resource Adapter version 1.7 (GRA 1.7) helps JMS providers

More information

Introflection. Dave Landers BEA Systems, Inc.

Introflection. Dave Landers BEA Systems, Inc. Introflection Dave Landers BEA Systems, Inc. dave.landers@bea.com Agenda What is Introflection? Primary Classes and Objects Loading Classes Creating Objects Invoking Methods Java Beans Proxy What is Introflection?

More information

Dynamic Datasource Routing

Dynamic Datasource Routing Dynamic Datasource Routing Example dynamic-datasource-routing can be browsed at https://github.com/apache/tomee/tree/master/examples/dynamic-datasourcerouting The TomEE dynamic datasource api aims to allow

More information

Desarrollo de Aplicaciones Web Empresariales con Spring 4

Desarrollo de Aplicaciones Web Empresariales con Spring 4 Desarrollo de Aplicaciones Web Empresariales con Spring 4 Referencia JJD 296 Duración (horas) 30 Última actualización 8 marzo 2018 Modalidades Presencial, OpenClass, a medida Introducción Over the years,

More information

Concepts: business logic and middleware

Concepts: business logic and middleware Concepts: business logic and middleware Business logic (Dalykinis funkcionalumas) models real life business objects is part of functional requirements, creates essential added value that customer is willing

More information

Object Oriented Programming. What is this Object? Using the Object s Slots

Object Oriented Programming. What is this Object? Using the Object s Slots 1 Object Oriented Programming Chapter 2 introduces Object Oriented Programming. OOP is a relatively new approach to programming which supports the creation of new data types and operations to manipulate

More information

CISC-124. Passing Parameters. A Java method cannot change the value of any of the arguments passed to its parameters.

CISC-124. Passing Parameters. A Java method cannot change the value of any of the arguments passed to its parameters. CISC-124 20180215 These notes are intended to summarize and clarify some of the topics that have been covered recently in class. The posted code samples also have extensive explanations of the material.

More information

/ / JAVA TRAINING

/ / JAVA TRAINING www.tekclasses.com +91-8970005497/+91-7411642061 info@tekclasses.com / contact@tekclasses.com JAVA TRAINING If you are looking for JAVA Training, then Tek Classes is the right place to get the knowledge.

More information

Strecks Java 5 Extensions

Strecks Java 5 Extensions Strecks Java 5 Extensions Presented by Phil Zoio, Realsolve Solutions March 17, 2006 (1) Agenda Background and introduction The Details Form validation Data binding and conversion Actions Interceptors

More information

Advanced Web Systems 5- Designing Complex Applications. -The IOC Pattern -Light Weight Container. A. Venturini

Advanced Web Systems 5- Designing Complex Applications. -The IOC Pattern -Light Weight Container. A. Venturini Advanced Web Systems 5- Designing Complex Applications -The IOC Pattern -Light Weight Container A. Venturini Introduction Design and maintainability issues The Inversion of Control Pattern How IoC solves

More information

엄현상 (Eom, Hyeonsang) School of Computer Science and Engineering Seoul National University COPYRIGHTS 2017 EOM, HYEONSANG ALL RIGHTS RESERVED

엄현상 (Eom, Hyeonsang) School of Computer Science and Engineering Seoul National University COPYRIGHTS 2017 EOM, HYEONSANG ALL RIGHTS RESERVED 엄현상 (Eom, Hyeonsang) School of Computer Science and Engineering Seoul National University COPYRIGHTS 2017 EOM, HYEONSANG ALL RIGHTS RESERVED Outline - Questionnaire Results - Java Overview - Java Examples

More information

Design patterns using Spring and Guice

Design patterns using Spring and Guice Design patterns using Spring and Guice Dhanji R. Prasanna MANNING contents 1 Dependency 2 Time preface xv acknowledgments xvii about this book xix about the cover illustration xxii injection: what s all

More information

JBoss Remoting Guide

JBoss Remoting Guide JBoss Remoting Guide JBoss Remoting version 2.5.4.SP5 November 9, 2013 Copyright 2013 JBoss by Red Hat. Table of Contents 1. Overview...1 1.1. What is JBoss Remoting?...1 1.2. Features...1 1.3. How to

More information

SPRING FRAMEWORK ARCHITECTURE

SPRING FRAMEWORK ARCHITECTURE SPRING - QUICK GUIDE http://www.tutorialspoint.com/spring/spring_quick_guide.htm Copyright tutorialspoint.com Spring is the most popular application development framework for enterprise Java. Millions

More information

1. A Remote Proxy helps to hide all the low-level details of exception handling from the proxy Client.

1. A Remote Proxy helps to hide all the low-level details of exception handling from the proxy Client. UML diagrams for the design patterns mentioned in the exam are provided at the end of the exam. For some questions the details of the diagram structure will be useful. For other questions, the details

More information

A Monitor package for Java

A Monitor package for Java A Monitor package for Java To implement true Hoare-style monitors with a Signal and Wait discipline, I ve created the monitor package for Java. Threads in Java Java provides an easy to use Thread class.

More information

Configuration Provider: A Pattern for Configuring Threaded Applications

Configuration Provider: A Pattern for Configuring Threaded Applications Configuration Provider: A Pattern for Configuring Threaded Applications Klaus Meffert 1 and Ilka Philippow 2 Technical University Ilmenau plop@klaus-meffert.de 1, ilka.philippow@tu-ilmena.de 2 Abstract

More information

JSR377 What's up and what's next. Andres Almiray Canoo Engineering AG

JSR377 What's up and what's next. Andres Almiray Canoo Engineering AG JSR377 What's up and what's next Andres Almiray - @aalmiray Canoo Engineering AG PREVIOUS ATTEMPTS JSR 193 Client Side Container JSR 296 Swing Application Framework JSR 295 Beans Binding JSR 296 had the

More information

XTP, Scalability and Data Grids An Introduction to Coherence

XTP, Scalability and Data Grids An Introduction to Coherence XTP, Scalability and Data Grids An Introduction to Coherence Tom Stenström Principal Sales Consultant Oracle Presentation Overview The challenge of scalability The Data Grid What

More information

Lab 11. A sample of the class is:

Lab 11. A sample of the class is: Lab 11 Lesson 11-2: Exercise 1 Exercise 2 A sample of the class is: public class List // Methods public void store(int item) values[length] = item; length++; public void printlist() // Post: If the list

More information

Enterprise Development

Enterprise Development Enterprise Development with What needs to be done to run JEE like applications inside Karaf? @anierbeck - Karaf PMC, Apache Member - OPS4j Pax Web Project Lead - Senior IT Consultant @codecentric - co-author

More information

UNIT V PROCESSING YOUR DATA WITH MAPREDUCE Syllabus

UNIT V PROCESSING YOUR DATA WITH MAPREDUCE Syllabus UNIT V PROCESSING YOUR DATA WITH MAPREDUCE Syllabus Getting to know MapReduce MapReduce Execution Pipeline Runtime Coordination and Task Management MapReduce Application Hadoop Word Count Implementation.

More information

Object Interaction. Object Interaction. Introduction. Object Interaction vs. RPCs (2)

Object Interaction. Object Interaction. Introduction. Object Interaction vs. RPCs (2) Introduction Objective To support interoperability and portability of distributed OO applications by provision of enabling technology Object interaction vs RPC Java Remote Method Invocation (RMI) RMI Registry

More information

Exam Questions 1Z0-895

Exam Questions 1Z0-895 Exam Questions 1Z0-895 Java Platform, Enterprise Edition 6 Enterprise JavaBeans Developer Certified Expert Exam https://www.2passeasy.com/dumps/1z0-895/ QUESTION NO: 1 A developer needs to deliver a large-scale

More information