[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