You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2016/01/03 16:33:51 UTC

[06/50] [abbrv] ignite git commit: Ignite-2087 (cherry picked from commit bd1f506)

Ignite-2087
(cherry picked from commit bd1f506)


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/11bee917
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/11bee917
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/11bee917

Branch: refs/heads/ignite-2264
Commit: 11bee91787dd3d6f2a57739e26622e55428f3b1c
Parents: c3fe967
Author: Anton Vinogradov <av...@apache.org>
Authored: Thu Dec 17 14:27:16 2015 +0300
Committer: Anton Vinogradov <av...@apache.org>
Committed: Thu Dec 17 14:30:32 2015 +0300

----------------------------------------------------------------------
 .../org/apache/ignite/cache/CacheManager.java   |  2 +-
 .../org/apache/ignite/internal/IgnitionEx.java  | 51 +++++++++++++++-----
 .../java/org/apache/ignite/IgniteSpring.java    |  4 +-
 3 files changed, 43 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/11bee917/modules/core/src/main/java/org/apache/ignite/cache/CacheManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/CacheManager.java b/modules/core/src/main/java/org/apache/ignite/cache/CacheManager.java
index 84ed2cd..6e09d72 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/CacheManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/CacheManager.java
@@ -114,7 +114,7 @@ public class CacheManager implements javax.cache.CacheManager {
                 ignite = (IgniteKernal)IgnitionEx.start(cfg);
             }
             else
-                ignite = (IgniteKernal)IgnitionEx.start(uri.toURL());
+                ignite = (IgniteKernal)IgnitionEx.start(uri.toURL(), clsLdr);
 
             kernalGateway = ignite.context().gateway();
         }

http://git-wip-us.apache.org/repos/asf/ignite/blob/11bee917/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java b/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
index 4f6c6d9..5153fb3 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
@@ -495,7 +495,7 @@ public class IgnitionEx {
         URL url = U.resolveIgniteUrl(DFLT_CFG);
 
         if (url != null)
-            return start(DFLT_CFG, null, springCtx);
+            return start(DFLT_CFG, null, springCtx, null);
 
         U.warn(null, "Default Spring XML file not found (is IGNITE_HOME set?): " + DFLT_CFG);
 
@@ -581,7 +581,7 @@ public class IgnitionEx {
             return start(cfg);
         }
         else
-            return start(springCfgPath, gridName, null);
+            return start(springCfgPath, gridName, null, null);
     }
 
     /**
@@ -697,6 +697,7 @@ public class IgnitionEx {
      * @param springCfgPath Spring XML configuration file path or URL. This cannot be {@code null}.
      * @param gridName Grid name that will override default.
      * @param springCtx Optional Spring application context, possibly {@code null}.
+     * @param ldr Optional class loader that will be used by default.
      *      Spring bean definitions for bean injection are taken from this context.
      *      If provided, this context can be injected into grid tasks and grid jobs using
      *      {@link SpringApplicationContextResource @SpringApplicationContextResource} annotation.
@@ -707,10 +708,10 @@ public class IgnitionEx {
      *      been started or Spring XML configuration file is invalid.
      */
     public static Ignite start(String springCfgPath, @Nullable String gridName,
-        @Nullable GridSpringResourceContext springCtx) throws IgniteCheckedException {
+        @Nullable GridSpringResourceContext springCtx, @Nullable ClassLoader ldr) throws IgniteCheckedException {
         URL url = U.resolveSpringUrl(springCfgPath);
 
-        return start(url, gridName, springCtx);
+        return start(url, gridName, springCtx, ldr);
     }
 
     /**
@@ -730,7 +731,28 @@ public class IgnitionEx {
      *      been started or Spring XML configuration file is invalid.
      */
     public static Ignite start(URL springCfgUrl) throws IgniteCheckedException {
-        return start(springCfgUrl, null, null);
+        return start(springCfgUrl, null, null, null);
+    }
+
+    /**
+     * Starts all grids specified within given Spring XML configuration file URL. If grid with given name
+     * is already started, then exception is thrown. In this case all instances that may
+     * have been started so far will be stopped too.
+     * <p>
+     * Usually Spring XML configuration file will contain only one Grid definition. Note that
+     * Grid configuration bean(s) is retrieved form configuration file by type, so the name of
+     * the Grid configuration bean is ignored.
+     *
+     * @param springCfgUrl Spring XML configuration file URL. This cannot be {@code null}.
+     * @param ldr Optional class loader that will be used by default.
+     * @return Started grid. If Spring configuration contains multiple grid instances,
+     *      then the 1st found instance is returned.
+     * @throws IgniteCheckedException If grid could not be started or configuration
+     *      read. This exception will be thrown also if grid with given name has already
+     *      been started or Spring XML configuration file is invalid.
+     */
+    public static Ignite start(URL springCfgUrl, @Nullable ClassLoader ldr) throws IgniteCheckedException {
+        return start(springCfgUrl, null, null, ldr);
     }
 
     /**
@@ -745,6 +767,7 @@ public class IgnitionEx {
      * @param springCfgUrl Spring XML configuration file URL. This cannot be {@code null}.
      * @param gridName Grid name that will override default.
      * @param springCtx Optional Spring application context, possibly {@code null}.
+     * @param ldr Optional class loader that will be used by default.
      *      Spring bean definitions for bean injection are taken from this context.
      *      If provided, this context can be injected into grid tasks and grid jobs using
      *      {@link SpringApplicationContextResource @SpringApplicationContextResource} annotation.
@@ -755,7 +778,7 @@ public class IgnitionEx {
      *      been started or Spring XML configuration file is invalid.
      */
     public static Ignite start(URL springCfgUrl, @Nullable String gridName,
-        @Nullable GridSpringResourceContext springCtx) throws IgniteCheckedException {
+        @Nullable GridSpringResourceContext springCtx, @Nullable ClassLoader ldr) throws IgniteCheckedException {
         A.notNull(springCfgUrl, "springCfgUrl");
 
         boolean isLog4jUsed = U.gridClassLoader().getResource("org/apache/log4j/Appender.class") != null;
@@ -789,7 +812,7 @@ public class IgnitionEx {
                 U.removeJavaNoOpLogger(savedHnds);
         }
 
-        return startConfigurations(cfgMap, springCfgUrl, gridName, springCtx);
+        return startConfigurations(cfgMap, springCfgUrl, gridName, springCtx, ldr);
     }
 
     /**
@@ -809,7 +832,7 @@ public class IgnitionEx {
      *      been started or Spring XML configuration file is invalid.
      */
     public static Ignite start(InputStream springCfgStream) throws IgniteCheckedException {
-        return start(springCfgStream, null, null);
+        return start(springCfgStream, null, null, null);
     }
 
     /**
@@ -824,6 +847,7 @@ public class IgnitionEx {
      * @param springCfgStream Input stream containing Spring XML configuration. This cannot be {@code null}.
      * @param gridName Grid name that will override default.
      * @param springCtx Optional Spring application context, possibly {@code null}.
+     * @param ldr Optional class loader that will be used by default.
      *      Spring bean definitions for bean injection are taken from this context.
      *      If provided, this context can be injected into grid tasks and grid jobs using
      *      {@link SpringApplicationContextResource @SpringApplicationContextResource} annotation.
@@ -834,7 +858,7 @@ public class IgnitionEx {
      *      been started or Spring XML configuration file is invalid.
      */
     public static Ignite start(InputStream springCfgStream, @Nullable String gridName,
-        @Nullable GridSpringResourceContext springCtx) throws IgniteCheckedException {
+        @Nullable GridSpringResourceContext springCtx, @Nullable ClassLoader ldr) throws IgniteCheckedException {
         A.notNull(springCfgStream, "springCfgUrl");
 
         boolean isLog4jUsed = U.gridClassLoader().getResource("org/apache/log4j/Appender.class") != null;
@@ -868,7 +892,7 @@ public class IgnitionEx {
                 U.removeJavaNoOpLogger(savedHnds);
         }
 
-        return startConfigurations(cfgMap, null, gridName, springCtx);
+        return startConfigurations(cfgMap, null, gridName, springCtx, ldr);
     }
 
     /**
@@ -878,6 +902,7 @@ public class IgnitionEx {
      * @param springCfgUrl Spring XML configuration file URL.
      * @param gridName Grid name that will override default.
      * @param springCtx Optional Spring application context.
+     * @param ldr Optional class loader that will be used by default.
      * @return Started grid.
      * @throws IgniteCheckedException If failed.
      */
