[jboss-svn-commits] JBL Code SVN: r33145 - in labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src: main/java/org/drools/grid/services/local and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri May 28 11:56:47 EDT 2010
Author: salaboy21
Date: 2010-05-28 11:56:46 -0400 (Fri, 28 May 2010)
New Revision: 33145
Added:
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/local/LocalDirectoryProvider.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/ExecutionEnvByPrioritySelectionStrategy.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/GridResourceSelectionStrategy.java
Removed:
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/ExecutionEnvironmentSelectionStrategy.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/TopologyPrioritySelectionStrategy.java
Modified:
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GridTopology.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/LowPingFirstEnvironmentSelectionStrategy.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/RandomEnvironmentSelectionStrategy.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterDirectoryTest.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/ServiceAPITest.java
Log:
more refactoring around the GridTopology semantic
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GridTopology.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GridTopology.java 2010-05-28 15:36:01 UTC (rev 33144)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/GridTopology.java 2010-05-28 15:56:46 UTC (rev 33145)
@@ -5,7 +5,7 @@
import org.drools.grid.ExecutionNode;
import org.drools.grid.GenericConnection;
import org.drools.grid.GenericNodeConnector;
-import org.drools.grid.services.strategies.ExecutionEnvironmentSelectionStrategy;
+import org.drools.grid.services.strategies.GridResourceSelectionStrategy;
import org.drools.grid.strategies.ReturnAlwaysTheFirstSelectionStrategy;
/**
@@ -56,8 +56,8 @@
return this.resources.get(name);
}
- public GridResource getBestExecutionEnvironment(ExecutionEnvironmentSelectionStrategy strategy) {
- return strategy.getBestExecutionEnvironment(resources);
+ public GridResource getBestExecutionEnvironment(GridResourceSelectionStrategy strategy) {
+ return strategy.getBestGridResource(resources);
}
public Map<String, GridResource> getExecutionEnvironments() {
Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/local/LocalDirectoryProvider.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/local/LocalDirectoryProvider.java (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/local/LocalDirectoryProvider.java 2010-05-28 15:56:46 UTC (rev 33145)
@@ -0,0 +1,44 @@
+/*
+ * 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.services.local;
+
+import org.drools.grid.GenericNodeConnector;
+import org.drools.grid.services.DirectoryInstance;
+import org.drools.grid.services.GenericProvider;
+import org.drools.grid.services.GridResource;
+
+/**
+ *
+ * @author salaboy
+ */
+public class LocalDirectoryProvider extends GenericProvider{
+
+ public LocalDirectoryProvider() {
+ }
+
+ @Override
+ public GenericNodeConnector getNodeConnector() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
+ public GridResource getGridResource(String name) {
+ return new DirectoryInstance(name, this);
+ }
+
+}
Copied: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/ExecutionEnvByPrioritySelectionStrategy.java (from rev 33142, labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/TopologyPrioritySelectionStrategy.java)
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/ExecutionEnvByPrioritySelectionStrategy.java (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/ExecutionEnvByPrioritySelectionStrategy.java 2010-05-28 15:56:46 UTC (rev 33145)
@@ -0,0 +1,80 @@
+/*
+ * 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.services.strategies;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import org.drools.grid.services.ExecutionEnvironment;
+import org.drools.grid.services.GenericProvider;
+import org.drools.grid.services.GridResource;
+import org.drools.grid.services.local.LocalEnvironmentProvider;
+import org.drools.grid.services.remote.MinaEnvironmentProvider;
+
+/**
+ *
+ * @author salaboy
+ */
+public class ExecutionEnvByPrioritySelectionStrategy implements GridResourceSelectionStrategy {
+
+ private List<GridResource> resources;
+
+ public GridResource getBestGridResource() {
+
+
+
+ Collections.sort(resources, new Comparator<GridResource>() {
+
+ private Map<Class<? extends GenericProvider> , Integer> priorities
+ = new HashMap<Class<? extends GenericProvider>, Integer>() {
+ {
+ put(LocalEnvironmentProvider.class, 1);
+ // put("RioEnvironmentProvider", 2);
+ // put("HornetQEnvironmentProvider", 3);
+ put(MinaEnvironmentProvider.class, 4);
+ }
+ };
+
+ public int compare(GridResource o1, GridResource o2) {
+ return priorities.get(o1.getProvider().getClass())
+ .compareTo(priorities.get(o2.getProvider().getClass()));
+ }
+ });
+
+
+
+ return resources.get(0);
+ }
+
+ public void setResources(Map<String, GridResource> resources) {
+ List<GridResource> onlyExecutionEnvironments = new ArrayList<GridResource>();
+ for(GridResource resource : resources.values()){
+ if(resource instanceof ExecutionEnvironment ){
+ onlyExecutionEnvironments.add(resource);
+ }
+ }
+ this.resources = onlyExecutionEnvironments;
+ }
+
+ public GridResource getBestGridResource(Map<String, GridResource> resources) {
+ setResources(resources);
+ return getBestGridResource();
+ }
+}
Deleted: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/ExecutionEnvironmentSelectionStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/ExecutionEnvironmentSelectionStrategy.java 2010-05-28 15:36:01 UTC (rev 33144)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/ExecutionEnvironmentSelectionStrategy.java 2010-05-28 15:56:46 UTC (rev 33145)
@@ -1,31 +0,0 @@
-/*
- * 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.services.strategies;
-
-import java.util.Map;
-import org.drools.grid.services.GridResource;
-
-/**
- *
- * @author salaboy
- */
-public interface ExecutionEnvironmentSelectionStrategy {
- public GridResource getBestExecutionEnvironment();
- public void setEnvironments(Map<String, GridResource> environments);
- public GridResource getBestExecutionEnvironment(Map<String, GridResource> environments);
-}
Copied: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/GridResourceSelectionStrategy.java (from rev 33142, labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/ExecutionEnvironmentSelectionStrategy.java)
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/GridResourceSelectionStrategy.java (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/GridResourceSelectionStrategy.java 2010-05-28 15:56:46 UTC (rev 33145)
@@ -0,0 +1,31 @@
+/*
+ * 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.services.strategies;
+
+import java.util.Map;
+import org.drools.grid.services.GridResource;
+
+/**
+ *
+ * @author salaboy
+ */
+public interface GridResourceSelectionStrategy {
+ public GridResource getBestGridResource();
+ public void setResources(Map<String, GridResource> resources);
+ public GridResource getBestGridResource(Map<String, GridResource> environments);
+}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/LowPingFirstEnvironmentSelectionStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/LowPingFirstEnvironmentSelectionStrategy.java 2010-05-28 15:36:01 UTC (rev 33144)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/LowPingFirstEnvironmentSelectionStrategy.java 2010-05-28 15:56:46 UTC (rev 33145)
@@ -26,7 +26,7 @@
*
* The Environment with lowest ping will be selected
*/
-public class LowPingFirstEnvironmentSelectionStrategy implements ExecutionEnvironmentSelectionStrategy {
+public class LowPingFirstEnvironmentSelectionStrategy implements GridResourceSelectionStrategy {
private Map<String, GridResource> environments;
@@ -39,7 +39,7 @@
}
- public GridResource getBestExecutionEnvironment() {
+ public GridResource getBestGridResource() {
GridResource selectedEnv = null;
for(GridResource env : this.environments.values()){
if(selectedEnv != null){
@@ -60,13 +60,13 @@
return selectedEnv;
}
- public void setEnvironments(Map<String, GridResource> environments) {
+ public void setResources(Map<String, GridResource> environments) {
this.environments = environments;
}
- public GridResource getBestExecutionEnvironment(Map<String, GridResource> environments) {
- setEnvironments(environments);
- return getBestExecutionEnvironment();
+ public GridResource getBestGridResource(Map<String, GridResource> environments) {
+ setResources(environments);
+ return getBestGridResource();
}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/RandomEnvironmentSelectionStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/RandomEnvironmentSelectionStrategy.java 2010-05-28 15:36:01 UTC (rev 33144)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/RandomEnvironmentSelectionStrategy.java 2010-05-28 15:56:46 UTC (rev 33145)
@@ -24,10 +24,10 @@
*
* @author salaboy
*/
-public class RandomEnvironmentSelectionStrategy implements ExecutionEnvironmentSelectionStrategy{
+public class RandomEnvironmentSelectionStrategy implements GridResourceSelectionStrategy{
private Map<String, GridResource> environments;
- public GridResource getBestExecutionEnvironment() {
+ public GridResource getBestGridResource() {
int elementToGet = (new Double(Math.random() * 100).intValue() % environments.size());
int counter = 0;
GridResource selectedEnv = null;
@@ -40,13 +40,13 @@
return selectedEnv;
}
- public void setEnvironments(Map<String, GridResource> environments) {
+ public void setResources(Map<String, GridResource> environments) {
this.environments = environments;
}
- public GridResource getBestExecutionEnvironment(Map<String, GridResource> environments) {
- setEnvironments(environments);
- return getBestExecutionEnvironment();
+ public GridResource getBestGridResource(Map<String, GridResource> environments) {
+ setResources(environments);
+ return getBestGridResource();
}
}
Deleted: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/TopologyPrioritySelectionStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/TopologyPrioritySelectionStrategy.java 2010-05-28 15:36:01 UTC (rev 33144)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/main/java/org/drools/grid/services/strategies/TopologyPrioritySelectionStrategy.java 2010-05-28 15:56:46 UTC (rev 33145)
@@ -1,83 +0,0 @@
-/*
- * 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.services.strategies;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import org.drools.grid.services.GenericProvider;
-import org.drools.grid.services.GridResource;
-import org.drools.grid.services.local.LocalEnvironmentProvider;
-import org.drools.grid.services.remote.MinaEnvironmentProvider;
-
-/**
- *
- * @author salaboy
- */
-public class TopologyPrioritySelectionStrategy implements ExecutionEnvironmentSelectionStrategy {
-
- private Map<String, GridResource> environments;
-
- public GridResource getBestExecutionEnvironment() {
- List<GenericProvider> providers = new ArrayList<GenericProvider>();
- for(GridResource ee : environments.values()){
- providers.add(ee.getProvider());
- }
- List<GridResource> ees = new ArrayList<GridResource>();
- for(GridResource ee : environments.values()){
- ees.add(ee);
- }
-
- Collections.sort(ees, new Comparator<GridResource>() {
-
- private Map<Class<? extends GenericProvider> , Integer> priorities
- = new HashMap<Class<? extends GenericProvider>, Integer>() {
- {
- put(LocalEnvironmentProvider.class, 1);
- // put("RioEnvironmentProvider", 2);
- // put("HornetQEnvironmentProvider", 3);
- put(MinaEnvironmentProvider.class, 4);
- }
- };
-
- public int compare(GridResource o1, GridResource o2) {
- return priorities.get(o1.getProvider().getClass())
- .compareTo(priorities.get(o2.getProvider().getClass()));
- }
- });
-
- for(GridResource ee : environments.values()){
- if(ee == ees.get(0)){
- return ee;
- }
- }
-
- return null;
- }
-
- public void setEnvironments(Map<String, GridResource> environments) {
- this.environments = environments;
- }
-
- public GridResource getBestExecutionEnvironment(Map<String, GridResource> environments) {
- this.environments = environments;
- return getBestExecutionEnvironment();
- }
-}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterDirectoryTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterDirectoryTest.java 2010-05-28 15:36:01 UTC (rev 33144)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/RegisterDirectoryTest.java 2010-05-28 15:56:46 UTC (rev 33145)
@@ -17,6 +17,7 @@
package org.drools.services;
+import org.drools.grid.services.local.LocalDirectoryProvider;
import java.util.HashMap;
import java.util.Map;
import org.drools.grid.services.GenericProvider;
@@ -58,13 +59,13 @@
@Test
public void hello() {
GridTopology eet = new GridTopology("MyBusinessUnit");
-
- GenericProvider localProvider = new LocalEnvironmentProvider(null);
+ GenericProvider localDirProvider = new LocalDirectoryProvider();
+ GenericProvider localEnvProvider = new LocalEnvironmentProvider();
- eet.registerGridResource("MyLocalEnv", localProvider);
+ eet.registerGridResource("MyLocalEnv", localEnvProvider);
+ // eet.registerGridResource("MyLocalDir", localDirProvider);
-
}
}
\ No newline at end of file
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/ServiceAPITest.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/ServiceAPITest.java 2010-05-28 15:36:01 UTC (rev 33144)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-grid/drools-grid-services/src/test/java/org/drools/services/ServiceAPITest.java 2010-05-28 15:56:46 UTC (rev 33145)
@@ -41,7 +41,7 @@
import org.drools.grid.services.GenericProvider;
import org.drools.grid.services.GridTopology;
import org.drools.grid.services.remote.MinaEnvironmentProvider;
-import org.drools.grid.services.strategies.TopologyPrioritySelectionStrategy;
+import org.drools.grid.services.strategies.ExecutionEnvByPrioritySelectionStrategy;
import org.drools.io.ResourceFactory;
import org.drools.runtime.StatefulKnowledgeSession;
import org.junit.After;
@@ -93,7 +93,7 @@
@Test
public void mixedTopologyMinaAndLocal() {
- GridTopology eet = new GridTopology("MyBusinessUnit");
+ GridTopology grid = new GridTopology("MyBusinessUnit");
Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put("providerName", "Mina1");
parameters.put("providerAddress", "127.0.0.1");
@@ -101,15 +101,15 @@
GenericProvider minaProvider = new MinaEnvironmentProvider(parameters);
GenericProvider localProvider = new LocalEnvironmentProvider(null);
- eet.registerGridResource("MyMinaEnv", minaProvider);
+ grid.registerGridResource("MyMinaEnv", minaProvider);
- eet.registerGridResource("MyLocalEnv", localProvider);
+ grid.registerGridResource("MyLocalEnv", localProvider);
- GridResource ee = eet.getBestExecutionEnvironment(new TopologyPrioritySelectionStrategy());
+ GridResource ee = grid.getBestExecutionEnvironment(new ExecutionEnvByPrioritySelectionStrategy());
Assert.assertNotNull(ee);
System.out.println("EE Name = "+ee.getName());
- ExecutionNode node = eet.getExecutionNode(ee);
+ ExecutionNode node = grid.getExecutionNode(ee);
Assert.assertNotNull(node);
// Do a basic Runtime Test that register a ksession and fire some rules.
More information about the jboss-svn-commits
mailing list