# IGNITE-261 Cleanup API: WIP scalar.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/7007771c Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/7007771c Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/7007771c Branch: refs/heads/ignite-239 Commit: 7007771c58d376fe3ea1e7ae9cb9465fe98a3b96 Parents: da1fa4e Author: AKuznetsov <akuznet...@gridgain.com> Authored: Mon Feb 16 16:51:22 2015 +0700 Committer: AKuznetsov <akuznet...@gridgain.com> Committed: Mon Feb 16 16:51:22 2015 +0700 ---------------------------------------------------------------------- .../starschema/CacheStarSchemaExample.java | 11 +- .../examples/ScalarCacheAffinityExample1.scala | 6 +- .../examples/ScalarCacheAffinityExample2.scala | 4 +- .../ScalarCacheAffinitySimpleExample.scala | 10 +- .../scalar/examples/ScalarCacheExample.scala | 51 +- .../ScalarCachePopularNumbersExample.scala | 4 +- .../examples/ScalarCacheQueryExample.scala | 16 +- .../examples/ScalarSnowflakeSchemaExample.scala | 45 +- .../ignite/scalar/ScalarConversions.scala | 47 +- .../pimps/ScalarCacheConfigurationHelper.java | 33 + .../ignite/scalar/pimps/ScalarCachePimp.scala | 1933 ++++++++++++++++- .../pimps/ScalarCacheProjectionPimp.scala | 2004 ------------------ .../scala/org/apache/ignite/scalar/scalar.scala | 4 +- .../scalar/tests/ScalarCacheQueriesSpec.scala | 13 +- 14 files changed, 2022 insertions(+), 2159 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7007771c/examples/src/main/java/org/apache/ignite/examples/datagrid/starschema/CacheStarSchemaExample.java ---------------------------------------------------------------------- diff --git a/examples/src/main/java/org/apache/ignite/examples/datagrid/starschema/CacheStarSchemaExample.java b/examples/src/main/java/org/apache/ignite/examples/datagrid/starschema/CacheStarSchemaExample.java index 9cdb70f..e8eb2be 100644 --- a/examples/src/main/java/org/apache/ignite/examples/datagrid/starschema/CacheStarSchemaExample.java +++ b/examples/src/main/java/org/apache/ignite/examples/datagrid/starschema/CacheStarSchemaExample.java @@ -70,9 +70,8 @@ public class CacheStarSchemaExample { * Executes example. * * @param args Command line arguments, none required. - * @throws IgniteCheckedException If example execution failed. */ - public static void main(String[] args) throws IgniteCheckedException { + public static void main(String[] args) { Ignite ignite = Ignition.start("examples/config/example-cache.xml"); System.out.println(); @@ -147,10 +146,8 @@ public class CacheStarSchemaExample { * Query all purchases made at a specific store. This query uses cross-cache joins * between {@link DimStore} objects stored in {@code 'replicated'} cache and * {@link FactPurchase} objects stored in {@code 'partitioned'} cache. - * - * @throws IgniteException If failed. */ - private static void queryStorePurchases() throws IgniteCheckedException { + private static void queryStorePurchases() { IgniteCache<Integer, FactPurchase> factCache = Ignition.ignite().jcache(PARTITIONED_CACHE_NAME); // All purchases for store1. @@ -173,7 +170,7 @@ public class CacheStarSchemaExample { * * @throws IgniteException If failed. */ - private static void queryProductPurchases() throws IgniteCheckedException { + private static void queryProductPurchases() { IgniteCache<Integer, FactPurchase> factCache = Ignition.ignite().jcache(PARTITIONED_CACHE_NAME); // All purchases for certain product made at store2. @@ -213,7 +210,7 @@ public class CacheStarSchemaExample { /** * Gets random value from given collection. * - * @param c Input collection (no {@code null} and not emtpy). + * @param c Input collection (no {@code null} and not empty). * @return Random value from the input collection. */ @SuppressWarnings("UnusedDeclaration") http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7007771c/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheAffinityExample1.scala ---------------------------------------------------------------------- diff --git a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheAffinityExample1.scala b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheAffinityExample1.scala index d932d39..7f6e3ee 100644 --- a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheAffinityExample1.scala +++ b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheAffinityExample1.scala @@ -17,8 +17,6 @@ package org.apache.ignite.scalar.examples -import java.util.concurrent.Callable - import org.apache.ignite._ import org.apache.ignite.cache.affinity.CacheAffinityKeyMapped import org.apache.ignite.lang.IgniteCallable @@ -53,7 +51,7 @@ object ScalarCacheAffinityExample1 { def main(args: Array[String]) { scalar(CONFIG) { // Clean up caches on all nodes before run. - cache$(NAME).get.clear(0) + cache$(NAME).get.clear() var keys = Seq.empty[String] @@ -83,7 +81,7 @@ object ScalarCacheAffinityExample1 { "Error" } else - cache.get.peek(key) + cache.get.localPeek(key) } }, null http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7007771c/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheAffinityExample2.scala ---------------------------------------------------------------------- diff --git a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheAffinityExample2.scala b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheAffinityExample2.scala index 891869d..d1d9cdd 100644 --- a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheAffinityExample2.scala +++ b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheAffinityExample2.scala @@ -47,7 +47,7 @@ object ScalarCacheAffinityExample2 { def main(args: Array[String]) { scalar(CONFIG) { // Clean up caches on all nodes before run. - cache$(NAME).get.clear(0) + cache$(NAME).get.clear() var keys = Seq.empty[String] @@ -77,7 +77,7 @@ object ScalarCacheAffinityExample2 { ", cacheName=" + NAME + ']').^^ // Check cache without loading the value. - mappedKeys.foreach(key => println(">>> Peeked at: " + cache.get.peek(key))) + mappedKeys.foreach(key => println(">>> Peeked at: " + cache.get.localPeek(key))) } }, null) } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7007771c/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheAffinitySimpleExample.scala ---------------------------------------------------------------------- diff --git a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheAffinitySimpleExample.scala b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheAffinitySimpleExample.scala index a13252f..eff4fda 100644 --- a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheAffinitySimpleExample.scala +++ b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheAffinitySimpleExample.scala @@ -17,7 +17,7 @@ package org.apache.ignite.scalar.examples -import org.apache.ignite.cache.GridCache +import org.apache.ignite.IgniteCache import org.apache.ignite.scalar.scalar import org.apache.ignite.scalar.scalar._ @@ -43,7 +43,7 @@ object ScalarCacheAffinitySimpleExample extends App { private val NAME = "partitioned" /** Type alias. */ - type Cache = GridCache[Int, String] + type Cache = IgniteCache[Int, String] /* * Note that in case of `LOCAL` configuration, @@ -51,9 +51,9 @@ object ScalarCacheAffinitySimpleExample extends App { */ scalar("examples/config/example-cache.xml") { // Clean up caches on all nodes before run. - cache$(NAME).get.clear(0) + cache$(NAME).get.clear() - val c = ignite$.cache[Int, String](NAME) + val c = ignite$.jcache[Int, String](NAME) populate(c) visit(c) @@ -68,7 +68,7 @@ object ScalarCacheAffinitySimpleExample extends App { private def visit(c: Cache) { (0 until KEY_CNT).foreach(i => ignite$.compute().affinityRun(NAME, i, - () => println("Co-located [key= " + i + ", value=" + c.peek(i) + ']')) + () => println("Co-located [key= " + i + ", value=" + c.localPeek(i) + ']')) ) } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7007771c/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheExample.scala ---------------------------------------------------------------------- diff --git a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheExample.scala b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheExample.scala index 8df7dd8..a263350 100644 --- a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheExample.scala +++ b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheExample.scala @@ -17,7 +17,7 @@ package org.apache.ignite.scalar.examples -import javax.cache.Cache +import org.apache.ignite.cache.CachePeekMode import org.apache.ignite.events.Event import org.apache.ignite.events.EventType._ @@ -38,23 +38,22 @@ object ScalarCacheExample extends App { /** Name of cache specified in spring configuration. */ private val NAME = "partitioned" + private val peekModes = Array.empty[CachePeekMode] + scalar("examples/config/example-cache.xml") { // Clean up caches on all nodes before run. - cache$(NAME).get.clear(0) + cache$(NAME).get.clear() registerListener() basicOperations() - twoViewsOneCache() } /** * Demos basic cache operations. */ def basicOperations() { - // Create cache predicate-based projection (all values > 30). - val c = cache$(NAME).get.viewByType(classOf[String], classOf[Int]). - viewByKv((k: String, v: Int) => v < 30) + val c = cache$[String, Int](NAME).get // Add few values. c += (1.toString -> 1) @@ -64,7 +63,6 @@ object ScalarCacheExample extends App { c += (1.toString -> 11) c += (2.toString -> 22) - // These should be filtered out by projection. c += (1.toString -> 31) c += (2.toString -> 32) c += ((2.toString, 32)) @@ -75,17 +73,6 @@ object ScalarCacheExample extends App { // Put one more value. c += (3.toString -> 11) - val gt10 = (e: Cache.Entry[String, Int]) => e.getValue() > 10 - - // These should pass the predicate. - // Note that the predicate checks current state of entry, not the new value. - c += (3.toString -> 9, gt10) - - // These should not pass the predicate - // because value less then 10 was put on previous step. - c += (3.toString -> 8, gt10) - c += (3.toString -> 12, gt10) - // Get with option... c.opt(44.toString) match { case Some(v) => sys.error("Should never happen.") @@ -93,33 +80,7 @@ object ScalarCacheExample extends App { } // Print all values. - c.values foreach println - } - - /** - * Demos basic type features. - */ - def twoViewsOneCache() { - // Create two typed views on the same cache. - val view1 = cache$(NAME).get.viewByType(classOf[String], classOf[Int]) - val view2 = cache$(NAME).get.viewByType(classOf[Int], classOf[String]) - - view1 += ("key1" -> 1) - view1 += ("key2" -> 2) - - // Attempt to update with predicate (will not update due to predicate failing). - view1 += ("key2" -> 3, (k: String, v: Int) => v != 2) - - view2 += (1 -> "val1") - view2 += (2 -> "val2") - - println("Values in view1:") - view1.values foreach println - println("view1 size is: " + view1.size) - - println("Values in view2:") - view2.values foreach println - println("view2 size is: " + view2.size) + c.iterator() foreach println } /** http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7007771c/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCachePopularNumbersExample.scala ---------------------------------------------------------------------- diff --git a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCachePopularNumbersExample.scala b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCachePopularNumbersExample.scala index e376bda..69fe0ed 100644 --- a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCachePopularNumbersExample.scala +++ b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCachePopularNumbersExample.scala @@ -53,7 +53,7 @@ object ScalarCachePopularNumbersExample extends App { scalar("examples/config/example-cache.xml") { // Clean up caches on all nodes before run. - cache$(CACHE_NAME).get.clear(0) + cache$(CACHE_NAME).get.clear() println() println(">>> Cache popular numbers example started.") @@ -75,7 +75,7 @@ object ScalarCachePopularNumbersExample extends App { query(POPULAR_NUMBERS_CNT) // Clean up caches on all nodes after run. - ignite$.cluster().forCacheNodes(CACHE_NAME).bcastRun(() => ignite$.cache(CACHE_NAME).clear(), null) + ignite$.cluster().forCacheNodes(CACHE_NAME).bcastRun(() => ignite$.jcache(CACHE_NAME).clear(), null) } finally { popularNumbersQryTimer.cancel() http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7007771c/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheQueryExample.scala ---------------------------------------------------------------------- diff --git a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheQueryExample.scala b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheQueryExample.scala index 95d42c9..44b0deb 100644 --- a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheQueryExample.scala +++ b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheQueryExample.scala @@ -19,11 +19,9 @@ package org.apache.ignite.scalar.examples import java.util._ -import org.apache.ignite.Ignite +import org.apache.ignite.{IgniteCache, Ignite} import org.apache.ignite.cache.CacheMode._ -import org.apache.ignite.cache.CacheProjection import org.apache.ignite.cache.affinity.CacheAffinityKey -import org.apache.ignite.internal.processors.cache.CacheFlag import org.apache.ignite.scalar.scalar import org.apache.ignite.scalar.scalar._ @@ -64,7 +62,10 @@ object ScalarCacheQueryExample { // Using distributed queries for partitioned cache and local queries for replicated cache. // Since in replicated caches data is available on all nodes, including local one, // it is enough to just query the local node. - val prj = if (cache$(CACHE_NAME).get.configuration.getCacheMode == PARTITIONED) ignite.cluster() else ignite.cluster().forLocal() + val prj = if (cache$[Any, Any](CACHE_NAME).get.configuration().getCacheMode == PARTITIONED) + ignite.cluster().forRemotes() + else + ignite.cluster().forLocal() // Example for SQL-based querying employees based on salary ranges. // Gets all persons with 'salary > 1000'. @@ -104,17 +105,14 @@ object ScalarCacheQueryExample { * * @return Cache to use. */ - private def mkCache[K, V]: CacheProjection[K, V] = { - // Using distributed queries. - cache$[K, V](CACHE_NAME).get.flagsOn(CacheFlag.SYNC_COMMIT) - } + private def mkCache[K, V]: IgniteCache[K, V] = cache$[K, V](CACHE_NAME).get /** * Populates cache with test data. */ private def initialize() { // Clean up caches on all nodes before run. - cache$(CACHE_NAME).get.clear(0) + cache$(CACHE_NAME).get.clear() // Organization cache projection. val orgCache = mkCache[UUID, Organization] http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7007771c/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarSnowflakeSchemaExample.scala ---------------------------------------------------------------------- diff --git a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarSnowflakeSchemaExample.scala b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarSnowflakeSchemaExample.scala index b5ea3a3..723f3be 100644 --- a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarSnowflakeSchemaExample.scala +++ b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarSnowflakeSchemaExample.scala @@ -17,15 +17,13 @@ package org.apache.ignite.scalar.examples -import java.util -import java.util.ConcurrentModificationException - -import org.apache.ignite.cache.CacheProjection +import org.apache.ignite.Ignition import org.apache.ignite.scalar.scalar import org.apache.ignite.scalar.scalar._ + import org.jdk8.backport.ThreadLocalRandom8 -import scala.collection.JavaConversions._ +import java.util.ConcurrentModificationException /** * <a href="http://en.wikipedia.org/wiki/Snowflake_schema">Snowflake Schema</a> is a logical @@ -68,8 +66,8 @@ object ScalarSnowflakeSchemaExample { def main(args: Array[String]) { scalar("examples/config/example-cache.xml") { // Clean up caches on all nodes before run. - cache$(REPL_CACHE_NAME).get.clear(0) - cache$(PART_CACHE_NAME).get.clear(0) + cache$(REPL_CACHE_NAME).get.clear() + cache$(PART_CACHE_NAME).get.clear() populateDimensions() populateFacts() @@ -127,7 +125,7 @@ object ScalarSnowflakeSchemaExample { * `FactPurchase` objects stored in `partitioned` cache. */ def queryStorePurchases() { - val factCache = ignite$.cache[Int, FactPurchase](PART_CACHE_NAME) + val factCache = ignite$.jcache[Int, FactPurchase](PART_CACHE_NAME) val storePurchases = factCache.sql( "from \"replicated\".DimStore, \"partitioned\".FactPurchase " + @@ -143,25 +141,24 @@ object ScalarSnowflakeSchemaExample { * stored in `partitioned` cache. */ private def queryProductPurchases() { - val dimCache = ignite$.cache[Int, Object](REPL_CACHE_NAME) - val factCache = ignite$.cache[Int, FactPurchase](PART_CACHE_NAME) - - val prods: CacheProjection[Int, DimProduct] = dimCache.viewByType(classOf[Int], classOf[DimProduct]) + val factCache = Ignition.ignite.jcache(PART_CACHE_NAME) - val p1: DimProduct = rand(prods.values) - val p2: DimProduct = rand(prods.values) - val p3: DimProduct = rand(prods.values) + // All purchases for certain product made at store2. + // ================================================= + val p1: DimProduct = rand(dataProduct.values) + val p2: DimProduct = rand(dataProduct.values) + val p3: DimProduct = rand(dataProduct.values) println("IDs of products [p1=" + p1.id + ", p2=" + p2.id + ", p3=" + p3.id + ']') - val prodPurchases = factCache.sql( - "from \"replicated\".DimStore, \"replicated\".DimProduct, \"partitioned\".FactPurchase " + - "where DimStore.id=FactPurchase.storeId and " + - "DimProduct.id=FactPurchase.productId and " + - "DimStore.name=? and DimProduct.id in(?, ?, ?)", - "Store2", p1.id, p2.id, p3.id) - - printQueryResults("All purchases made at store2 for 3 specific products:", prodPurchases) +// val prodPurchases = factCache.sql( +// "from \"replicated\".DimStore, \"replicated\".DimProduct, \"partitioned\".FactPurchase " + +// "where DimStore.id=FactPurchase.storeId and " + +// "DimProduct.id=FactPurchase.productId and " + +// "DimStore.name=? and DimProduct.id in(?, ?, ?)", +// "Store2", p1.id, p2.id, p3.id) +// +// printQueryResults("All purchases made at store2 for 3 specific products:", prodPurchases) } /** @@ -183,7 +180,7 @@ object ScalarSnowflakeSchemaExample { * @param c Input collection (no `null` and not emtpy). * @return Random value from the input collection. */ - def rand[T](c: util.Collection[_ <: T]): T = { + def rand[T](c: Iterable[_ <: T]): T = { val n: Int = ThreadLocalRandom8.current.nextInt(c.size) var i: Int = 0 http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7007771c/modules/scalar/src/main/scala/org/apache/ignite/scalar/ScalarConversions.scala ---------------------------------------------------------------------- diff --git a/modules/scalar/src/main/scala/org/apache/ignite/scalar/ScalarConversions.scala b/modules/scalar/src/main/scala/org/apache/ignite/scalar/ScalarConversions.scala index 452793a..d9565af 100644 --- a/modules/scalar/src/main/scala/org/apache/ignite/scalar/ScalarConversions.scala +++ b/modules/scalar/src/main/scala/org/apache/ignite/scalar/ScalarConversions.scala @@ -17,10 +17,7 @@ package org.apache.ignite.scalar -import javax.cache.Cache - -import org.apache.ignite.Ignite -import org.apache.ignite.cache._ +import org.apache.ignite.{IgniteCache, Ignite} import org.apache.ignite.cluster.ClusterGroup import org.apache.ignite.compute.ComputeJob import org.apache.ignite.internal.util.lang._ @@ -30,7 +27,6 @@ import org.apache.ignite.scalar.pimps._ import org.jetbrains.annotations._ import java.util.TimerTask -import java.util.concurrent._ import scala.collection._ import scala.util.control.Breaks._ @@ -115,13 +111,13 @@ trait ScalarConversions { def toScalaSeq[A](@Nullable i: java.lang.Iterable[A]): Seq[A] = toScalaSeq(i, (e: A) => e) - /** - * Helper converter from Java collection to Scala sequence. - * - * @param c Java collection to convert. - */ - def toScalaSeq[A](@Nullable c: java.util.Collection[A]): Seq[A] = - toScalaSeq(c, (e: A) => e) +// /** +// * Helper converter from Java collection to Scala sequence. +// * +// * @param c Java collection to convert. +// */ +// def toScalaSeq[A](@Nullable c: java.util.Collection[A]): Seq[A] = +// toScalaSeq(c, (e: A) => e) /** * Helper converter from Java entry collection to Scala iterable of pair. @@ -266,15 +262,14 @@ trait ScalarConversions { Option(t._3) } - /** - * Implicit converter from cache KV-pair predicate to cache entry predicate. Note that predicate - * will use peek() - * - * @param p Cache KV-pair predicate to convert. - */ - implicit def toEntryPred[K, V](p: (K, V) => Boolean): (_ >: Cache.Entry[K, V]) => Boolean = - (e: Cache.Entry[K, V]) => - p(e.getKey, e.getValue) +// /** +// * Implicit converter from cache KV-pair predicate to cache entry predicate. Note that predicate +// * will use peek() +// * +// * @param p Cache KV-pair predicate to convert. +// */ +// implicit def toEntryPred[K, V](p: (K, V) => Boolean): (_ >: Cache.Entry[K, V]) => Boolean = +// (e: Cache.Entry[K, V]) => p(e.getKey, e.getValue) /** * Implicit converter from vararg of one-argument Scala functions to Java `GridPredicate`s. @@ -400,18 +395,10 @@ trait ScalarConversions { * * @param impl Grid cache to convert. */ - implicit def toScalarCache[K, V](impl: GridCache[K, V]): ScalarCachePimp[K, V] = + implicit def toScalarCache[K, V](impl: IgniteCache[K, V]): ScalarCachePimp[K, V] = ScalarCachePimp[K, V](impl) /** - * Implicit converter from `CacheProjection` to `ScalarCacheProjectionPimp` "pimp". - * - * @param impl Grid cache projection to convert. - */ - implicit def toScalarCacheProjection[K, V](impl: CacheProjection[K, V]): ScalarCacheProjectionPimp[K, V] = - ScalarCacheProjectionPimp[K, V](impl) - - /** * Implicit converter from Scala function to `ComputeJob`. * * @param f Scala function to convert. http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7007771c/modules/scalar/src/main/scala/org/apache/ignite/scalar/pimps/ScalarCacheConfigurationHelper.java ---------------------------------------------------------------------- diff --git a/modules/scalar/src/main/scala/org/apache/ignite/scalar/pimps/ScalarCacheConfigurationHelper.java b/modules/scalar/src/main/scala/org/apache/ignite/scalar/pimps/ScalarCacheConfigurationHelper.java new file mode 100644 index 0000000..55a4ab6 --- /dev/null +++ b/modules/scalar/src/main/scala/org/apache/ignite/scalar/pimps/ScalarCacheConfigurationHelper.java @@ -0,0 +1,33 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.scalar.pimps; + +import org.apache.ignite.*; +import org.apache.ignite.configuration.*; + +/** + * TODO: Add class description. + */ +public class ScalarCacheConfigurationHelper { + /** + * @param cache Cache. + */ + public static CacheConfiguration extract(IgniteCache cache) { + return (CacheConfiguration)cache.getConfiguration(CacheConfiguration.class); + } +}