<Insert Picture Here>
Coherence 12.1.2 Configuration Enhancements
Part 2: Custom Configuration Namespaces
Brian Oliver
Sen...
2 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
The following is intended to outline our general pr...
The Agenda…
4 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Coherence 12.1.2 Configuration
Enhancements…
• Conf...
Using Objects from
Elsewhere…
6 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Old Style Cache Store Configuration
<cache-config
x...
7 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
My Custom Cache Store Configuration
<cache-config
x...
8 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Objects from elsewhere?
• Use Case:
– Provide an Ob...
9 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Objects from elsewhere?
• For CDI / Spring / Guice ...
10 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Why?
• Perhaps you need…
– A Database Connection f...
Custom Configuration
Namespaces…
12 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Introducing the Spring Namespace
<cache-config
xml...
13 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Introducing the Spring Namespace
<cache-config
xml...
14 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Introducing the Spring Namespace
<cache-config
xml...
15 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Introducing the Spring Namespace
<cache-config
xml...
16 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Why Coherence 12.1.2 Namespaces?
They allow you to...
17 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Why Coherence 12.1.2 Namespaces?
They allow you to...
Build Your Own…
Imagine the possibilities…
Summary
20 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Summary
• Coherence 12.1.2 introduces Custom Names...
21 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Next Part?
• Developing your own Custom Namespaces...
Join the Coherence Community
http://coherence.oracle.com
@OracleCoherence
/OracleCoherence
blogs.oracle.com/OracleCoherenc...
23 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
The proceeding is intended to outline our general ...
<Insert Picture Here>
Coherence 12.1.2 Configuration Enhancements
Part 2: Custom Configuration Namespaces
Brian Oliver
Sen...
Upcoming SlideShare
Loading in …5
×

Coherence Configuration Enhancements - Part 2 - Custom Configuration Namespaces

394 views
315 views

Published on

