[jboss-svn-commits] JBL Code SVN: r32567 - in labs/jbossrules/trunk/drools-guvnor/src: main/java/org/drools/guvnor/server/util and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Apr 14 12:05:42 EDT 2010


Author: eaa
Date: 2010-04-14 12:05:39 -0400 (Wed, 14 Apr 2010)
New Revision: 32567

Modified:
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/util/BRMSSuggestionCompletionLoader.java
   labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/PopulateDataTest.java
   labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java
   labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/rules/BRMSSuggestionCompletionLoaderTest.java
Log:
GUVNOR-527 Add the ability of creating Business Rules Templates using drools-templates 
	- BRMSSuggestionCompletionLoader adds Collection, List, Set and Number as extra fact types to SCE.
	- Fixed failing tests

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java	2010-04-14 16:03:38 UTC (rev 32566)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java	2010-04-14 16:05:39 UTC (rev 32567)
@@ -1534,7 +1534,6 @@
         try {
             PackageItem pkg = repository.loadPackage( packageName );
             BRMSSuggestionCompletionLoader loader = null;
-
             List<JarInputStream> jars = BRMSPackageBuilder.getJars( pkg );
             if ( jars != null && !jars.isEmpty() ) {
                 ClassLoader cl = BRMSPackageBuilder.createClassLoader( jars );

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/util/BRMSSuggestionCompletionLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/util/BRMSSuggestionCompletionLoader.java	2010-04-14 16:03:38 UTC (rev 32566)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/util/BRMSSuggestionCompletionLoader.java	2010-04-14 16:05:39 UTC (rev 32567)
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-
-
 import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Set;
 import java.util.jar.JarInputStream;
 
 import org.drools.guvnor.client.common.AssetFormats;
@@ -27,6 +27,7 @@
 import org.drools.guvnor.server.ServiceImplementation;
 import org.drools.guvnor.server.builder.BRMSPackageBuilder;
 import org.drools.guvnor.server.rules.SuggestionCompletionLoader;
+import org.drools.lang.descr.ImportDescr;
 import org.drools.lang.dsl.DSLTokenizedMappingFile;
 import org.drools.repository.AssetItem;
 import org.drools.repository.AssetItemIterator;
@@ -39,55 +40,71 @@
  */
 public class BRMSSuggestionCompletionLoader extends SuggestionCompletionLoader {
 
-    public SuggestionCompletionEngine getSuggestionEngine(PackageItem pkg) {
+    private final Set<ImportDescr> extraImports = new HashSet<ImportDescr>();
 
-    		StringBuilder buf = new StringBuilder();
-    		AssetItemIterator it = pkg.listAssetsByFormat(new String[] {AssetFormats.DRL_MODEL});
-    		while(it.hasNext()) {
-    			AssetItem as = it.next();
-    			buf.append(as.getContent());
-    			buf.append('\n');
-    		}
+    public BRMSSuggestionCompletionLoader() {
+        super();
+        initAndAttachExtraImportsProvider();
+    }
 
-            return super.getSuggestionEngine( ServiceImplementation.getDroolsHeader(pkg) + "\n" + buf.toString(),
-            									getJars( pkg ),
-            									getDSLMappingFiles( pkg ),
-            									getDataEnums( pkg ));
+    public BRMSSuggestionCompletionLoader(ClassLoader classLoader) {
+        super(classLoader);
+        initAndAttachExtraImportsProvider();
     }
 
+    /**
+     * Initialize the extra Imports and creates a Provider to use them.
+     */
+    private void initAndAttachExtraImportsProvider(){
+        this.extraImports.add(new ImportDescr("java.util.Set"));
+        this.extraImports.add(new ImportDescr("java.util.List"));
+        this.extraImports.add(new ImportDescr("java.util.Collection"));
+        this.extraImports.add(new ImportDescr("java.lang.Number"));
 
-    public BRMSSuggestionCompletionLoader() {
-		super();
-		// TODO Auto-generated constructor stub
-	}
+        this.addExternalImportDescrProvider(new ExternalImportDescrProvider() {
 
+            public Set<ImportDescr> getImportDescrs() {
+                return extraImports;
+            }
+        });
+    }
 
-	public BRMSSuggestionCompletionLoader(ClassLoader classLoader) {
-		super(classLoader);
-		// TODO Auto-generated constructor stub
-	}
+    public SuggestionCompletionEngine getSuggestionEngine(PackageItem pkg) {
 
+        StringBuilder buf = new StringBuilder();
+        AssetItemIterator it = pkg.listAssetsByFormat(new String[]{AssetFormats.DRL_MODEL});
+        while (it.hasNext()) {
+            AssetItem as = it.next();
+            buf.append(as.getContent());
+            buf.append('\n');
+        }
 
-	private List<String> getDataEnums(PackageItem pkg) {
-        Iterator it = pkg.listAssetsByFormat( new String[] {AssetFormats.ENUMERATION} );
+        return super.getSuggestionEngine(ServiceImplementation.getDroolsHeader(pkg) + "\n" + buf.toString(),
+                getJars(pkg),
+                getDSLMappingFiles(pkg),
+                getDataEnums(pkg));
+    }
+
+    private List<String> getDataEnums(PackageItem pkg) {
+        Iterator it = pkg.listAssetsByFormat(new String[]{AssetFormats.ENUMERATION});
         List<String> list = new ArrayList<String>();
-        while(it.hasNext()) {
+        while (it.hasNext()) {
             AssetItem item = (AssetItem) it.next();
-            list.add( item.getContent() );
+            list.add(item.getContent());
         }
         return list;
     }
 
     private List<DSLTokenizedMappingFile> getDSLMappingFiles(PackageItem pkg) {
-        return BRMSPackageBuilder.getDSLMappingFiles( pkg, new BRMSPackageBuilder.DSLErrorEvent() {
+        return BRMSPackageBuilder.getDSLMappingFiles(pkg, new BRMSPackageBuilder.DSLErrorEvent() {
+
             public void recordError(AssetItem asset, String message) {
-                errors.add( asset.getName() + " : " + message );
+                errors.add(asset.getName() + " : " + message);
             }
         });
     }
 
     private List<JarInputStream> getJars(PackageItem pkg) {
-        return BRMSPackageBuilder.getJars( pkg );
+        return BRMSPackageBuilder.getJars(pkg);
     }
-
-}
\ No newline at end of file
+}

Modified: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/PopulateDataTest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/PopulateDataTest.java	2010-04-14 16:03:38 UTC (rev 32566)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/PopulateDataTest.java	2010-04-14 16:05:39 UTC (rev 32567)
@@ -109,7 +109,8 @@
         SuggestionCompletionEngine eng = serv.loadSuggestionCompletionEngine( "com.billasurf.manufacturing.plant" );
         assertNotNull(eng);
 
-        assertEquals(2, eng.getFactTypes().length);
+        //The loader could define extra imports
+        assertTrue( eng.getFactTypes().length >= 2);
         String[] fields = (String[]) eng.getModelFields( "Board" );
         assertTrue(fields.length >= 3);
 

Modified: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java	2010-04-14 16:03:38 UTC (rev 32566)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java	2010-04-14 16:05:39 UTC (rev 32567)
@@ -85,7 +85,6 @@
 import org.drools.repository.AssetItemIterator;
 import org.drools.repository.CategoryItem;
 import org.drools.repository.PackageItem;
-import org.drools.repository.RepositoryFilter;
 import org.drools.repository.RulesRepository;
 import org.drools.repository.RulesRepositoryException;
 import org.drools.repository.StateItem;
@@ -98,6 +97,7 @@
 import org.jboss.seam.security.permission.RoleBasedPermissionResolver;
 
 import com.google.gwt.user.client.rpc.SerializableException;
+import java.util.Arrays;
 
 /**
  * This is really a collection of integration tests.
@@ -1915,14 +1915,14 @@
 
         SuggestionCompletionEngine eng = impl.loadSuggestionCompletionEngine( pkg.getName() );
         assertNotNull( eng );
-        assertEquals( 2,
-                      eng.getFactTypes().length );
 
-        for ( String ft : eng.getFactTypes() ) {
-            if ( !(ft.equals( "Board" ) || ft.equals( "Whee" )) ) {
-                fail( "Should be one of the above..." );
-            }
-        }
+        //The loader could define extra imports
+        assertTrue(eng.getFactTypes().length >= 2);
+        List<String> factTypes =Arrays.asList(eng.getFactTypes());
+
+        assertTrue(factTypes.contains("Board"));
+        assertTrue(factTypes.contains("Whee"));
+
     }
 
     public void testDiscussion() throws Exception {

Modified: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/rules/BRMSSuggestionCompletionLoaderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/rules/BRMSSuggestionCompletionLoaderTest.java	2010-04-14 16:03:38 UTC (rev 32566)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/rules/BRMSSuggestionCompletionLoaderTest.java	2010-04-14 16:05:39 UTC (rev 32567)
@@ -18,7 +18,6 @@
 
 
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.List;
 
 import junit.framework.TestCase;
@@ -115,12 +114,13 @@
 
         SuggestionCompletionEngine engine = loader.getSuggestionEngine( item );
         assertNotNull(engine);
-        String[] factTypes = engine.getFactTypes();
 
-        assertEquals( 2, factTypes.length );
-        assertEquals("Date", factTypes[0]);
-        assertEquals("Person", factTypes[1]);
+        List<String> factTypes = Arrays.asList(engine.getFactTypes());
 
+        assertEquals( 2 + loader.getExternalImportDescrs().size(), factTypes.size() );
+        assertTrue(factTypes.contains("Date"));
+        assertTrue(factTypes.contains("Person"));
+
         String[] fieldsForType = engine.getFieldCompletions( "Person" );
         assertEquals( 2, fieldsForType.length );
         assertEquals("birthDate", fieldsForType[0]);
@@ -146,7 +146,7 @@
         SuggestionCompletionEngine engine = loader.getSuggestionEngine( item );
         assertNotNull(engine);
         String[] factTypes = engine.getFactTypes();
-        assertEquals(1, factTypes.length);
+        assertEquals(1 + loader.getExternalImportDescrs().size(), factTypes.length);
         assertEquals("Car", factTypes[0]);
 
         List<String> fields = Arrays.asList( engine.getFieldCompletions("Car") );



More information about the jboss-svn-commits mailing list