[jboss-svn-commits] JBL Code SVN: r32426 - in labs/jbossrules/trunk: drools-grid/drools-grid-core/src/test/java/org/drools/grid and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Apr 5 16:03:01 EDT 2010
Author: salaboy21
Date: 2010-04-05 16:03:00 -0400 (Mon, 05 Apr 2010)
New Revision: 32426
Added:
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/grid/ExecutionNode.java
Modified:
labs/jbossrules/trunk/drools-grid/drools-grid-core/src/test/java/org/drools/grid/ExecutionNodeBaseTest.java
Log:
JBRULES-2446: Drools Services API
- Move ExecutionNode to Drools API
Copied: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/grid/ExecutionNode.java (from rev 32423, labs/jbossrules/trunk/drools-grid/drools-grid-core/src/main/java/org/drools/grid/ExecutionNode.java)
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/grid/ExecutionNode.java (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/grid/ExecutionNode.java 2010-04-05 20:03:00 UTC (rev 32426)
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2010 salaboy.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * 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.
+ * under the License.
+ */
+package org.drools.grid;
+
+import java.util.Map;
+import java.util.UUID;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ *
+ * @author salaboy
+ */
+public class ExecutionNode {
+
+ private String id;
+ private final Map<Class<?>, Object> services = new ConcurrentHashMap<Class<?>, Object>();
+
+ public ExecutionNode() {
+ this.id = UUID.randomUUID().toString();
+ }
+
+ public ExecutionNode(String id) {
+ this.id = id;
+ }
+
+ public <T> T get(Class<T> interfaceClass) {
+ synchronized (interfaceClass) {
+ Object service = services.get(interfaceClass);
+ if (service == null) {
+ try {
+ Class<?> implementingClass = Class.forName(interfaceClass.getCanonicalName() + "Impl");
+
+ service = implementingClass.newInstance();
+ services.put(interfaceClass, service);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+ return interfaceClass.cast(service);
+ }
+ }
+
+ public <T> void set(Class<T> interfaceClass, T provider) {
+ synchronized (interfaceClass) {
+ services.put(interfaceClass, provider);
+ }
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-grid/drools-grid-core/src/test/java/org/drools/grid/ExecutionNodeBaseTest.java
===================================================================
--- labs/jbossrules/trunk/drools-grid/drools-grid-core/src/test/java/org/drools/grid/ExecutionNodeBaseTest.java 2010-04-05 20:02:26 UTC (rev 32425)
+++ labs/jbossrules/trunk/drools-grid/drools-grid-core/src/test/java/org/drools/grid/ExecutionNodeBaseTest.java 2010-04-05 20:03:00 UTC (rev 32426)
@@ -19,7 +19,6 @@
import org.drools.KnowledgeBase;
-import org.drools.grid.ExecutionNode;
import org.drools.KnowledgeBaseFactoryService;
import org.drools.builder.DirectoryLookupFactoryService;
import org.drools.builder.KnowledgeBuilder;
More information about the jboss-svn-commits
mailing list