[jboss-svn-commits] JBL Code SVN: r31393 - in labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src: main/java/org/drools/guvnor/server/rules and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Feb 3 14:06:24 EST 2010


Author: baunax
Date: 2010-02-03 14:06:23 -0500 (Wed, 03 Feb 2010)
New Revision: 31393

Modified:
   labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine.java
   labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/server/rules/SuggestionCompletionLoader.java
   labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/server/util/DataEnumLoader.java
   labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/test/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine2Test.java
   labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/test/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngineTest.java
Log:
- added some tests
- added generics to missing parts

Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine.java	2010-02-03 18:46:47 UTC (rev 31392)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine.java	2010-02-03 19:06:23 UTC (rev 31393)
@@ -238,7 +238,7 @@
     public DropDownData getEnums(FactPattern pat,
                                  String field) {
 
-        Map dataEnumLookupFields = loadDataEnumLookupFields();
+        Map<String, Object> dataEnumLookupFields = loadDataEnumLookupFields();
 
         if ( pat.constraintList != null && pat.constraintList.constraints != null ) {
             // we may need to check for data dependent enums
@@ -279,9 +279,9 @@
                     key += "]";
                 }
 
-                DropDownData data = DropDownData.create( (String[]) this.dataEnumLists.get( key ) );
+                DropDownData data = DropDownData.create( this.dataEnumLists.get( key ) );
                 if ( data != null ) {
-                    return DropDownData.create( (String[]) this.dataEnumLists.get( key ) );
+                    return DropDownData.create( this.dataEnumLists.get( key ) );
                 }
             } else if ( _typeFields != null ) {
                 // these enums are calculated on demand, server side...
@@ -326,7 +326,7 @@
                                  String field) {
 
         if ( currentValues != null ) {
-            Map dataEnumLookupFields = loadDataEnumLookupFields();
+            Map<String, Object> dataEnumLookupFields = loadDataEnumLookupFields();
             Object _typeField = dataEnumLookupFields.get( type + "." + field );
 
             if ( _typeField instanceof String ) {
@@ -376,9 +376,9 @@
     String getQueryString(String factType,
                           String field,
                           String[] fieldsNeeded,
-                          Map dataEnumLists) {
-        for ( Iterator iterator = dataEnumLists.keySet().iterator(); iterator.hasNext(); ) {
-            String key = (String) iterator.next();
+                          Map<String, String[]> dataEnumLists) {
+        for ( Iterator<String> iterator = dataEnumLists.keySet().iterator(); iterator.hasNext(); ) {
+            String key = iterator.next();
             if ( key.startsWith( factType + "." + field ) && fieldsNeeded != null && key.contains( "[" ) ) {
 
                 String[] values = key.substring( key.indexOf( '[' ) + 1,
@@ -423,12 +423,12 @@
      * This is only used by enums that are like Fact.field[something=X] and so
      * on.
      */
-    Map loadDataEnumLookupFields() {
+    Map<String, Object> loadDataEnumLookupFields() {
         if ( this.dataEnumLookupFields == null ) {
-            this.dataEnumLookupFields = new HashMap();
-            Set keys = this.dataEnumLists.keySet();
-            for ( Iterator iter = keys.iterator(); iter.hasNext(); ) {
-                String key = (String) iter.next();
+            this.dataEnumLookupFields = new HashMap<String, Object>();
+            Set<String> keys = this.dataEnumLists.keySet();
+            for ( Iterator<String> iter = keys.iterator(); iter.hasNext(); ) {
+                String key = iter.next();
                 if ( key.indexOf( '[' ) != -1 ) {
                     int ix = key.indexOf( '[' );
                     String factField = key.substring( 0,

Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/server/rules/SuggestionCompletionLoader.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/server/rules/SuggestionCompletionLoader.java	2010-02-03 18:46:47 UTC (rev 31392)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/server/rules/SuggestionCompletionLoader.java	2010-02-03 19:06:23 UTC (rev 31393)
@@ -90,7 +90,7 @@
             }
         }
         this.loader = new MapBackedClassLoader(classLoader);
-        this.resolver = new ClassTypeResolver(new HashSet(),
+        this.resolver = new ClassTypeResolver(new HashSet<String>(),
                 this.loader);
     }
 
@@ -105,8 +105,8 @@
      * @return A SuggestionCompletionEngine ready to be used in anger.
      */
     public SuggestionCompletionEngine getSuggestionEngine(final String header,
-                                                          final List jars,
-                                                          final List dsls) {
+                                                          final List<JarInputStream> jars,
+                                                          final List<DSLTokenizedMappingFile> dsls) {
         return this.getSuggestionEngine(header, jars, dsls, Collections.EMPTY_LIST);
     }
 
@@ -124,9 +124,9 @@
      * @return A SuggestionCompletionEngine ready to be used in anger.
      */
     public SuggestionCompletionEngine getSuggestionEngine(final String header,
-                                                          final List jars,
-                                                          final List dsls,
-                                                          final List dataEnums) {
+                                                          final List<JarInputStream> jars,
+                                                          final List<DSLTokenizedMappingFile> dsls,
+                                                          final List<String> dataEnums) {
         this.builder.newCompletionEngine();
 
         if (!header.trim().equals("")) {
@@ -145,9 +145,9 @@
         return sce;
     }
 
-    private void populateDateEnums(List dataEnums, SuggestionCompletionEngine sce) {
-        for (Iterator iter = dataEnums.iterator(); iter.hasNext();) {
-            String enumFile = (String) iter.next();
+    private void populateDateEnums(List<String> dataEnums, SuggestionCompletionEngine sce) {
+        for (Iterator<String> iter = dataEnums.iterator(); iter.hasNext();) {
+            String enumFile = iter.next();
             DataEnumLoader enumLoader = new DataEnumLoader(enumFile);
             if (enumLoader.hasErrors()) {
                 this.errors.addAll(enumLoader.getErrors());
@@ -191,7 +191,7 @@
      * @param pkg
      * @param errors
      */
-    private void populateDSLSentences(final List dsls) {
+    private void populateDSLSentences(final List<DSLTokenizedMappingFile> dsls) {
         // AssetItemIterator it = pkg.listAssetsByFormat( new
         // String[]{AssetFormats.DSL} );
         // while ( it.hasNext() ) {
@@ -221,8 +221,8 @@
         // }
         // }
 
-        for (final Iterator it = dsls.iterator(); it.hasNext();) {
-            final DSLTokenizedMappingFile file = (DSLTokenizedMappingFile) it.next();
+        for (final Iterator<DSLTokenizedMappingFile> it = dsls.iterator(); it.hasNext();) {
+            final DSLTokenizedMappingFile file = it.next();
             final DSLMapping mapping = file.getMapping();
             for (final Iterator entries = mapping.getEntries().iterator(); entries.hasNext();) {
                 final AbstractDSLMappingEntry entry = (AbstractDSLMappingEntry) entries.next();

Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/server/util/DataEnumLoader.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/server/util/DataEnumLoader.java	2010-02-03 18:46:47 UTC (rev 31392)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/server/util/DataEnumLoader.java	2010-02-03 19:06:23 UTC (rev 31393)
@@ -3,7 +3,6 @@
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.StringTokenizer;
@@ -15,21 +14,21 @@
  */
 public class DataEnumLoader {
 
-	private final List errors;
-	private final Map data;
+	private final List<String> errors;
+	private final Map<String, String[]> data;
 
 	/**
 	 * This is the source of the asset, which is an MVEL map (minus the outer "[") of course.
 	 */
 	public DataEnumLoader(String mvelSource) {
-		errors = new ArrayList();
+		errors = new ArrayList<String>();
 		this.data = loadEnum(mvelSource);
 	}
 
-	private Map loadEnum(String mvelSource) {
+	private Map<String, String[]> loadEnum(String mvelSource) {
 
         if (mvelSource == null || (mvelSource.trim().equals( "" ))) {
-            return Collections.EMPTY_MAP;
+            return Collections.emptyMap();
         }
         if (mvelSource.startsWith("=")) {
         	mvelSource = mvelSource.substring(1);
@@ -38,33 +37,33 @@
         }
 		final Object mvelData;
 		try {
-			mvelData = MVEL.eval(mvelSource, new HashMap());
+			mvelData = MVEL.eval(mvelSource, new HashMap<String, Object>());
 		} catch (RuntimeException e) {
 			addError("Unable to load enumeration data.");
 			addError(e.getMessage());
 			addError("Error type: " + e.getClass().getName());
-			return Collections.EMPTY_MAP;
+			return Collections.emptyMap();
 		}
-		if (!(mvelData instanceof Map)) {
+		if (!(mvelData instanceof Map<?, ?>)) {
 			addError("The expression is not a map, it is a " + mvelData.getClass().getName());
-			return Collections.EMPTY_MAP;
+			return Collections.emptyMap();
 		}
-		Map map = (Map) mvelData;
-        Map newMap = new HashMap();
-		for (Iterator iter = map.keySet().iterator(); iter.hasNext();) {
-			String key = (String) iter.next();
-			Object list = map.get(key);
-			if (!(list instanceof List || list instanceof String)) {
+		Map<String, Object> map = (Map<String, Object>) mvelData;
+        Map<String, String[]> newMap = new HashMap<String, String[]>();
+		for (Map.Entry<String, Object> entry: map.entrySet()) {
+			String key = entry.getKey();
+			Object list = entry.getValue();
+			if (!(list instanceof List<?> || list instanceof String)) {
 				if (list == null) {
 					addError("The item with " + key + " is null.");
 				} else {
 					addError("The item with " + key + " is not a list or a string, it is a " + list.getClass().getName());
 				}
-				return new HashMap();
+				return Collections.emptyMap();
 			} else if (list instanceof String) {
 				newMap.put(key, new String[] {(String)list});
 			} else {
-				List items = (List) list;
+				List<?> items = (List<?>) list;
 				String[] newItems = new String[items.size()];
 				for (int i = 0; i < items.size(); i++) {
 					Object listItem = items.get(i);
@@ -107,7 +106,7 @@
 	/**
 	 * Return a list of any errors found.
 	 */
-	public List getErrors() {
+	public List<String> getErrors() {
 		return this.errors;
 	}
 
@@ -118,7 +117,7 @@
 	/**
 	 * Return the map of Fact.field to List (of Strings).
 	 */
-	public Map getData() {
+	public Map<String, String[]> getData() {
 		return this.data;
 	}
 

Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/test/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine2Test.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/test/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine2Test.java	2010-02-03 18:46:47 UTC (rev 31392)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/test/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine2Test.java	2010-02-03 19:06:23 UTC (rev 31393)
@@ -3,14 +3,13 @@
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.HashSet;
 import java.util.List;
-import java.util.Set;
 import java.util.jar.JarInputStream;
 
 import junit.framework.TestCase;
 
 import org.drools.guvnor.server.rules.SuggestionCompletionLoader;
+import org.drools.lang.dsl.DSLTokenizedMappingFile;
 
 public class SuggestionCompletionEngine2Test extends TestCase {
 
@@ -20,9 +19,9 @@
         SuggestionCompletionLoader loader = new SuggestionCompletionLoader();
 
         SuggestionCompletionEngine engine = loader.getSuggestionEngine( pkg,
-                                                                        new ArrayList(),
-                                                                        new ArrayList(),
-                                                                        new ArrayList() );
+                                                                        new ArrayList<JarInputStream>(),
+                                                                        new ArrayList<DSLTokenizedMappingFile>(),
+                                                                        new ArrayList<String>() );
 
         List<String> methodNames = engine.getMethodNames( "ArrayList" );
 
@@ -44,7 +43,7 @@
 
         // Add jar file
         String header = "package foo \n import org.test.Person \n import org.test.Banana \n ";
-        List jars = new ArrayList();
+        List<JarInputStream> jars = new ArrayList<JarInputStream>();
         JarInputStream jis = null;
         SuggestionCompletionEngine suggestionCompletionEngine = null;
 
@@ -58,7 +57,7 @@
         try {
             suggestionCompletionEngine = loader.getSuggestionEngine( header,
                                                                      jars,
-                                                                     new ArrayList() );
+                                                                     new ArrayList<DSLTokenizedMappingFile>() );
         } catch ( ClassFormatError e ) {
             fail( "Can not load suggestions " + e );
         }
@@ -73,6 +72,10 @@
 
         assertTrue( list.contains( "Person" ) );
         assertTrue( list.contains( "Banana" ) );
+        
+        assertEquals("java.util.Collection", suggestionCompletionEngine.getFieldClassName("Person", "bananas"));
+        assertEquals(SuggestionCompletionEngine.TYPE_COLLECTION, suggestionCompletionEngine.getFieldType("Person", "bananas"));
+        assertEquals("Banana",  suggestionCompletionEngine.getParametricFieldType("Person", "bananas"));
 
     }
 

Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/test/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngineTest.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/test/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngineTest.java	2010-02-03 18:46:47 UTC (rev 31392)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/test/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngineTest.java	2010-02-03 19:06:23 UTC (rev 31393)
@@ -4,14 +4,15 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.jar.JarInputStream;
 
 import junit.framework.TestCase;
 
 import org.drools.guvnor.client.modeldriven.brl.ActionFieldValue;
 import org.drools.guvnor.client.modeldriven.brl.FactPattern;
-import org.drools.guvnor.client.modeldriven.brl.FieldConstraint;
 import org.drools.guvnor.client.modeldriven.brl.SingleFieldConstraint;
 import org.drools.guvnor.server.rules.SuggestionCompletionLoader;
+import org.drools.lang.dsl.DSLTokenizedMappingFile;
 
 public class SuggestionCompletionEngineTest extends TestCase {
 
@@ -20,8 +21,8 @@
 
         SuggestionCompletionLoader loader = new SuggestionCompletionLoader();
         SuggestionCompletionEngine engine = loader.getSuggestionEngine( pkg,
-                                                                        new ArrayList(),
-                                                                        new ArrayList() );
+                                                                        new ArrayList<JarInputStream>(),
+                                                                        new ArrayList<DSLTokenizedMappingFile>() );
 
         assertEquals( "String",
                       engine.getFieldType( "SuggestionCompletionEngineTest$NestedClass",
@@ -33,8 +34,8 @@
 
         SuggestionCompletionLoader loader = new SuggestionCompletionLoader();
         SuggestionCompletionEngine engine = loader.getSuggestionEngine( pkg,
-                                                                        new ArrayList(),
-                                                                        new ArrayList() );
+                                                                        new ArrayList<JarInputStream>(),
+                                                                        new ArrayList<DSLTokenizedMappingFile>() );
 
         assertEquals( SuggestionCompletionEngine.TYPE_STRING,
                       engine.getFieldType( "Alert",
@@ -53,8 +54,8 @@
         enums.add( "'Driver.sex' : ['M', 'F']" );
 
         SuggestionCompletionEngine engine = loader.getSuggestionEngine( pkg,
-                                                                        new ArrayList(),
-                                                                        new ArrayList(),
+                                                                        new ArrayList<JarInputStream>(),
+                                                                        new ArrayList<DSLTokenizedMappingFile>(),
                                                                         enums );
         assertEquals( "String",
                       engine.getFieldType( "SuggestionCompletionEngineTest$NestedClass",
@@ -93,13 +94,13 @@
 
         SuggestionCompletionLoader loader = new SuggestionCompletionLoader();
 
-        List enums = new ArrayList();
+        List<String> enums = new ArrayList<String>();
 
         enums.add( "'Fact.f1' : ['a1', 'a2'] \n 'Fact.f2' : ['def1', 'def2', 'def3'] \n 'Fact.f2[f1=a2]' : ['c1', 'c2']" );
 
         SuggestionCompletionEngine engine = loader.getSuggestionEngine( pkg,
-                                                                        new ArrayList(),
-                                                                        new ArrayList(),
+                                                                        new ArrayList<JarInputStream>(),
+                                                                        new ArrayList<DSLTokenizedMappingFile>(),
                                                                         enums );
         assertEquals( "String",
                       engine.getFieldType( "SuggestionCompletionEngineTest$NestedClass",
@@ -130,8 +131,8 @@
         enums.add( "'Fact.field1' : ['val1', 'val2'] 'Fact.field2' : ['val3', 'val4'] 'Fact.field2[field1=val1]' : ['f1val1a', 'f1val1b'] 'Fact.field2[field1=val2]' : ['f1val2a', 'f1val2b']" );
 
         SuggestionCompletionEngine engine = loader.getSuggestionEngine( pkg,
-                                                                        new ArrayList(),
-                                                                        new ArrayList(),
+                                                                        new ArrayList<JarInputStream>(),
+                                                                        new ArrayList<DSLTokenizedMappingFile>(),
                                                                         enums );
         assertEquals( "String",
                       engine.getFieldType( "SuggestionCompletionEngineTest$Fact",
@@ -352,7 +353,7 @@
 
     public void testSmartEnums() {
         final SuggestionCompletionEngine sce = new SuggestionCompletionEngine();
-        sce.setDataEnumLists(new HashMap());
+        sce.setDataEnumLists(new HashMap<String, String[]>());
         sce.putDataEnumList( "Fact.type",
                                new String[]{"sex", "colour"} );
         sce.putDataEnumList( "Fact.value[type=sex]",
@@ -424,7 +425,7 @@
 
     public void testSmartEnumsDependingOfSeveralFieldsTwo() {
         final SuggestionCompletionEngine sce = new SuggestionCompletionEngine();
-        sce.setDataEnumLists(new HashMap());
+        sce.setDataEnumLists(new HashMap<String, String[]>());
         sce.putDataEnumList( "Fact.field1",
                                new String[]{"a1", "a2"} );
         sce.putDataEnumList( "Fact.field2",
@@ -457,7 +458,7 @@
 
     public void testSmartEnumsDependingOfSeveralFieldsFive() {
         final SuggestionCompletionEngine sce = new SuggestionCompletionEngine();
-        sce.setDataEnumLists(new HashMap());
+        sce.setDataEnumLists(new HashMap<String, String[]>());
         sce.putDataEnumList( "Fact.field1",
                                new String[]{"a1", "a2"} );
         sce.putDataEnumList( "Fact.field2",
@@ -504,7 +505,7 @@
 
     public void testSmarterLookupEnums() {
         final SuggestionCompletionEngine sce = new SuggestionCompletionEngine();
-        sce.setDataEnumLists(new HashMap());
+        sce.setDataEnumLists(new HashMap<String, String[]>());
         sce.putDataEnumList( "Fact.type",
                                new String[]{"sex", "colour"} );
         sce.putDataEnumList( "Fact.value[f1, f2]",
@@ -520,7 +521,7 @@
         assertEquals( "colour",
                       drops[1] );
 
-        Map lookupFields = sce.loadDataEnumLookupFields();
+        Map<String, Object> lookupFields = sce.loadDataEnumLookupFields();
         assertEquals( 1,
                       lookupFields.size() );
         String[] flds = (String[]) lookupFields.get( "Fact.value" );
@@ -581,7 +582,7 @@
 
     public void testSmarterLookupEnumsDifferentOrder() {
         final SuggestionCompletionEngine sce = new SuggestionCompletionEngine();
-        sce.setDataEnumLists(new HashMap());
+        sce.setDataEnumLists(new HashMap<String, String[]>());
         sce.putDataEnumList( "Fact.type",
                                new String[]{"sex", "colour"} );
         sce.putDataEnumList( "Fact.value[e1, e2]",
@@ -599,7 +600,7 @@
         assertEquals( "colour",
                       drops[1] );
         
-        Map lookupFields = sce.loadDataEnumLookupFields();
+        Map<String, Object> lookupFields = sce.loadDataEnumLookupFields();
         assertEquals( 1,
                       lookupFields.size() );
         String[] flds = (String[]) lookupFields.get( "Fact.value" );
@@ -660,7 +661,7 @@
 
     public void testSimpleEnums() {
         final SuggestionCompletionEngine sce = new SuggestionCompletionEngine();
-        sce.setDataEnumLists(new HashMap());
+        sce.setDataEnumLists(new HashMap<String, String[]>());
         sce.putDataEnumList( "Fact.type",
                                new String[]{"sex", "colour"} );
         assertEquals( 2,
@@ -690,10 +691,9 @@
     public void testGlobalAndFacts() {
         final SuggestionCompletionEngine com = new SuggestionCompletionEngine();
 
-        com.setGlobalVariables(new HashMap() {
+        com.setGlobalVariables(new HashMap<String, String>() {
             {
-                put( "y",
-                     "Foo" );
+                put( "y", "Foo" );
             }
         });
 
@@ -712,11 +712,9 @@
 
     public void testDataDropDown() {
         assertNull( DropDownData.create( null ) );
-        assertNull( DropDownData.create( null,
-                                         null ) );
-        assertTrue( DropDownData.create( new String[]{"hey"} ) instanceof DropDownData );
-        assertTrue( DropDownData.create( "abc",
-                                         new String[]{"hey"} ) instanceof DropDownData );
+        assertNull( DropDownData.create( null, null ) );
+        assertNotNull( DropDownData.create( new String[]{"hey"} ));
+        assertNotNull( DropDownData.create( "abc", new String[]{"hey"} ) );
 
     }
 



More information about the jboss-svn-commits mailing list