You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2014/12/19 14:32:58 UTC
[6/9] incubator-ignite git commit: IGNITE-35 Removed
IgniteUserResource, IgniteUserResourceOnDeployed,
IgniteUserResourceOnUndeployed resources.
IGNITE-35 Removed IgniteUserResource, IgniteUserResourceOnDeployed, IgniteUserResourceOnUndeployed resources.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/ad57f8ed
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/ad57f8ed
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/ad57f8ed
Branch: refs/heads/ignite-35
Commit: ad57f8edd79130dbbef56bcf70154ed67365e2c7
Parents: 55936e4
Author: nikolay_tikhonov <nt...@gridgain.com>
Authored: Thu Dec 18 14:02:13 2014 +0300
Committer: nikolay_tikhonov <nt...@gridgain.com>
Committed: Fri Dec 19 16:29:12 2014 +0300
----------------------------------------------------------------------
.../configuration/IgniteDeploymentMode.java | 35 +-
.../resources/IgniteInstanceResource.java | 1 -
.../ignite/resources/IgniteLoggerResource.java | 1 -
.../resources/IgniteMBeanServerResource.java | 1 -
.../IgniteSpringApplicationContextResource.java | 1 -
.../ignite/resources/IgniteSpringResource.java | 1 -
.../ignite/resources/IgniteUserResource.java | 118 ----
.../resources/IgniteUserResourceOnDeployed.java | 46 --
.../IgniteUserResourceOnUndeployed.java | 45 --
.../resource/GridResourceCustomInjector.java | 536 -------------------
.../resource/GridResourceProcessor.java | 83 +--
.../grid/p2p/GridP2PJobClassLoaderSelfTest.java | 4 -
.../p2p/GridP2PLocalDeploymentSelfTest.java | 28 -
.../GridExternalCacheQueryReducerClosure.java | 4 -
.../tests/p2p/GridP2PAwareTestUserResource.java | 20 -
.../p2p/GridP2PEventFilterExternalPath1.java | 5 -
.../p2p/GridP2PEventFilterExternalPath2.java | 5 -
.../tests/p2p/GridP2PTestTaskExternalPath1.java | 5 -
.../tests/p2p/GridP2PTestTaskExternalPath2.java | 5 -
.../GridAbstractUserExternalResource.java | 117 ----
.../resource/GridUserExternalResource1.java | 17 -
.../resource/GridUserExternalResource2.java | 17 -
.../resource/GridUserExternalResourceTask1.java | 149 ------
.../resource/GridUserExternalResourceTask2.java | 156 ------
.../grid/external/resource/package.html | 15 -
.../resource/GridAbstractUserResource.java | 26 -
.../GridResourceConcurrentUndeploySelfTest.java | 13 -
.../GridResourceEventFilterSelfTest.java | 10 -
.../GridResourceFieldInjectionSelfTest.java | 104 ----
...dResourceFieldOverrideInjectionSelfTest.java | 15 -
.../resource/GridResourceIocSelfTest.java | 84 ---
...GridResourceIsolatedClassLoaderSelfTest.java | 295 +---------
.../GridResourceIsolatedTaskSelfTest.java | 292 ----------
.../GridResourceMethodInjectionSelfTest.java | 111 ----
...ResourceMethodOverrideInjectionSelfTest.java | 96 ----
.../GridResourceSharedUndeploySelfTest.java | 146 -----
.../resource/GridResourceUserExternalTest.java | 86 ---
.../grid/p2p/GridP2PAbstractUserResource.java | 26 -
.../GridP2PContinuousLocalDeploySelfTest.java | 52 --
.../testsuites/GridResourceSelfTestSuite.java | 1 -
40 files changed, 13 insertions(+), 2759 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad57f8ed/modules/core/src/main/java/org/apache/ignite/configuration/IgniteDeploymentMode.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteDeploymentMode.java b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteDeploymentMode.java
index eb5c594..e8d9bf5 100644
--- a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteDeploymentMode.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteDeploymentMode.java
@@ -15,13 +15,7 @@ import org.jetbrains.annotations.*;
* Grid deployment mode. Deployment mode is specified at grid startup via
* {@link org.apache.ignite.configuration.IgniteConfiguration#getDeploymentMode()} configuration property
* (it can also be specified in Spring XML configuration file). The main
- * difference between all deployment modes is how classes and user resources
- * are loaded on remote nodes via peer-class-loading mechanism. User resources
- * can be instances of caches, databased connections, or any other class
- * specified by user with {@link org.apache.ignite.resources.IgniteUserResource @GridUserResource} annotation.
- * <p>
- * Refer to {@link org.apache.ignite.resources.IgniteUserResource} documentation and examples for more
- * information on how user resources are created and injected.
+ * difference between all deployment modes is how classes are loaded on remote nodes via peer-class-loading mechanism.
* <p>
* The following deployment modes are supported:
* <ul>
@@ -60,11 +54,6 @@ import org.jetbrains.annotations.*;
* <li>
* Simply startup stand-alone GridGain nodes by executing
* {@code GRIDGAIN_HOME/ggstart.{sh|bat}} scripts.
- * <li>
- * Inject your cache instance into your jobs via
- * {@link org.apache.ignite.resources.IgniteUserResource @GridUserResource} annotation. The cache can be initialized
- * and destroyed with {@link org.apache.ignite.resources.IgniteUserResourceOnDeployed @GridUserResourceOnDeployed} and
- * {@link org.apache.ignite.resources.IgniteUserResourceOnUndeployed @GridUserResourceOnUndeployed} annotations.
* </li>
* <li>
* Now, all jobs executing locally or remotely can have a single instance of cache
@@ -75,8 +64,7 @@ import org.jetbrains.annotations.*;
*/
public enum IgniteDeploymentMode {
/**
- * In this mode deployed classes do not share user resources
- * (see {@link org.apache.ignite.resources.IgniteUserResource}). Basically, user resources are created
+ * In this mode deployed classes do not share resources. Basically, resources are created
* once per deployed task class and then get reused for all executions.
* <p>
* Note that classes deployed within the same class loader on master
@@ -95,12 +83,12 @@ public enum IgniteDeploymentMode {
/**
* Unlike {@link #PRIVATE} mode, where different deployed tasks will
- * never use the same instance of user resources, in {@code ISOLATED}
+ * never use the same instance of resources, in {@code ISOLATED}
* mode, tasks or classes deployed within the same class loader
- * will share the same instances of user resources (see {@link org.apache.ignite.resources.IgniteUserResource}).
+ * will share the same instances of resources.
* This means that if multiple tasks classes are loaded by the same
* class loader on master node, then they will share instances
- * of user resources on worker nodes. In other words, user resources
+ * of resources on worker nodes. In other words, user resources
* get initialized once per class loader and then get reused for all
* consecutive executions.
* <p>
@@ -121,11 +109,10 @@ public enum IgniteDeploymentMode {
* nodes leave grid or user version changes.
* <p>
* The advantage of this approach is that it allows tasks coming from
- * different master nodes share the same instances of user resources
- * (see {@link org.apache.ignite.resources.IgniteUserResource}) on worker nodes. This allows for all
+ * different master nodes share the same instances of resources on worker nodes. This allows for all
* tasks executing on remote nodes to reuse, for example, the same instances of
* connection pools or caches. When using this mode, you can
- * startup multiple stand-alone GridGain worker nodes, define user resources
+ * startup multiple stand-alone GridGain worker nodes, define resources
* on master nodes and have them initialize once on worker nodes regardless
* of which master node they came from.
* <p>
@@ -145,18 +132,16 @@ public enum IgniteDeploymentMode {
SHARED,
/**
- * Same as {@link #SHARED} deployment mode, but user resources
- * (see {@link org.apache.ignite.resources.IgniteUserResource}) will not be undeployed even after all master
+ * Same as {@link #SHARED} deployment mode, but resources will not be undeployed even after all master
* nodes left grid. Tasks from different master nodes with the same user
* version and same class loader will share the same class loader on remote
* worker nodes. Classes will be undeployed whenever user version changes.
* <p>
* The advantage of this approach is that it allows tasks coming from
- * different master nodes share the same instances of user resources
- * (see {@link org.apache.ignite.resources.IgniteUserResource}) on worker nodes. This allows for all
+ * different master nodes share the same instances of resources on worker nodes. This allows for all
* tasks executing on remote nodes to reuse, for example, the same instances of
* connection pools or caches. When using this mode, you can
- * startup multiple stand-alone GridGain worker nodes, define user resources
+ * startup multiple stand-alone GridGain worker nodes, define resources
* on master nodes and have them initialize once on worker nodes regardless
* of which master node they came from.
* <p>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad57f8ed/modules/core/src/main/java/org/apache/ignite/resources/IgniteInstanceResource.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/resources/IgniteInstanceResource.java b/modules/core/src/main/java/org/apache/ignite/resources/IgniteInstanceResource.java
index ec10b36..e201bda 100644
--- a/modules/core/src/main/java/org/apache/ignite/resources/IgniteInstanceResource.java
+++ b/modules/core/src/main/java/org/apache/ignite/resources/IgniteInstanceResource.java
@@ -22,7 +22,6 @@ import java.lang.annotation.*;
* <li>{@link org.apache.ignite.compute.ComputeJob}</li>
* <li>{@link org.apache.ignite.lifecycle.LifecycleBean}</li>
* <li>All closures and predicates that can run on grid.</li>
- * <li>{@link IgniteUserResource @IgniteUserResource}</li>
* </ul>
* <p>
* Here is how injection would typically happen:
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad57f8ed/modules/core/src/main/java/org/apache/ignite/resources/IgniteLoggerResource.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/resources/IgniteLoggerResource.java b/modules/core/src/main/java/org/apache/ignite/resources/IgniteLoggerResource.java
index 9695d16..78361a4 100644
--- a/modules/core/src/main/java/org/apache/ignite/resources/IgniteLoggerResource.java
+++ b/modules/core/src/main/java/org/apache/ignite/resources/IgniteLoggerResource.java
@@ -21,7 +21,6 @@ import java.lang.annotation.*;
* <li>{@link org.apache.ignite.compute.ComputeJob}</li>
* <li>{@link org.apache.ignite.spi.IgniteSpi}</li>
* <li>{@link org.apache.ignite.lifecycle.LifecycleBean}</li>
- * <li>{@link IgniteUserResource @GridUserResource}</li>
* </ul>
* <p>
* Here is how injection would typically happen:
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad57f8ed/modules/core/src/main/java/org/apache/ignite/resources/IgniteMBeanServerResource.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/resources/IgniteMBeanServerResource.java b/modules/core/src/main/java/org/apache/ignite/resources/IgniteMBeanServerResource.java
index 50c8153..6ac2b94 100644
--- a/modules/core/src/main/java/org/apache/ignite/resources/IgniteMBeanServerResource.java
+++ b/modules/core/src/main/java/org/apache/ignite/resources/IgniteMBeanServerResource.java
@@ -22,7 +22,6 @@ import java.lang.annotation.*;
* <li>{@link org.apache.ignite.compute.ComputeJob}</li>
* <li>{@link org.apache.ignite.spi.IgniteSpi}</li>
* <li>{@link org.apache.ignite.lifecycle.LifecycleBean}</li>
- * <li>{@link IgniteUserResource @GridUserResource}</li>
* </ul>
* <p>
* Here is how injection would typically happen:
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad57f8ed/modules/core/src/main/java/org/apache/ignite/resources/IgniteSpringApplicationContextResource.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/resources/IgniteSpringApplicationContextResource.java b/modules/core/src/main/java/org/apache/ignite/resources/IgniteSpringApplicationContextResource.java
index 895e37a..97d8ab7 100644
--- a/modules/core/src/main/java/org/apache/ignite/resources/IgniteSpringApplicationContextResource.java
+++ b/modules/core/src/main/java/org/apache/ignite/resources/IgniteSpringApplicationContextResource.java
@@ -23,7 +23,6 @@ import java.lang.annotation.*;
* <li>{@link org.apache.ignite.compute.ComputeJob}</li>
* <li>{@link org.apache.ignite.spi.IgniteSpi}</li>
* <li>{@link org.apache.ignite.lifecycle.LifecycleBean}</li>
- * <li>{@link IgniteUserResource @GridUserResource}</li>
* </ul>
* <p>
* Here is how injection would typically happen:
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad57f8ed/modules/core/src/main/java/org/apache/ignite/resources/IgniteSpringResource.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/resources/IgniteSpringResource.java b/modules/core/src/main/java/org/apache/ignite/resources/IgniteSpringResource.java
index 4452731..1b39118 100644
--- a/modules/core/src/main/java/org/apache/ignite/resources/IgniteSpringResource.java
+++ b/modules/core/src/main/java/org/apache/ignite/resources/IgniteSpringResource.java
@@ -24,7 +24,6 @@ import java.lang.annotation.*;
* <li>{@link org.apache.ignite.compute.ComputeJob}</li>
* <li>{@link org.apache.ignite.spi.IgniteSpi}</li>
* <li>{@link org.apache.ignite.lifecycle.LifecycleBean}</li>
- * <li>{@link IgniteUserResource @GridUserResource}</li>
* </ul>
* <p>
* <h1 class="header">Resource Name</h1>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad57f8ed/modules/core/src/main/java/org/apache/ignite/resources/IgniteUserResource.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/resources/IgniteUserResource.java b/modules/core/src/main/java/org/apache/ignite/resources/IgniteUserResource.java
deleted file mode 100644
index 3b8eb16..0000000
--- a/modules/core/src/main/java/org/apache/ignite/resources/IgniteUserResource.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/* @java.file.header */
-
-/* _________ _____ __________________ _____
- * __ ____/___________(_)______ /__ ____/______ ____(_)_______
- * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
- * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
- * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
- */
-
-package org.apache.ignite.resources;
-
-import java.lang.annotation.*;
-
-/**
- * Annotates a field or a setter method for any custom resources injection.
- * It can be injected into grid tasks and grid jobs. Use it when you would
- * like, for example, to inject something like JDBC connection pool into tasks
- * or jobs - this way your connection pool will be instantiated only once
- * per task and reused for all executions of this task.
- * <p>
- * You can inject other resources into your user resource.
- * The following grid resources can be injected:
- * <ul>
- * <li>{@link IgniteLoggerResource}</li>
- * <li>{@link IgniteSpringApplicationContextResource}</li>
- * <li>{@link IgniteSpringResource}</li>
- * <li>{@link IgniteInstanceResource}</li>
- * </ul>
- * Refer to corresponding resource documentation for more information.
- * <p>
- * <h1 class="header">Resource Class</h1>
- * The resource will be created based on the {@link #resourceClass()} value. If
- * If {@code resourceClass} is not specified, then field type or setter parameter
- * type will be used to infer the class type of the resource. Set {@link #resourceClass()}
- * to a specific value if the class of resource cannot be inferred from field or setter
- * declaration (for example, if field is an interface).
- * <p>
- * <h1 class="header">Resource Life Cycle</h1>
- * User resource will be instantiated once on every node where task is deployed.
- * Basically there will always be only one instance of resource on any
- * grid node for any task class. Every node will instantiate
- * it's own copy of user resources used for every deployed task (see
- * {@link IgniteUserResourceOnDeployed} and {@link IgniteUserResourceOnUndeployed}
- * annotation for resource deployment and undeployment callbacks). For this
- * reason <b>resources should not be sent to remote nodes and should
- * always be declared as transient</b> just in case.
- * <p>
- * Note that an instance of user resource will be created for every deployed task.
- * In case if you need a singleton resource instances on grid nodes (not per-task),
- * you can use {@link IgniteSpringApplicationContextResource} for injecting per-VM
- * singleton resources configured in Spring.
- * <p>
- * <h1 class="header">Examples</h1>
- * Here is how injection would typically happen:
- * <pre name="code" class="java">
- * public class MyGridJob implements ComputeJob {
- * ...
- * @GridUserResource
- * private transient MyUserResource rsrc;
- * ...
- * }
- * </pre>
- * or
- * <pre name="code" class="java">
- * public class MyGridJob implements ComputeJob {
- * ...
- * private transient MyUserResource rsrc;
- * ...
- * @GridUserResource
- * public void setMyUserResource(MyUserResource rsrc) {
- * this.rsrc = rsrc;
- * }
- * ...
- * }
- * </pre>
- * where resource class can look like this:
- * <pre name="code" class="java">
- * public class MyUserResource {
- * ...
- * // Inject logger (or any other resource).
- * @GridLoggerResource
- * private GridLogger log;
- *
- * // Inject grid instance (or any other resource).
- * @GridInstanceResource
- * private Grid grid;
- *
- * // Deployment callback.
- * @GridUserResourceOnDeployed
- * public void deploy() {
- * // Some initialization logic.
- * ...
- * }
- *
- * // Undeployment callback.
- * @GridUserResourceOnUndeployed
- * public void undeploy() {
- * // Some clean up logic.
- * ...
- * }
- * }
- * </pre>
- */
-@Documented
-@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.METHOD, ElementType.FIELD})
-public @interface IgniteUserResource {
- /**
- * Optional resource class. By default the type of the resource variable
- * or setter parameter will be used.
- */
- @SuppressWarnings({"JavaDoc"}) Class<?> resourceClass() default Void.class;
-
- /**
- * Optional resource name. By default the {@code "dfltName"} values will be used.
- */
- @SuppressWarnings({"JavaDoc"}) String resourceName() default "dfltName";
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad57f8ed/modules/core/src/main/java/org/apache/ignite/resources/IgniteUserResourceOnDeployed.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/resources/IgniteUserResourceOnDeployed.java b/modules/core/src/main/java/org/apache/ignite/resources/IgniteUserResourceOnDeployed.java
deleted file mode 100644
index f9d2e78..0000000
--- a/modules/core/src/main/java/org/apache/ignite/resources/IgniteUserResourceOnDeployed.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/* @java.file.header */
-
-/* _________ _____ __________________ _____
- * __ ____/___________(_)______ /__ ____/______ ____(_)_______
- * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
- * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
- * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
- */
-
-package org.apache.ignite.resources;
-
-import java.lang.annotation.*;
-
-/**
- * Annotates a special methods inside injected user-defined resource {@link IgniteUserResource}.
- * It can be used in any injected resource for grid tasks and grid jobs. Typically the method with this
- * annotation will be used for initialization of the injectable resource such as opening database connection,
- * network connection or reading configuration settings. Note that this method is called after the resource
- * itself has been injected with all its resources, if any.
- * <p>
- * Here is how annotation would typically happen:
- * <pre name="code" class="java">
- * public class MyUserResource {
- * ...
- * @GridLoggerResource
- * private GridLogger log;
- *
- * @GridSpringApplicationContextResource
- * private ApplicationContext springCtx;
- * ...
- * @GridUserResourceOnDeployed
- * private void deploy() {
- * log.info("Deploying resource: " + this);
- * }
- * ...
- * }
- * </pre>
- * <p>
- * See also {@link IgniteUserResourceOnUndeployed} for undeployment callbacks.
- */
-@Documented
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.METHOD)
-public @interface IgniteUserResourceOnDeployed {
- // No-op.
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad57f8ed/modules/core/src/main/java/org/apache/ignite/resources/IgniteUserResourceOnUndeployed.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/resources/IgniteUserResourceOnUndeployed.java b/modules/core/src/main/java/org/apache/ignite/resources/IgniteUserResourceOnUndeployed.java
deleted file mode 100644
index 34dda00..0000000
--- a/modules/core/src/main/java/org/apache/ignite/resources/IgniteUserResourceOnUndeployed.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/* @java.file.header */
-
-/* _________ _____ __________________ _____
- * __ ____/___________(_)______ /__ ____/______ ____(_)_______
- * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
- * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
- * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
- */
-
-package org.apache.ignite.resources;
-
-import java.lang.annotation.*;
-
-/**
- * Annotates a special method inside injected user-defined resources {@link IgniteUserResource}. This
- * annotation is typically used to de-initialize user-defined resource. For example, the method with
- * this annotation can close database connection, or perform certain cleanup. Note that this method
- * will be called before any injected resources on this user-defined resource are cleaned up.
- * <p>
- * Here is how annotation would typically happen:
- * <pre name="code" class="java">
- * public class MyUserResource {
- * ...
- * @GridLoggerResource
- * private GridLogger log;
- *
- * @GridSpringApplicationContextResource
- * private ApplicationContext springCtx;
- * ...
- * @GridUserResourceOnUndeployed
- * private void deploy() {
- * log.info("Deploying resource: " + this);
- * }
- * ...
- * }
- * </pre>
- * <p>
- * See also {@link IgniteUserResourceOnDeployed} for deployment callbacks.
- */
-@Documented
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.METHOD)
-public @interface IgniteUserResourceOnUndeployed {
- // No-op.
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad57f8ed/modules/core/src/main/java/org/gridgain/grid/kernal/processors/resource/GridResourceCustomInjector.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/resource/GridResourceCustomInjector.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/resource/GridResourceCustomInjector.java
deleted file mode 100644
index 100eaa6..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/resource/GridResourceCustomInjector.java
+++ /dev/null
@@ -1,536 +0,0 @@
-/* @java.file.header */
-
-/* _________ _____ __________________ _____
- * __ ____/___________(_)______ /__ ____/______ ____(_)_______
- * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
- * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
- * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
- */
-
-package org.gridgain.grid.kernal.processors.resource;
-
-import org.apache.ignite.*;
-import org.apache.ignite.configuration.*;
-import org.apache.ignite.lang.*;
-import org.apache.ignite.managed.*;
-import org.apache.ignite.marshaller.*;
-import org.apache.ignite.resources.*;
-import org.gridgain.grid.*;
-import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.kernal.managers.deployment.*;
-import org.gridgain.grid.util.typedef.*;
-import org.gridgain.grid.util.typedef.internal.*;
-
-import javax.management.*;
-import java.lang.annotation.*;
-import java.lang.reflect.*;
-import java.util.*;
-import java.util.concurrent.*;
-import java.util.concurrent.locks.*;
-
-/**
- * Custom injector implementation works with user resources.
- * Injector creates and collects all created user resources.
- * All resources will be cleaned before task undeploy.
- * Task resources should be marked in task with {@link org.apache.ignite.resources.IgniteUserResource} annotation.
- */
-class GridResourceCustomInjector implements GridResourceInjector {
- /** Class-based resource attachment. */
- private static final String CLS_RSRC_CACHE = "CLASS_RESOURCE_CACHE";
-
- /** Class-loader based resource attachment. */
- private static final String CLS_LDR_RSRC_CACHE = "CLASS_LOADER_RESOURCE_CACHE";
-
- /** Grid logger. */
- private final IgniteLogger log;
-
- /** Grid instance injector. */
- private GridResourceBasicInjector<GridEx> gridInjector;
-
- /** GridGain home folder injector. */
- private GridResourceBasicInjector<String> ggHomeInjector;
-
- /** Grid name injector. */
- private GridResourceBasicInjector<String> ggNameInjector;
-
- /** MBean server injector. */
- private GridResourceBasicInjector<MBeanServer> mbeanServerInjector;
-
- /** Grid thread executor injector. */
- private GridResourceBasicInjector<Executor> execInjector;
-
- /** Local node ID injector. */
- private GridResourceBasicInjector<UUID> nodeIdInjector;
-
- /** Marshaller injector. */
- private GridResourceBasicInjector<IgniteMarshaller> marshallerInjector;
-
- /** Spring application context injector. */
- private GridResourceInjector springCtxInjector;
-
- /** Logger injector. */
- private GridResourceBasicInjector<IgniteLogger> logInjector;
-
- /** Service injector. */
- private GridResourceBasicInjector<Collection<ManagedService>> srvcInjector;
-
- /** Spring bean resources injector. */
- private GridResourceInjector springBeanInjector;
-
- /** Null injector for cleaning resources. */
- private final GridResourceInjector nullInjector = new GridResourceBasicInjector<>(null);
-
- /** Resource container. */
- private final GridResourceIoc ioc;
-
- /** */
- private final ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
-
- /**
- * Creates injector object.
- *
- * @param log Grid logger.
- * @param ioc Resource container for injections.
- */
- GridResourceCustomInjector(IgniteLogger log, GridResourceIoc ioc) {
- assert log != null;
- assert ioc != null;
-
- this.log = log;
- this.ioc = ioc;
- }
-
- /**
- * Sets injector with Grid instance.
- *
- * @param gridInjector Grid instance.
- */
- public void setGridInjector(GridResourceBasicInjector<GridEx> gridInjector) {
- this.gridInjector = gridInjector;
- }
-
- /**
- * Sets injector with GridGain home folder.
- *
- * @param ggHomeInjector GridGain home folder.
- */
- public void setGridgainHomeInjector(GridResourceBasicInjector<String> ggHomeInjector) {
- this.ggHomeInjector = ggHomeInjector;
- }
-
- /**
- * Sets injector with GridGain home folder.
- *
- * @param ggNameInjector Grid name injector.
- */
- public void setGridNameInjector(GridResourceBasicInjector<String> ggNameInjector) {
- this.ggNameInjector = ggNameInjector;
- }
-
- /**
- * Sets injector with MBean server.
- *
- * @param mbeanServerInjector MBean server.
- */
- public void setMbeanServerInjector(GridResourceBasicInjector<MBeanServer> mbeanServerInjector) {
- this.mbeanServerInjector = mbeanServerInjector;
- }
-
- /**
- * Sets injector with Grid thread executor.
- *
- * @param execInjector Grid thread executor.
- */
- public void setExecutorInjector(GridResourceBasicInjector<Executor> execInjector) {
- this.execInjector = execInjector;
- }
-
- /**
- * Sets injector with local node ID.
- *
- * @param nodeIdInjector Local node ID.
- */
- void setNodeIdInjector(GridResourceBasicInjector<UUID> nodeIdInjector) {
- this.nodeIdInjector = nodeIdInjector;
- }
-
- /**
- * Sets injector with marshaller.
- *
- * @param marshallerInjector Grid marshaller.
- */
- public void setMarshallerInjector(GridResourceBasicInjector<IgniteMarshaller> marshallerInjector) {
- this.marshallerInjector = marshallerInjector;
- }
-
- /**
- * Sets injector with Spring application context.
- *
- * @param springCtxInjector Spring application context.
- */
- void setSpringContextInjector(GridResourceInjector springCtxInjector) {
- this.springCtxInjector = springCtxInjector;
- }
-
- /**
- * Sets injector for Spring beans.
- *
- * @param springBeanInjector Injector for Spring beans.
- */
- public void setSpringBeanInjector(GridResourceInjector springBeanInjector) {
- this.springBeanInjector = springBeanInjector;
- }
-
- /**
- * Sets injector with log.
- *
- * @param logInjector Log injector.
- */
- public void setLogInjector(GridResourceBasicInjector<IgniteLogger> logInjector) {
- this.logInjector = logInjector;
- }
-
- /**
- * Sets injector for grid services.
- *
- * @param srvcInjector Service injector.
- */
- public void setSrvcInjector(GridResourceBasicInjector<Collection<ManagedService>> srvcInjector) {
- this.srvcInjector = srvcInjector;
- }
-
- /** {@inheritDoc} */
- @Override public void undeploy(GridDeployment dep) {
- lock.writeLock().lock();
-
- try {
- IgniteInClosure<Map<Class<?>, Map<String, CachedResource>>> x = new CI1<Map<Class<?>, Map<String, CachedResource>>>() {
- @Override public void apply(Map<Class<?>, Map<String, CachedResource>> map) {
- if (map != null) {
- for (Map<String, CachedResource> m : map.values()) {
- if (m != null)
- undeploy(m.values());
- }
- }
- }
- };
-
- Map<Class<?>, Map<String, CachedResource>> map = dep.removeMeta(CLS_LDR_RSRC_CACHE);
-
- x.apply(map);
-
- Map<Class<?>, Map<Class<?>, Map<String, CachedResource>>> clsRsrcs = dep.removeMeta(CLS_RSRC_CACHE);
-
- if (clsRsrcs != null)
- F.forEach(clsRsrcs.values(), x);
- }
- finally {
- lock.writeLock().unlock();
- }
- }
-
- /**
- * Undeploy collection of resources.
- * Every resource method marked with {@link org.apache.ignite.resources.IgniteUserResourceOnUndeployed}
- * annotation will be invoked before cleanup.
- *
- * @param rsrcs Resources to undeploy.
- */
- private void undeploy(Iterable<CachedResource> rsrcs) {
- assert lock.isWriteLockedByCurrentThread();
-
- for (CachedResource rsrc : rsrcs) {
- try {
- List<Method> finalizers = getMethodsWithAnnotation(rsrc.getResource().getClass(),
- IgniteUserResourceOnUndeployed.class);
-
- for (Method mtd : finalizers) {
- try {
- mtd.setAccessible(true);
-
- mtd.invoke(rsrc.getResource());
- }
- catch (IllegalAccessException | InvocationTargetException e) {
- U.error(log, "Failed to finalize task shared resource [method=" + mtd + ", resource=" + rsrc +
- ']', e);
- }
- }
- }
- catch (IgniteCheckedException e) {
- U.error(log, "Failed to find finalizers for resource: " + rsrc, e);
- }
-
- // Clean up injected resources.
- cleanup(rsrc, IgniteLoggerResource.class);
- cleanup(rsrc, IgniteInstanceResource.class);
- cleanup(rsrc, IgniteSpringApplicationContextResource.class);
- cleanup(rsrc, IgniteSpringResource.class);
- }
- }
-
- /**
- * Cleanup object where resources was injected before.
- *
- * @param rsrc Object where resources should be cleaned.
- * @param annCls Annotation.
- */
- private void cleanup(CachedResource rsrc, Class<? extends Annotation> annCls) {
- try {
- ioc.inject(rsrc.getResource(), annCls, nullInjector, null, null);
- }
- catch (IgniteCheckedException e) {
- U.error(log, "Failed to clean up resource [ann=" + annCls + ", rsrc=" + rsrc + ']', e);
- }
- }
-
- /** {@inheritDoc} */
- @Override public void inject(GridResourceField field, Object target, Class<?> depCls,
- GridDeployment dep) throws IgniteCheckedException {
- assert dep != null;
-
- IgniteUserResource ann = (IgniteUserResource)field.getAnnotation();
-
- assert ann != null;
-
- if (!Modifier.isTransient(field.getField().getModifiers())) {
- throw new IgniteCheckedException("@GridUserResource must only be used with 'transient' fields: " +
- field.getField());
- }
-
- Class<?> rsrcCls = !ann.resourceClass().equals(Void.class) ? ann.resourceClass() :
- field.getField().getType();
-
- String rsrcName = ann.resourceName();
-
- GridResourceUtils.inject(field.getField(), target, getResource(dep, depCls, rsrcCls, rsrcName));
- }
-
- /** {@inheritDoc} */
- @Override public void inject(GridResourceMethod mtd, Object target, Class<?> depCls, GridDeployment dep)
- throws IgniteCheckedException {
- assert dep != null;
-
- IgniteUserResource ann = (IgniteUserResource)mtd.getAnnotation();
-
- if (mtd.getMethod().getParameterTypes().length != 1)
- throw new IgniteCheckedException("Method injection setter must have only one parameter: " + mtd.getMethod());
-
- Class<?> rsrcCls = !ann.resourceClass().equals(Void.class) ? ann.resourceClass() :
- mtd.getMethod().getParameterTypes()[0];
-
- String rsrcName = ann.resourceName();
-
- GridResourceUtils.inject(mtd.getMethod(), target, getResource(dep, depCls, rsrcCls, rsrcName));
- }
-
- /**
- * Gets resource for defined task class.
- * If task resource not found it will be created with all necessary grid
- * injections.
- *
- * @param dep Deployment.
- * @param depCls Deployed class.
- * @param rsrcCls Resource class.
- * @param rsrcName Resource name.
- * @return Created resource.
- * @throws IgniteCheckedException If resource creation failed.
- */
- private Object getResource(GridDeployment dep, Class<?> depCls, Class<?> rsrcCls, String rsrcName)
- throws IgniteCheckedException {
- assert dep != null;
-
- // For performance reasons we first try to acquire read lock and
- // return the cached resource.
- lock.readLock().lock();
-
- try {
- Map<String, CachedResource> map = null;
-
- if (dep.deployMode() == IgniteDeploymentMode.PRIVATE) {
- Map<Class<?>, Map<Class<?>, Map<String, CachedResource>>> m = dep.meta(CLS_RSRC_CACHE);
-
- if (m != null) {
- Map<Class<?>, Map<String, CachedResource>> m1 = m.get(depCls);
-
- if (m1 != null)
- map = m1.get(rsrcCls);
- }
- }
- else {
- Map<Class<?>, Map<String, CachedResource>> m = dep.meta(CLS_LDR_RSRC_CACHE);
-
- if (m != null)
- map = m.get(rsrcCls);
- }
-
- if (map != null) {
- CachedResource rsrc = map.get(rsrcName);
-
- if (rsrc != null) {
- if (log.isDebugEnabled())
- log.debug("Read resource from cache: [rsrcCls=" + rsrcCls + ", rsrcName=" + rsrcName + ']');
-
- return rsrc.getResource();
- }
- }
- }
- finally {
- lock.readLock().unlock();
- }
-
- // If resource was not cached, then
- // we acquire write lock and cache it.
- lock.writeLock().lock();
-
- try {
- Map<String, CachedResource> map;
-
- if (dep.deployMode() == IgniteDeploymentMode.PRIVATE) {
- Map<Class<?>, Map<Class<?>, Map<String, CachedResource>>> m = dep.addMetaIfAbsent(CLS_RSRC_CACHE,
- F.<Class<?>, Map<Class<?>, Map<String, CachedResource>>>newMap());
-
- Map<Class<?>, Map<String, CachedResource>> m1 = F.addIfAbsent(m, depCls,
- F.<Class<?>, Map<String, CachedResource>>newMap());
-
- map = F.addIfAbsent(m1, rsrcCls, F.<String, CachedResource>newMap());
- }
- else {
- Map<Class<?>, Map<String, CachedResource>> m = dep.addMetaIfAbsent(CLS_LDR_RSRC_CACHE,
- F.<Class<?>, Map<String, CachedResource>>newMap());
-
- map = F.addIfAbsent(m, rsrcCls, F.<String, CachedResource>newMap());
- }
-
- CachedResource rsrc = map.get(rsrcName);
-
- if (rsrc == null) {
- rsrc = createResource(rsrcCls, dep, depCls);
-
- map.put(rsrcName, rsrc);
-
- if (log.isDebugEnabled()) {
- log.debug("Created resource [rsrcCls=" + rsrcCls.getName() + ", rsrcName=" + rsrcName +
- ", rsrc=" + rsrc + ", depCls=" + depCls + ", dep=" + dep + ']');
- }
- }
-
- return rsrc.getResource();
- }
- finally {
- lock.writeLock().unlock();
- }
- }
-
- /**
- * Creates object from class {@code rsrcCls} and inject all
- * necessary resources for it.
- *
- * @param rsrcCls Class in which resources should be injected.
- * @param dep Deployment.
- * @param depCls Deployed class.
- * @return Created object with injected resources.
- * @throws IgniteCheckedException Thrown in case of any errors during injection.
- */
- private CachedResource createResource(Class<?> rsrcCls, GridDeployment dep, Class<?> depCls) throws IgniteCheckedException {
- assert dep != null;
-
- try {
- Object rsrc = rsrcCls.newInstance();
-
- // Inject resources into shared resource.
- ioc.inject(rsrc, IgniteLoggerResource.class, new GridResourceBasicInjector<>(
- log.getLogger(rsrcCls)), dep, depCls);
- ioc.inject(rsrc, IgniteInstanceResource.class, gridInjector, dep, depCls);
- ioc.inject(rsrc, IgniteSpringApplicationContextResource.class, springCtxInjector, dep, depCls);
- ioc.inject(rsrc, IgniteSpringResource.class, springBeanInjector, dep, depCls);
- ioc.inject(rsrc, IgniteLoggerResource.class, logInjector, dep, depCls);
- ioc.inject(rsrc, IgniteServiceResource.class, srvcInjector, dep, depCls);
-
- for (Method mtd : getMethodsWithAnnotation(rsrcCls, IgniteUserResourceOnDeployed.class)) {
- mtd.setAccessible(true);
-
- mtd.invoke(rsrc);
- }
-
- return new CachedResource(rsrc, dep.classLoader());
- }
- catch (InstantiationException e) {
- throw new IgniteCheckedException("Failed to instantiate task shared resource: " + rsrcCls, e);
- }
- catch (IllegalAccessException e) {
- throw new IgniteCheckedException("Failed to access task shared resource (is class public?): " + rsrcCls, e);
- }
- catch (InvocationTargetException e) {
- throw new IgniteCheckedException("Failed to initialize task shared resource: " + rsrcCls, e);
- }
- }
-
- /**
- * Gets set of methods with given annotation.
- *
- * @param cls Class in which search for methods.
- * @param annCls Annotation.
- * @return Set of methods with given annotations.
- * @throws IgniteCheckedException Thrown in case when method contains parameters.
- */
- private List<Method> getMethodsWithAnnotation(Class<?> cls, Class<? extends Annotation> annCls)
- throws IgniteCheckedException {
- List<Method> mtds = new ArrayList<>();
-
- for (Class<?> c = cls; !c.equals(Object.class); c = c.getSuperclass()) {
- for (Method mtd : c.getDeclaredMethods()) {
- if (mtd.getAnnotation(annCls) != null) {
- if (mtd.getParameterTypes().length > 0) {
- throw new IgniteCheckedException("Task shared resource initialization or finalization method should " +
- "not have parameters: " + mtd);
- }
-
- mtds.add(mtd);
- }
- }
- }
-
- return mtds;
- }
-
- /** */
- private static class CachedResource {
- /** */
- private final Object rsrc;
-
- /** */
- private final ClassLoader ldr;
-
- /**
- * @param rsrc Resource.
- * @param ldr Class loader.
- */
- CachedResource(Object rsrc, ClassLoader ldr) {
- this.rsrc = rsrc;
- this.ldr = ldr;
- }
-
- /**
- * Gets property rsrc.
- *
- * @return Property rsrc.
- */
- public Object getResource() {
- return rsrc;
- }
-
- /**
- * Gets property ldr.
- *
- * @return Property ldr.
- */
- public ClassLoader getClassLoader() {
- return ldr;
- }
-
- /** {@inheritDoc} */
- @Override public String toString() {
- return S.toString(CachedResource.class, this);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad57f8ed/modules/core/src/main/java/org/gridgain/grid/kernal/processors/resource/GridResourceProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/resource/GridResourceProcessor.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/resource/GridResourceProcessor.java
index 856990e..f73a37f 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/resource/GridResourceProcessor.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/resource/GridResourceProcessor.java
@@ -11,10 +11,8 @@ package org.gridgain.grid.kernal.processors.resource;
import org.apache.ignite.*;
import org.apache.ignite.compute.*;
-import org.apache.ignite.configuration.*;
import org.apache.ignite.lifecycle.*;
import org.apache.ignite.managed.*;
-import org.apache.ignite.marshaller.*;
import org.apache.ignite.resources.*;
import org.apache.ignite.spi.*;
import org.gridgain.grid.kernal.*;
@@ -24,11 +22,9 @@ import org.gridgain.grid.util.lang.*;
import org.gridgain.grid.util.typedef.*;
import org.jetbrains.annotations.*;
-import javax.management.*;
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.util.*;
-import java.util.concurrent.*;
/**
* Processor for all Grid and task/job resources.
@@ -42,8 +38,7 @@ public class GridResourceProcessor extends GridProcessorAdapter {
IgniteSpringApplicationContextResource.class,
IgniteSpringResource.class,
IgniteLoggerResource.class,
- IgniteServiceResource.class,
- IgniteUserResource.class);
+ IgniteServiceResource.class);
/** */
private static final Collection<Class<? extends Annotation>> TASK_INJECTIONS = Arrays.asList(
@@ -54,33 +49,11 @@ public class GridResourceProcessor extends GridProcessorAdapter {
IgniteSpringApplicationContextResource.class,
IgniteSpringResource.class,
IgniteLoggerResource.class,
- IgniteServiceResource.class,
- IgniteUserResource.class);
+ IgniteServiceResource.class);
/** Grid instance injector. */
private GridResourceBasicInjector<GridEx> gridInjector;
- /** GridGain home folder injector. */
- private GridResourceBasicInjector<String> ggHomeInjector;
-
- /** Grid name injector. */
- private GridResourceBasicInjector<String> ggNameInjector;
-
- /** Local host binding injector. */
- private GridResourceBasicInjector<String> locHostInjector;
-
- /** MBean server injector. */
- private GridResourceBasicInjector<MBeanServer> mbeanSrvInjector;
-
- /** Grid thread executor injector. */
- private GridResourceBasicInjector<Executor> execInjector;
-
- /** Grid marshaller injector. */
- private GridResourceBasicInjector<IgniteMarshaller> marshInjector;
-
- /** Local node ID injector. */
- private GridResourceBasicInjector<UUID> nodeIdInjector;
-
/** Spring application context injector. */
private GridResourceInjector springCtxInjector;
@@ -90,15 +63,9 @@ public class GridResourceProcessor extends GridProcessorAdapter {
/** Services injector. */
private GridResourceBasicInjector<Collection<ManagedService>> srvcInjector;
- /** Address resolver injector. */
- private GridResourceBasicInjector<IgniteAddressResolver> addrsRslvrInjector;
-
/** Spring bean resources injector. */
private GridResourceInjector springBeanInjector;
- /** Task resources injector. */
- private GridResourceCustomInjector customInjector;
-
/** Cleaning injector. */
private final GridResourceInjector nullInjector = new GridResourceBasicInjector<>(null);
@@ -117,34 +84,12 @@ public class GridResourceProcessor extends GridProcessorAdapter {
super(ctx);
gridInjector = new GridResourceBasicInjector<>(ctx.grid());
- ggHomeInjector = new GridResourceBasicInjector<>(ctx.config().getGridGainHome());
- ggNameInjector = new GridResourceBasicInjector<>(ctx.config().getGridName());
- locHostInjector = new GridResourceBasicInjector<>(ctx.config().getLocalHost());
- mbeanSrvInjector = new GridResourceBasicInjector<>(ctx.config().getMBeanServer());
- marshInjector = new GridResourceBasicInjector<>(ctx.config().getMarshaller());
- execInjector = new GridResourceBasicInjector<Executor>(ctx.config().getExecutorService());
- nodeIdInjector = new GridResourceBasicInjector<>(ctx.config().getNodeId());
logInjector = new GridResourceLoggerInjector(ctx.config().getGridLogger());
srvcInjector = new GridResourceServiceInjector(ctx.grid());
- addrsRslvrInjector = new GridResourceBasicInjector<>(ctx.config().getAddressResolver());
}
/** {@inheritDoc} */
@Override public void start() throws IgniteCheckedException {
- customInjector = new GridResourceCustomInjector(log, ioc);
-
- customInjector.setExecutorInjector(execInjector);
- customInjector.setGridgainHomeInjector(ggHomeInjector);
- customInjector.setGridNameInjector(ggNameInjector);
- customInjector.setGridInjector(gridInjector);
- customInjector.setMbeanServerInjector(mbeanSrvInjector);
- customInjector.setNodeIdInjector(nodeIdInjector);
- customInjector.setMarshallerInjector(marshInjector);
- customInjector.setSpringContextInjector(springCtxInjector);
- customInjector.setSpringBeanInjector(springBeanInjector);
- customInjector.setLogInjector(logInjector);
- customInjector.setSrvcInjector(srvcInjector);
-
if (log.isDebugEnabled())
log.debug("Started resource processor.");
}
@@ -175,8 +120,6 @@ public class GridResourceProcessor extends GridProcessorAdapter {
* @param dep Deployment to release resources for.
*/
public void onUndeployed(GridDeployment dep) {
- customInjector.undeploy(dep);
-
ioc.onUndeployed(dep.classLoader());
}
@@ -227,9 +170,6 @@ public class GridResourceProcessor extends GridProcessorAdapter {
ioc.inject(target, IgniteSpringResource.class, springBeanInjector, dep, depCls);
ioc.inject(target, IgniteLoggerResource.class, logInjector, dep, depCls);
ioc.inject(target, IgniteServiceResource.class, srvcInjector, dep, depCls);
-
- // Inject users resource.
- ioc.inject(target, IgniteUserResource.class, customInjector, dep, depCls);
}
/**
@@ -352,11 +292,6 @@ public class GridResourceProcessor extends GridProcessorAdapter {
ioc.inject(job, IgniteLoggerResource.class, logInjector, dep, taskCls);
else if (annCls == IgniteServiceResource.class)
ioc.inject(job, IgniteServiceResource.class, srvcInjector, dep, taskCls);
- else {
- assert annCls == IgniteUserResource.class;
-
- ioc.inject(job, IgniteUserResource.class, customInjector, dep, taskCls);
- }
}
}
}
@@ -416,11 +351,6 @@ public class GridResourceProcessor extends GridProcessorAdapter {
ioc.inject(obj, IgniteLoggerResource.class, logInjector, dep, taskCls);
else if (annCls == IgniteServiceResource.class)
ioc.inject(obj, IgniteServiceResource.class, srvcInjector, dep, taskCls);
- else {
- assert annCls == IgniteUserResource.class;
-
- ioc.inject(obj, IgniteUserResource.class, customInjector, dep, taskCls);
- }
}
}
@@ -643,15 +573,6 @@ public class GridResourceProcessor extends GridProcessorAdapter {
}
/**
- * Returns GridResourceCustomInjector object. For tests only!!!
- *
- * @return GridResourceCustomInjector object.
- */
- GridResourceCustomInjector getResourceCustomInjector() {
- return customInjector;
- }
-
- /**
* Return original object if Spring AOP used with proxy objects.
*
* @param target Target object.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad57f8ed/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PJobClassLoaderSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PJobClassLoaderSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PJobClassLoaderSelfTest.java
index 859cc0e..577b919 100644
--- a/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PJobClassLoaderSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PJobClassLoaderSelfTest.java
@@ -115,10 +115,6 @@ public class GridP2PJobClassLoaderSelfTest extends GridCommonAbstractTest {
ldr = getClass().getClassLoader();
return Collections.singletonList(new ComputeJobAdapter() {
- /** User resource */
- @IgniteUserResource
- private transient UserResource rsrcJob;
-
/** {@inheritDoc} */
@SuppressWarnings({"ObjectEquality"})
public Serializable execute() throws IgniteCheckedException {
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad57f8ed/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PLocalDeploymentSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PLocalDeploymentSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PLocalDeploymentSelfTest.java
index 2d129db..e0b4dce 100644
--- a/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PLocalDeploymentSelfTest.java
+++ b/modules/core/src/test/java/org/gridgain/grid/p2p/GridP2PLocalDeploymentSelfTest.java
@@ -34,12 +34,6 @@ public class GridP2PLocalDeploymentSelfTest extends GridCommonAbstractTest {
private IgniteDeploymentMode depMode;
/** */
- private static UserResource jobRsrc;
-
- /** */
- private static UserResource taskRsrc;
-
- /** */
private static ClassLoader jobLdr;
/** */
@@ -68,19 +62,11 @@ public class GridP2PLocalDeploymentSelfTest extends GridCommonAbstractTest {
ignite1.compute().execute(TestTask.class, ignite2.cluster().localNode().id());
- assert jobRsrc != taskRsrc;
-
- UserResource saveTaskRsrc = taskRsrc;
- UserResource saveJobRsrc = jobRsrc;
-
ClassLoader saveTaskLdr = taskLdr;
ClassLoader saveJobLdr = jobLdr;
ignite2.compute().execute(TestTask.class, ignite1.cluster().localNode().id());
- assert saveJobRsrc == taskRsrc;
- assert saveTaskRsrc == jobRsrc;
-
assert saveTaskLdr == jobLdr;
assert saveJobLdr == taskLdr;
}
@@ -215,16 +201,9 @@ public class GridP2PLocalDeploymentSelfTest extends GridCommonAbstractTest {
* Task that will always fail due to non-transient resource injection.
*/
public static class TestTask extends ComputeTaskAdapter<UUID, Serializable> {
- /** User resource. */
- @IgniteUserResource
- private transient UserResource rsrc;
-
/** {@inheritDoc} */
@Override public Map<? extends ComputeJob, ClusterNode> map(final List<ClusterNode> subgrid, UUID arg)
throws IgniteCheckedException {
-
- taskRsrc = rsrc;
-
taskLdr = getClass().getClassLoader();
for (ClusterNode node : subgrid) {
@@ -239,7 +218,6 @@ public class GridP2PLocalDeploymentSelfTest extends GridCommonAbstractTest {
@Override public int[] reduce(List<ComputeJobResult> results) throws IgniteCheckedException {
assert results.size() == 1;
- assert taskRsrc == rsrc;
assert taskLdr == getClass().getClassLoader();
return null;
@@ -249,10 +227,6 @@ public class GridP2PLocalDeploymentSelfTest extends GridCommonAbstractTest {
* Simple job class.
*/
public static class TestJob extends ComputeJobAdapter {
- /** User resource. */
- @IgniteUserResource
- private transient UserResource rsrc;
-
/** Ignite instance. */
@IgniteInstanceResource
private Ignite ignite;
@@ -266,8 +240,6 @@ public class GridP2PLocalDeploymentSelfTest extends GridCommonAbstractTest {
@Override public Serializable execute() throws IgniteCheckedException {
assert ignite.configuration().getNodeId().equals(argument(0));
- jobRsrc = rsrc;
-
jobLdr = getClass().getClassLoader();
return null;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad57f8ed/modules/extdata/p2p/src/main/java/org/gridgain/grid/tests/p2p/GridExternalCacheQueryReducerClosure.java
----------------------------------------------------------------------
diff --git a/modules/extdata/p2p/src/main/java/org/gridgain/grid/tests/p2p/GridExternalCacheQueryReducerClosure.java b/modules/extdata/p2p/src/main/java/org/gridgain/grid/tests/p2p/GridExternalCacheQueryReducerClosure.java
index 066999f..2b3a471 100644
--- a/modules/extdata/p2p/src/main/java/org/gridgain/grid/tests/p2p/GridExternalCacheQueryReducerClosure.java
+++ b/modules/extdata/p2p/src/main/java/org/gridgain/grid/tests/p2p/GridExternalCacheQueryReducerClosure.java
@@ -19,10 +19,6 @@ import java.util.*;
* {@link GridP2PAwareTestUserResource}.
*/
public class GridExternalCacheQueryReducerClosure implements IgniteReducer<Map.Entry<Integer, Integer>, Integer> {
- /** */
- @IgniteUserResource
- private transient GridP2PAwareTestUserResource rsrc;
-
/** {@inheritDoc} */
@Override public boolean collect(Map.Entry<Integer, Integer> e) {
return true;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad57f8ed/modules/extdata/p2p/src/main/java/org/gridgain/grid/tests/p2p/GridP2PAwareTestUserResource.java
----------------------------------------------------------------------
diff --git a/modules/extdata/p2p/src/main/java/org/gridgain/grid/tests/p2p/GridP2PAwareTestUserResource.java b/modules/extdata/p2p/src/main/java/org/gridgain/grid/tests/p2p/GridP2PAwareTestUserResource.java
index 18f6733..2a7b576 100644
--- a/modules/extdata/p2p/src/main/java/org/gridgain/grid/tests/p2p/GridP2PAwareTestUserResource.java
+++ b/modules/extdata/p2p/src/main/java/org/gridgain/grid/tests/p2p/GridP2PAwareTestUserResource.java
@@ -33,26 +33,6 @@ public class GridP2PAwareTestUserResource {
private IgniteLogger log;
/**
- * Invoked on resource deploy. Increments deploy counter
- * in node-local store.
- */
- @SuppressWarnings("ConstantConditions")
- @IgniteUserResourceOnDeployed
- public void onDeployed() {
- concurrentIncrement(DEPLOY_CNT_KEY);
- }
-
- /**
- * Invoked on resource undeploy. Increments undeploy counter
- * in node-local store.
- */
- @SuppressWarnings("ConstantConditions")
- @IgniteUserResourceOnUndeployed
- public void onUndeployed() {
- concurrentIncrement(UNDEPLOY_CNT_KEY);
- }
-
- /**
* Concurrently increments numeric cache value.
*
* @param key Key for the value to be incremented.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad57f8ed/modules/extdata/p2p/src/main/java/org/gridgain/grid/tests/p2p/GridP2PEventFilterExternalPath1.java
----------------------------------------------------------------------
diff --git a/modules/extdata/p2p/src/main/java/org/gridgain/grid/tests/p2p/GridP2PEventFilterExternalPath1.java b/modules/extdata/p2p/src/main/java/org/gridgain/grid/tests/p2p/GridP2PEventFilterExternalPath1.java
index 322e6b7..0224cba 100644
--- a/modules/extdata/p2p/src/main/java/org/gridgain/grid/tests/p2p/GridP2PEventFilterExternalPath1.java
+++ b/modules/extdata/p2p/src/main/java/org/gridgain/grid/tests/p2p/GridP2PEventFilterExternalPath1.java
@@ -20,10 +20,6 @@ import org.gridgain.grid.*;
*/
@SuppressWarnings({"ProhibitedExceptionThrown"})
public class GridP2PEventFilterExternalPath1 implements IgnitePredicate<IgniteEvent> {
- /** */
- @IgniteUserResource
- private transient GridTestUserResource rsrc;
-
/** Instance of grid. Used for save class loader and injected resource. */
@IgniteInstanceResource
private Ignite ignite;
@@ -32,7 +28,6 @@ public class GridP2PEventFilterExternalPath1 implements IgnitePredicate<IgniteEv
@Override public boolean apply(IgniteEvent evt) {
try {
int[] res = new int[] {
- System.identityHashCode(rsrc),
System.identityHashCode(getClass().getClassLoader())
};
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad57f8ed/modules/extdata/p2p/src/main/java/org/gridgain/grid/tests/p2p/GridP2PEventFilterExternalPath2.java
----------------------------------------------------------------------
diff --git a/modules/extdata/p2p/src/main/java/org/gridgain/grid/tests/p2p/GridP2PEventFilterExternalPath2.java b/modules/extdata/p2p/src/main/java/org/gridgain/grid/tests/p2p/GridP2PEventFilterExternalPath2.java
index 15c1133..7c4cde3 100644
--- a/modules/extdata/p2p/src/main/java/org/gridgain/grid/tests/p2p/GridP2PEventFilterExternalPath2.java
+++ b/modules/extdata/p2p/src/main/java/org/gridgain/grid/tests/p2p/GridP2PEventFilterExternalPath2.java
@@ -20,10 +20,6 @@ import org.gridgain.grid.*;
*/
@SuppressWarnings({"ProhibitedExceptionThrown"})
public class GridP2PEventFilterExternalPath2 implements IgnitePredicate<IgniteEvent> {
- /** */
- @IgniteUserResource
- private transient GridTestUserResource rsrc;
-
/** Instance of grid. Used for save class loader and injected resource. */
@IgniteInstanceResource
private Ignite ignite;
@@ -32,7 +28,6 @@ public class GridP2PEventFilterExternalPath2 implements IgnitePredicate<IgniteEv
@Override public boolean apply(IgniteEvent evt) {
try {
int[] res = new int[] {
- System.identityHashCode(rsrc),
System.identityHashCode(getClass().getClassLoader())
};
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad57f8ed/modules/extdata/p2p/src/main/java/org/gridgain/grid/tests/p2p/GridP2PTestTaskExternalPath1.java
----------------------------------------------------------------------
diff --git a/modules/extdata/p2p/src/main/java/org/gridgain/grid/tests/p2p/GridP2PTestTaskExternalPath1.java b/modules/extdata/p2p/src/main/java/org/gridgain/grid/tests/p2p/GridP2PTestTaskExternalPath1.java
index 7d7be4b..2f18ace 100644
--- a/modules/extdata/p2p/src/main/java/org/gridgain/grid/tests/p2p/GridP2PTestTaskExternalPath1.java
+++ b/modules/extdata/p2p/src/main/java/org/gridgain/grid/tests/p2p/GridP2PTestTaskExternalPath1.java
@@ -82,10 +82,6 @@ public class GridP2PTestTaskExternalPath1 extends ComputeTaskAdapter<Object, int
*/
@SuppressWarnings({"PublicInnerClass"})
public static class TestJob extends ComputeJobAdapter {
- /** User resource. */
- @IgniteUserResource
- private transient GridTestUserResource rsrc;
-
/** Task session. */
@IgniteTaskSessionResource
private ComputeTaskSession ses;
@@ -136,7 +132,6 @@ public class GridP2PTestTaskExternalPath1 extends ComputeTaskAdapter<Object, int
}
return new int[] {
- System.identityHashCode(rsrc),
System.identityHashCode(ses.getClassLoader())
};
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad57f8ed/modules/extdata/p2p/src/main/java/org/gridgain/grid/tests/p2p/GridP2PTestTaskExternalPath2.java
----------------------------------------------------------------------
diff --git a/modules/extdata/p2p/src/main/java/org/gridgain/grid/tests/p2p/GridP2PTestTaskExternalPath2.java b/modules/extdata/p2p/src/main/java/org/gridgain/grid/tests/p2p/GridP2PTestTaskExternalPath2.java
index bfff917..2c0ef3c 100644
--- a/modules/extdata/p2p/src/main/java/org/gridgain/grid/tests/p2p/GridP2PTestTaskExternalPath2.java
+++ b/modules/extdata/p2p/src/main/java/org/gridgain/grid/tests/p2p/GridP2PTestTaskExternalPath2.java
@@ -82,10 +82,6 @@ public class GridP2PTestTaskExternalPath2 extends ComputeTaskAdapter<Object, int
*/
@SuppressWarnings("PublicInnerClass")
public static class TestJob extends ComputeJobAdapter {
- /** User resource. */
- @IgniteUserResource
- private transient GridTestUserResource rsrc;
-
/** Ignite instance. */
@IgniteInstanceResource
private Ignite ignite;
@@ -129,7 +125,6 @@ public class GridP2PTestTaskExternalPath2 extends ComputeTaskAdapter<Object, int
}
return new int[] {
- System.identityHashCode(rsrc),
System.identityHashCode(ses.getClassLoader())
};
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad57f8ed/modules/spring/src/test/java/org/gridgain/grid/external/resource/GridAbstractUserExternalResource.java
----------------------------------------------------------------------
diff --git a/modules/spring/src/test/java/org/gridgain/grid/external/resource/GridAbstractUserExternalResource.java b/modules/spring/src/test/java/org/gridgain/grid/external/resource/GridAbstractUserExternalResource.java
deleted file mode 100644
index 134d34a..0000000
--- a/modules/spring/src/test/java/org/gridgain/grid/external/resource/GridAbstractUserExternalResource.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/* @java.file.header */
-
-/* _________ _____ __________________ _____
- * __ ____/___________(_)______ /__ ____/______ ____(_)_______
- * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
- * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
- * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
- */
-
-package org.gridgain.grid.external.resource;
-
-import org.apache.ignite.*;
-import org.apache.ignite.resources.*;
-import org.springframework.context.*;
-import javax.management.*;
-import java.util.*;
-import java.util.concurrent.*;
-
-/**
- * Tests task resource injection.
- */
-@SuppressWarnings({"UnusedDeclaration"})
-public abstract class GridAbstractUserExternalResource {
- /** */
- static final Map<Class<?>, Integer> createClss = new HashMap<>();
-
- /** */
- static final Map<Class<?>, Integer> deployClss = new HashMap<>();
-
- /** */
- static final Map<Class<?>, Integer> undeployClss = new HashMap<>();
-
- /** */
- @IgniteLoggerResource
- private IgniteLogger log;
-
- /** */
- @IgniteInstanceResource
- private Ignite ignite;
-
- /** */
- @IgniteSpringApplicationContextResource
- private ApplicationContext springCtx;
-
- /** */
- GridAbstractUserExternalResource() {
- addUsage(createClss);
- }
-
- /** */
- @SuppressWarnings("unused")
- @IgniteUserResourceOnDeployed
- private void deploy() {
- addUsage(deployClss);
-
- assert log != null;
- assert ignite != null;
- assert springCtx != null;
-
- log.info("Deploying resource: " + this);
- }
-
- /** */
- @SuppressWarnings("unused")
- @IgniteUserResourceOnUndeployed
- private void undeploy() {
- addUsage(undeployClss);
-
- assert log != null;
- assert ignite != null;
- assert springCtx != null;
-
- log.info("Undeploying resource: " + this);
- }
-
- /** */
- @SuppressWarnings("unused")
- private void neverCalled() {
- assert false;
- }
-
- /**
- * @param map Usage map to check.
- */
- @SuppressWarnings("SynchronizationOnLocalVariableOrMethodParameter")
- private void addUsage(Map<Class<?>, Integer> map) {
- synchronized (map) {
- Integer cnt = map.get(getClass());
-
- map.put(getClass(), cnt == null ? 1 : cnt + 1);
- }
- }
-
- /**
- * @param usage Map of classes to their usages.
- * @param cls Used class.
- * @param cnt Expected number of usages.
- */
- public static void checkUsageCount(Map<Class<?>, Integer> usage, Class<?> cls, int cnt) {
- Integer used = usage.get(cls);
-
- if (used == null)
- used = 0;
-
- assert used == cnt : "Invalid count [expected=" + cnt + ", actual=" + used + ", usageMap=" + usage + ']';
- }
-
- /** {@inheritDoc} */
- @Override public String toString() {
- StringBuilder buf = new StringBuilder();
-
- buf.append(getClass().getSimpleName()).append(" [");
- buf.append(']');
-
- return buf.toString();
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad57f8ed/modules/spring/src/test/java/org/gridgain/grid/external/resource/GridUserExternalResource1.java
----------------------------------------------------------------------
diff --git a/modules/spring/src/test/java/org/gridgain/grid/external/resource/GridUserExternalResource1.java b/modules/spring/src/test/java/org/gridgain/grid/external/resource/GridUserExternalResource1.java
deleted file mode 100644
index 9c02a3f..0000000
--- a/modules/spring/src/test/java/org/gridgain/grid/external/resource/GridUserExternalResource1.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/* @java.file.header */
-
-/* _________ _____ __________________ _____
- * __ ____/___________(_)______ /__ ____/______ ____(_)_______
- * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
- * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
- * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
- */
-
-package org.gridgain.grid.external.resource;
-
-/**
- * External resource which could be injected.
- */
-public class GridUserExternalResource1 extends GridAbstractUserExternalResource {
- // No-op.
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad57f8ed/modules/spring/src/test/java/org/gridgain/grid/external/resource/GridUserExternalResource2.java
----------------------------------------------------------------------
diff --git a/modules/spring/src/test/java/org/gridgain/grid/external/resource/GridUserExternalResource2.java b/modules/spring/src/test/java/org/gridgain/grid/external/resource/GridUserExternalResource2.java
deleted file mode 100644
index fd9ffdf..0000000
--- a/modules/spring/src/test/java/org/gridgain/grid/external/resource/GridUserExternalResource2.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/* @java.file.header */
-
-/* _________ _____ __________________ _____
- * __ ____/___________(_)______ /__ ____/______ ____(_)_______
- * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
- * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
- * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
- */
-
-package org.gridgain.grid.external.resource;
-
-/**
- * External resource which could be injected.
- */
-public class GridUserExternalResource2 extends GridAbstractUserExternalResource {
- // No-op.
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad57f8ed/modules/spring/src/test/java/org/gridgain/grid/external/resource/GridUserExternalResourceTask1.java
----------------------------------------------------------------------
diff --git a/modules/spring/src/test/java/org/gridgain/grid/external/resource/GridUserExternalResourceTask1.java b/modules/spring/src/test/java/org/gridgain/grid/external/resource/GridUserExternalResourceTask1.java
deleted file mode 100644
index 2164a70..0000000
--- a/modules/spring/src/test/java/org/gridgain/grid/external/resource/GridUserExternalResourceTask1.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/* @java.file.header */
-
-/* _________ _____ __________________ _____
- * __ ____/___________(_)______ /__ ____/______ ____(_)_______
- * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
- * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
- * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
- */
-
-package org.gridgain.grid.external.resource;
-
-import org.apache.ignite.*;
-import org.apache.ignite.compute.*;
-import org.apache.ignite.resources.*;
-import org.gridgain.grid.*;
-
-import java.io.*;
-import java.util.*;
-
-import static org.gridgain.grid.external.resource.GridAbstractUserExternalResource.*;
-
-/**
- * Resource injection task.
- */
-public class GridUserExternalResourceTask1 extends ComputeTaskSplitAdapter<Object, Object> {
- /** User resource. */
- @IgniteUserResource(resourceClass = GridUserExternalResource1.class)
- private transient GridAbstractUserExternalResource rsrc1;
-
- /** User resource. */
- @IgniteUserResource
- private transient GridUserExternalResource2 rsrc2;
-
- /** User resource. */
- @IgniteUserResource(resourceClass = GridUserExternalResource1.class, resourceName = "rsrc3")
- private transient GridAbstractUserExternalResource rsrc3;
-
- /** User resource. */
- @IgniteUserResource(resourceName = "rsrc4")
- private transient GridUserExternalResource2 rsrc4;
-
- /** */
- @IgniteLoggerResource
- private IgniteLogger log;
-
- /** {@inheritDoc} */
- @Override protected Collection<ComputeJobAdapter> split(int gridSize, Object arg) throws IgniteCheckedException {
- assert rsrc1 != null;
- assert rsrc2 != null;
- assert rsrc3 != null;
- assert rsrc4 != null;
- assert log != null;
-
- checkUsageCount(createClss, GridUserExternalResource1.class, 2);
- checkUsageCount(createClss, GridUserExternalResource2.class, 2);
- checkUsageCount(deployClss, GridUserExternalResource1.class, 2);
- checkUsageCount(deployClss, GridUserExternalResource2.class, 2);
-
- log.info("Injected shared resource1 into task: " + rsrc1);
- log.info("Injected shared resource2 into task: " + rsrc2);
- log.info("Injected shared resource3 into task: " + rsrc3);
- log.info("Injected shared resource4 into task: " + rsrc4);
- log.info("Injected log resource into task: " + log);
-
- Collection<ComputeJobAdapter> jobs = new ArrayList<>(gridSize);
-
- for (int i = 0; i < gridSize; i++)
- jobs.add(new GridUserExternalResourceJob1());
-
- return jobs;
- }
-
- /** {@inheritDoc} */
- @Override public Object reduce(List<ComputeJobResult> results) throws IgniteCheckedException {
- assert rsrc1 != null;
- assert rsrc2 != null;
- assert rsrc3 != null;
- assert rsrc4 != null;
- assert log != null;
-
- checkUsageCount(createClss, GridUserExternalResource1.class, 2);
- checkUsageCount(createClss, GridUserExternalResource2.class, 2);
- checkUsageCount(deployClss, GridUserExternalResource1.class, 2);
- checkUsageCount(deployClss, GridUserExternalResource2.class, 2);
-
- // Nothing to reduce.
- return null;
- }
-
- /**
- * Job with injected resources.
- */
- public final class GridUserExternalResourceJob1 extends ComputeJobAdapter {
- /** User resource. */
- @IgniteUserResource
- private transient GridUserExternalResource1 rsrc5;
-
- /** User resource. */
- @IgniteUserResource(resourceClass = GridUserExternalResource2.class)
- private transient GridAbstractUserExternalResource rsrc6;
-
- /** User resource. */
- @IgniteUserResource(resourceName = "rsrc3")
- private transient GridUserExternalResource1 rsrc7;
-
- /** User resource. */
- @IgniteUserResource(resourceClass = GridUserExternalResource2.class, resourceName = "rsrc4")
- private transient GridAbstractUserExternalResource rsrc8;
-
- /** {@inheritDoc} */
- @SuppressWarnings({"ObjectEquality"})
- @Override public Serializable execute() throws IgniteCheckedException {
- assert rsrc1 != null;
- assert rsrc2 != null;
- assert rsrc3 != null;
- assert rsrc4 != null;
- assert log != null;
-
- assert rsrc5 != null;
- assert rsrc6 != null;
- assert rsrc7 != null;
- assert rsrc8 != null;
-
- checkUsageCount(createClss, GridUserExternalResource1.class, 2);
- checkUsageCount(createClss, GridUserExternalResource2.class, 2);
- checkUsageCount(deployClss, GridUserExternalResource1.class, 2);
- checkUsageCount(deployClss, GridUserExternalResource2.class, 2);
-
- // Make sure that neither task nor global scope got
- // created more than once.
- assert rsrc1 == rsrc5;
- assert rsrc2 == rsrc6;
- assert rsrc3 == rsrc7;
- assert rsrc4 == rsrc8;
-
- log.info("Injected shared resource1 into job: " + rsrc1);
- log.info("Injected shared resource2 into job: " + rsrc2);
- log.info("Injected shared resource3 into job: " + rsrc3);
- log.info("Injected shared resource4 into job: " + rsrc4);
- log.info("Injected shared resource5 into job: " + rsrc5);
- log.info("Injected shared resource6 into job: " + rsrc6);
- log.info("Injected shared resource7 into job: " + rsrc7);
- log.info("Injected shared resource8 into job: " + rsrc8);
- log.info("Injected log resource into job: " + log);
-
- return null;
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad57f8ed/modules/spring/src/test/java/org/gridgain/grid/external/resource/GridUserExternalResourceTask2.java
----------------------------------------------------------------------
diff --git a/modules/spring/src/test/java/org/gridgain/grid/external/resource/GridUserExternalResourceTask2.java b/modules/spring/src/test/java/org/gridgain/grid/external/resource/GridUserExternalResourceTask2.java
deleted file mode 100644
index ec39d6b..0000000
--- a/modules/spring/src/test/java/org/gridgain/grid/external/resource/GridUserExternalResourceTask2.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/* @java.file.header */
-
-/* _________ _____ __________________ _____
- * __ ____/___________(_)______ /__ ____/______ ____(_)_______
- * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
- * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
- * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
- */
-
-package org.gridgain.grid.external.resource;
-
-import org.apache.ignite.*;
-import org.apache.ignite.compute.*;
-import org.apache.ignite.resources.*;
-import org.gridgain.grid.*;
-
-import java.io.*;
-import java.util.*;
-
-import static org.gridgain.grid.external.resource.GridAbstractUserExternalResource.*;
-
-/**
- * Resource injection task.
- */
-@SuppressWarnings("PublicInnerClass")
-public class GridUserExternalResourceTask2 extends ComputeTaskSplitAdapter<Object, Object> {
- /** User resource. */
- @IgniteUserResource
- private transient GridUserExternalResource1 rsrc1;
-
- /** User resource. */
- @IgniteUserResource(resourceClass = GridUserExternalResource2.class)
- private transient GridAbstractUserExternalResource rsrc2;
-
- /** User resource. */
- @IgniteUserResource(resourceName = "rsrc3")
- private transient GridUserExternalResource1 rsrc3;
-
- /** User resource. */
- @IgniteUserResource(resourceClass = GridUserExternalResource2.class, resourceName = "rsrc4")
- private transient GridAbstractUserExternalResource rsrc4;
-
- /** */
- @IgniteLoggerResource
- private IgniteLogger log;
-
- /** */
- @IgniteTaskSessionResource
- private ComputeTaskSession ses;
-
- /** {@inheritDoc} */
- @Override protected Collection<ComputeJobAdapter> split(int gridSize, Object arg) throws IgniteCheckedException {
- assert rsrc1 != null;
- assert rsrc2 != null;
- assert rsrc3 != null;
- assert rsrc4 != null;
- assert log != null;
- assert ses != null;
-
- checkUsageCount(createClss, GridUserExternalResource1.class, 2);
- checkUsageCount(createClss, GridUserExternalResource2.class, 2);
- checkUsageCount(deployClss, GridUserExternalResource1.class, 2);
- checkUsageCount(deployClss, GridUserExternalResource2.class, 2);
-
- log.info("Injected shared resource1 into task: " + rsrc1);
- log.info("Injected shared resource2 into task: " + rsrc2);
- log.info("Injected shared resource3 into task: " + rsrc3);
- log.info("Injected shared resource4 into task: " + rsrc4);
-
- Collection<ComputeJobAdapter> jobs = new ArrayList<>(gridSize);
-
- for (int i = 0; i < gridSize; i++)
- jobs.add(new GridUserExternalResourceJob2());
-
- return jobs;
- }
-
- /** {@inheritDoc} */
- @Override public Object reduce(List<ComputeJobResult> results) throws IgniteCheckedException {
- assert rsrc1 != null;
- assert rsrc2 != null;
- assert rsrc3 != null;
- assert rsrc4 != null;
- assert log != null;
-
- checkUsageCount(createClss, GridUserExternalResource1.class, 2);
- checkUsageCount(createClss, GridUserExternalResource2.class, 2);
- checkUsageCount(deployClss, GridUserExternalResource1.class, 2);
- checkUsageCount(deployClss, GridUserExternalResource2.class, 2);
-
- // Nothing to reduce.
- return null;
- }
- /**
- * Job with injected resources.
- */
- public final class GridUserExternalResourceJob2 extends ComputeJobAdapter {
- /** User resource. */
- @IgniteUserResource(resourceClass = GridUserExternalResource1.class)
- private transient GridAbstractUserExternalResource rsrc5;
-
- /** User resource. */
- @IgniteUserResource
- private transient GridUserExternalResource2 rsrc6;
-
- /** User resource. */
- @IgniteUserResource(resourceClass = GridUserExternalResource1.class, resourceName = "rsrc3")
- private transient GridAbstractUserExternalResource rsrc7;
-
- /** User resource. */
- @IgniteUserResource(resourceName = "rsrc4")
- private transient GridUserExternalResource2 rsrc8;
-
- /** {@inheritDoc} */
- @SuppressWarnings({"ObjectEquality"})
- @Override public Serializable execute() {
- assert rsrc1 != null;
- assert rsrc2 != null;
- assert rsrc3 != null;
- assert rsrc4 != null;
- assert log != null;
-
- assert rsrc5 != null;
- assert rsrc6 != null;
- assert rsrc7 != null;
- assert rsrc8 != null;
-
- // Make sure that neither task nor global scope got
- // created more than once.
- assert rsrc1 == rsrc5;
- assert rsrc2 == rsrc6;
- assert rsrc3 == rsrc7;
- assert rsrc4 == rsrc8;
-
- // According to the UserResource class description
- // different tasks should have different resources deployed.
- // Thus second task (this one) should have 4 created/deployed resources.
- checkUsageCount(createClss, GridUserExternalResource1.class, 2);
- checkUsageCount(createClss, GridUserExternalResource2.class, 2);
- checkUsageCount(deployClss, GridUserExternalResource1.class, 2);
- checkUsageCount(deployClss, GridUserExternalResource2.class, 2);
-
- log.info("Injected shared resource1 into job: " + rsrc1);
- log.info("Injected shared resource2 into job: " + rsrc2);
- log.info("Injected shared resource3 into job: " + rsrc3);
- log.info("Injected shared resource4 into job: " + rsrc4);
- log.info("Injected shared resource5 into job: " + rsrc5);
- log.info("Injected shared resource6 into job: " + rsrc6);
- log.info("Injected shared resource7 into job: " + rsrc7);
- log.info("Injected shared resource8 into job: " + rsrc8);
- log.info("Injected log resource into job: " + log);
-
- return null;
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad57f8ed/modules/spring/src/test/java/org/gridgain/grid/external/resource/package.html
----------------------------------------------------------------------
diff --git a/modules/spring/src/test/java/org/gridgain/grid/external/resource/package.html b/modules/spring/src/test/java/org/gridgain/grid/external/resource/package.html
deleted file mode 100644
index 5cad80a..0000000
--- a/modules/spring/src/test/java/org/gridgain/grid/external/resource/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--
- @html.file.header
- _________ _____ __________________ _____
- __ ____/___________(_)______ /__ ____/______ ____(_)_______
- _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
- / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
- \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
--->
-<html>
-<body>
- <!-- Package description. -->
- Contains internal tests or test related classes and interfaces.
-</body>
-</html>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad57f8ed/modules/spring/src/test/java/org/gridgain/grid/kernal/processors/resource/GridAbstractUserResource.java
----------------------------------------------------------------------
diff --git a/modules/spring/src/test/java/org/gridgain/grid/kernal/processors/resource/GridAbstractUserResource.java b/modules/spring/src/test/java/org/gridgain/grid/kernal/processors/resource/GridAbstractUserResource.java
index 68c1f1d..26a75b7 100644
--- a/modules/spring/src/test/java/org/gridgain/grid/kernal/processors/resource/GridAbstractUserResource.java
+++ b/modules/spring/src/test/java/org/gridgain/grid/kernal/processors/resource/GridAbstractUserResource.java
@@ -69,32 +69,6 @@ abstract class GridAbstractUserResource {
/** */
@SuppressWarnings("unused")
- @IgniteUserResourceOnDeployed
- private void deploy() {
- addUsage(deployClss);
-
- assert log != null;
- assert ignite != null;
- assert springCtx != null;
-
- log.info("Deploying resource: " + this);
- }
-
- /** */
- @SuppressWarnings("unused")
- @IgniteUserResourceOnUndeployed
- private void undeploy() {
- addUsage(undeployClss);
-
- assert log != null;
- assert ignite != null;
- assert springCtx != null;
-
- log.info("Undeploying resource: " + this);
- }
-
- /** */
- @SuppressWarnings("unused")
private void neverCalled() {
assert false;
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad57f8ed/modules/spring/src/test/java/org/gridgain/grid/kernal/processors/resource/GridResourceConcurrentUndeploySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/spring/src/test/java/org/gridgain/grid/kernal/processors/resource/GridResourceConcurrentUndeploySelfTest.java b/modules/spring/src/test/java/org/gridgain/grid/kernal/processors/resource/GridResourceConcurrentUndeploySelfTest.java
index 4947af2..fba23d2 100644
--- a/modules/spring/src/test/java/org/gridgain/grid/kernal/processors/resource/GridResourceConcurrentUndeploySelfTest.java
+++ b/modules/spring/src/test/java/org/gridgain/grid/kernal/processors/resource/GridResourceConcurrentUndeploySelfTest.java
@@ -395,22 +395,11 @@ public class GridResourceConcurrentUndeploySelfTest extends GridCommonAbstractTe
/** */
public static class UserResourceTask1 extends ComputeTaskAdapter<Boolean, Object> {
- /** */
- @IgniteUserResource
- private transient UserResource rsrcTask;
-
/** {@inheritDoc} */
@Override public Map<? extends ComputeJob, ClusterNode> map(List<ClusterNode> subgrid, @Nullable Boolean arg) throws IgniteCheckedException {
- assert rsrcTask != null;
-
for (ClusterNode node : subgrid) {
if (node.id().equals(nodeToExec)) {
return Collections.singletonMap(new ComputeJobAdapter(arg) {
- /** */
- @SuppressWarnings("unused")
- @IgniteUserResource
- private transient UserResource2 rsrc2;
-
/** {@inheritDoc} */
@SuppressWarnings({"ObjectEquality"})
@Override public Serializable execute() {
@@ -450,8 +439,6 @@ public class GridResourceConcurrentUndeploySelfTest extends GridCommonAbstractTe
/** {@inheritDoc} */
@Override public Object reduce(List<ComputeJobResult> results) throws IgniteCheckedException {
- assert rsrcTask != null;
-
return null;
}
}