Watch on YouTube:
http://www.youtube.com/watch?v=VSCLETDNs14

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
394
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • We’ve made some significant investments in Coherence Cache Configuration for 12.1.2This presentation outlines some of the enhancements and flexibility of the new internal infrastructure for improving integration and extension of Coherence, especially by third-parties.
  • Ie: We forced developers to make a Coherence-specific factory that delegated calls onto their own factory/framework. While it’s a solution, it also forces the introduction of “Static” declarations, which is not desirable, especially in container-based applications.
  • Basically you need some internal knowledge to do any non-standard extensions… makes things very difficult if you want to integrate multiple frameworks in a complex application
  • Coherence basically made it hard to use non-Coherence instantiated objects, unless you want to use static declarations!
  • In Coherence 12.1.2, we’ve provided native integration with Spring by introducing a new “pluggable” Namespace configuration for Coherence Cache Configuration files.Basically you can simply specify the Spring “bean” that you’d like to use and Coherence will use that instead of trying to “create” an object for you.
  • In Coherence 12.1.2, we’ve provided native integration with Spring by introducing a new “pluggable” Namespace configuration for Coherence Cache Configuration files.Basically you can simply specify the Spring “bean” that you’d like to use and Coherence will use that instead of trying to “create” an object for you.
  • In Coherence 12.1.2, we’ve provided native integration with Spring by introducing a new “pluggable” Namespace configuration for Coherence Cache Configuration files.Basically you can simply specify the Spring “bean” that you’d like to use and Coherence will use that instead of trying to “create” an object for you.
  • In Coherence 12.1.2, we’ve provided native integration with Spring by introducing a new “pluggable” Namespace configuration for Coherence Cache Configuration files.Basically you can simply specify the Spring “bean” that you’d like to use and Coherence will use that instead of trying to “create” an object for you.
  • Come join this large, vibrant community.We have a pretty significant engagement through various social media channels like twitter and facebook. ….
  • We’ve made some significant investments in Coherence Cache Configuration for 12.1.2This presentation outlines some of the enhancements and flexibility of the new internal infrastructure for improving integration and extension of Coherence, especially by third-parties.
  • Coherence Configuration Enhancements - Part 2 - Custom Configuration Namespaces

    1. 1. <Insert Picture Here> Coherence 12.1.2 Configuration Enhancements Part 2: Custom Configuration Namespaces Brian Oliver Senior Consulting Member of Staff Cloud Application Foundation - Oracle Coherence Oracle Fusion Middleware 12c Cloud Application Foundation Coherence 12.1.2
    2. 2. 2 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.
    3. 3. The Agenda…
    4. 4. 4 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Coherence 12.1.2 Configuration Enhancements… • Configuration Objects from elsewhere? – How to I get an Object from framework X into Coherence? • Introducing the Spring Namespace for Coherence 12.1.2 • Summary
    5. 5. Using Objects from Elsewhere…
    6. 6. 6 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Old Style Cache Store Configuration <cache-config xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="" xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config coherence-cache-config.xsd"> <caching-scheme-mapping> <cache-mapping> <cache-name>dist-*</cache-name> <scheme-name>distributed-scheme</scheme-name> </cache-mapping> </caching-scheme-mapping> <caching-schemes> <distributed-scheme> <scheme-name>distributed-scheme</scheme-name> <service-name>DistributedCache</service-name> <backing-map-scheme> <read-write-backing-map-scheme> <cachestore-scheme> <class-scheme> <class-name>MyOldStyleCacheStore</class-name> </class-scheme> </cachestore-scheme> </read-write-backing-map-scheme> </backing-map-scheme> <autostart>true</autostart> </distributed-scheme> </caching-schemes> </cache-config>
    7. 7. 7 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. My Custom Cache Store Configuration <cache-config xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="" xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config coherence-cache-config.xsd"> <caching-scheme-mapping> <cache-mapping> <cache-name>dist-*</cache-name> <scheme-name>distributed-scheme</scheme-name> </cache-mapping> </caching-scheme-mapping> <caching-schemes> <distributed-scheme> <scheme-name>distributed-scheme</scheme-name> <service-name>DistributedCache</service-name> <backing-map-scheme> <read-write-backing-map-scheme> <cachestore-scheme> MY FRAMEWORK OBJECT HERE!!! </cachestore-scheme> </read-write-backing-map-scheme> </backing-map-scheme> <autostart>true</autostart> </distributed-scheme> </caching-schemes> </cache-config>
    8. 8. 8 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Objects from elsewhere? • Use Case: – Provide an Object to Coherence (not have Coherence build one) – Use an external Container/ Factory / Framework to provide them – Coherence should just use but not instantiate Objects • Historical Solution: – Use <class-scheme> with <class-factory-name> and <method- name>… to specify a static factory public static Object createObject(…);
    9. 9. 9 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Objects from elsewhere? • For CDI / Spring / Guice et al support… – Extend internal DefaultConfigurableCacheFactory class – And… override internally defined instantiateAny(…) method – Or... configure a SpringAwareCacheFactory • Oh no!!! – Can’t easily use both SpringAwareCacheFactory and Incubator… together… Each implementation uses the same technique!
    10. 10. 10 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Why? • Perhaps you need… – A Database Connection from a Database Connection Pool? – A JNDI Resource? – A Transaction Manager? – … are probably provided by another framework – … how to you “get” them into your “Cache Store”? • @Injectables help but we need more!
    11. 11. Custom Configuration Namespaces…
    12. 12. 12 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Introducing the Spring Namespace <cache-config xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="" xmlns:spring="class://com.oracle.coherence.spring.SpringNamespaceHandler" xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config coherence-cache-config.xsd class://com.oracle.coherence.spring.SpringNamespaceHandler coherence-spring-config.xsd"> <spring:bean-factory> <spring:application-context-uri>application-context.xml</spring:application-context-uri> </spring:bean-factory> . . . <caching-schemes> <distributed-scheme> <scheme-name>distributed-scheme</scheme-name> <service-name>DistributedCache</service-name> <backing-map-scheme> <read-write-backing-map-scheme> <cachestore-scheme> <spring:bean> <spring:bean-name>myCacheStoreBean</spring:bean-name> </spring:bean> </cachestore-scheme> </read-write-backing-map-scheme> </backing-map-scheme> <autostart>true</autostart> </distributed-scheme> </caching-schemes> </cache-config>
    13. 13. 13 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Introducing the Spring Namespace <cache-config xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="" xmlns:spring="class://com.oracle.coherence.spring.SpringNamespaceHandler" xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config coherence-cache-config.xsd class://com.oracle.coherence.spring.SpringNamespaceHandler coherence-spring-config.xsd"> <spring:bean-factory> <spring:application-context-uri>application-context.xml</spring:application-context-uri> </spring:bean-factory> . . . <caching-schemes> <distributed-scheme> <scheme-name>distributed-scheme</scheme-name> <service-name>DistributedCache</service-name> <backing-map-scheme> <read-write-backing-map-scheme> <cachestore-scheme> <spring:bean> <spring:bean-name>myCacheStoreBean</spring:bean-name> </spring:bean> </cachestore-scheme> </read-write-backing-map-scheme> </backing-map-scheme> <autostart>true</autostart> </distributed-scheme> </caching-schemes> </cache-config>
    14. 14. 14 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Introducing the Spring Namespace <cache-config xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="" xmlns:spring="class://com.oracle.coherence.spring.SpringNamespaceHandler" xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config coherence-cache-config.xsd class://com.oracle.coherence.spring.SpringNamespaceHandler coherence-spring-config.xsd"> <spring:bean-factory> <spring:application-context-uri>application-context.xml</spring:application-context-uri> </spring:bean-factory> . . . <caching-schemes> <distributed-scheme> <scheme-name>distributed-scheme</scheme-name> <service-name>DistributedCache</service-name> <backing-map-scheme> <read-write-backing-map-scheme> <cachestore-scheme> <spring:bean> <spring:bean-name>myCacheStoreBean</spring:bean-name> </spring:bean> </cachestore-scheme> </read-write-backing-map-scheme> </backing-map-scheme> <autostart>true</autostart> </distributed-scheme> </caching-schemes> </cache-config>
    15. 15. 15 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Introducing the Spring Namespace <cache-config xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="" xmlns:spring="class://com.oracle.coherence.spring.SpringNamespaceHandler" xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config coherence-cache-config.xsd class://com.oracle.coherence.spring.SpringNamespaceHandler coherence-spring-config.xsd"> <spring:bean-factory> <spring:application-context-uri>application-context.xml</spring:application-context-uri> </spring:bean-factory> . . . <caching-schemes> <distributed-scheme> <scheme-name>distributed-scheme</scheme-name> <service-name>DistributedCache</service-name> <backing-map-scheme> <read-write-backing-map-scheme> <cachestore-scheme> <spring:bean> <spring:bean-name>myCacheStoreBean</spring:bean-name> </spring:bean> </cachestore-scheme> </read-write-backing-map-scheme> </backing-map-scheme> <autostart>true</autostart> </distributed-scheme> </caching-schemes> </cache-config>
    16. 16. 16 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Why Coherence 12.1.2 Namespaces? They allow you to… • Replace Standard Coherence Configurations – eg: Replace the <class-scheme> with <spring:bean> • Refine Coherence Configuration Objects – eg: Change a defined Scheme or Cache Mapping • Define new Coherence Configuration Objects – eg: Define a new Cache/Scheme/Mapping on-the-fly
    17. 17. 17 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Why Coherence 12.1.2 Namespaces? They allow you to… • Define new Resources for @Injectables – eg: Define a Database Connection Pool in the Resource Registry • Define new “features” for Coherence – eg: Define a new type of Cache or Service (or anything else) • Or.. Completely replace Coherence Configurations – eg: Make up your own way to configure Coherence
    18. 18. Build Your Own… Imagine the possibilities…
    19. 19. Summary
    20. 20. 20 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Summary • Coherence 12.1.2 introduces Custom Namespace Configurations – Allows integration of third-party frameworks directly into Coherence – Allows independent development of extensions – Allows customization of Coherence
    21. 21. 21 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Next Part? • Developing your own Custom Namespaces – The Coherence Configuration Framework – The Coherence Configuration Model
    22. 22. Join the Coherence Community http://coherence.oracle.com @OracleCoherence /OracleCoherence blogs.oracle.com/OracleCoherence Group: Oracle Coherence Users /OracleCoherence coherence.oracle.com/display/CSIG Coherence Special Interest Group
    23. 23. 23 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. The proceeding is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.
    24. 24. <Insert Picture Here> Coherence 12.1.2 Configuration Enhancements Part 2: Custom Configuration Namespaces Brian Oliver Senior Consulting Member of Staff Cloud Application Foundation - Oracle Coherence Oracle Fusion Middleware 12c Cloud Application Foundation Coherence 12.1.2

    ×