@@ -885,7 +910,8 @@ public class IgnitionEx {
         IgniteBiTuple<Collection<IgniteConfiguration>, ? extends GridSpringResourceContext> cfgMap,
         URL springCfgUrl,
         @Nullable String gridName,
-        @Nullable GridSpringResourceContext springCtx)
+        @Nullable GridSpringResourceContext springCtx,
+        @Nullable ClassLoader ldr)
         throws IgniteCheckedException {
         List<IgniteNamedInstance> grids = new ArrayList<>(cfgMap.size());
 
@@ -896,6 +922,9 @@ public class IgnitionEx {
                 if (cfg.getGridName() == null && !F.isEmpty(gridName))
                     cfg.setGridName(gridName);
 
+                if (ldr != null && cfg.getClassLoader() == null)
+                    cfg.setClassLoader(ldr);
+
                 // Use either user defined context or our one.
                 IgniteNamedInstance grid = start0(
                     new GridStartContext(cfg, springCfgUrl, springCtx == null ? cfgMap.get2() : springCtx));

http://git-wip-us.apache.org/repos/asf/ignite/blob/11bee917/modules/spring/src/main/java/org/apache/ignite/IgniteSpring.java
----------------------------------------------------------------------
diff --git a/modules/spring/src/main/java/org/apache/ignite/IgniteSpring.java b/modules/spring/src/main/java/org/apache/ignite/IgniteSpring.java
index 9c70591..ddb44a7 100644
--- a/modules/spring/src/main/java/org/apache/ignite/IgniteSpring.java
+++ b/modules/spring/src/main/java/org/apache/ignite/IgniteSpring.java
@@ -87,7 +87,7 @@ public class IgniteSpring {
      *      been started or Spring XML configuration file is invalid.
      */
     public static Ignite start(String springCfgPath, @Nullable ApplicationContext springCtx) throws IgniteCheckedException {
-        return IgnitionEx.start(springCfgPath, null, new GridSpringResourceContextImpl(springCtx));
+        return IgnitionEx.start(springCfgPath, null, new GridSpringResourceContextImpl(springCtx), null);
     }
 
     /**
@@ -111,6 +111,6 @@ public class IgniteSpring {
      *      been started or Spring XML configuration file is invalid.
      */
     public static Ignite start(URL springCfgUrl, @Nullable ApplicationContext springCtx) throws IgniteCheckedException {
-        return IgnitionEx.start(springCfgUrl, null, new GridSpringResourceContextImpl(springCtx));
+        return IgnitionEx.start(springCfgUrl, null, new GridSpringResourceContextImpl(springCtx), null);
     }
 }
\ No newline at end of file