[jboss-svn-commits] JBL Code SVN: r17157 - in labs/jbossrules/trunk/drools-compiler/src: test/java/org/drools/xml/rules and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Dec 10 08:31:02 EST 2007


Author: mark.proctor at jboss.com
Date: 2007-12-10 08:31:02 -0500 (Mon, 10 Dec 2007)
New Revision: 17157

Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilderConfiguration.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/rules/DumperTestHelper.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/rules/XmlPackageReaderTest.java
Log:
JBRULES-1375 Create initial ePDL language parser implementation
-Fixed failing tests

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilderConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilderConfiguration.java	2007-12-10 13:21:37 UTC (rev 17156)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilderConfiguration.java	2007-12-10 13:31:02 UTC (rev 17157)
@@ -16,7 +16,13 @@
  * limitations under the License.
  */
 
+import java.io.File;
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
 import java.util.Collections;
+import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
@@ -26,6 +32,8 @@
 import org.drools.RuntimeDroolsException;
 import org.drools.base.accumulators.AccumulateFunction;
 import org.drools.util.ChainedProperties;
+import org.drools.xml.SemanticModule;
+import org.drools.xml.SemanticModules;
 
 /**
  * This class configures the package compiler. 
@@ -60,6 +68,8 @@
     private ChainedProperties   chainedProperties;
 
     private Map                 accumulateFunctions;
+    
+    private SemanticModules     semanticModules;   
 
     /**
      * Constructor that sets the parent class loader for the package being built/compiled
@@ -197,6 +207,128 @@
             this.classLoader = classLoader;
         }
     }
+    
+//    public void addSemanticModule(SemanticModule module) {
+//        if ( this.semanticModules == null ) {
+//            initSemanticModules();
+//        }
+//        this.semanticModules.addSemanticModule( module );
+//    }
+//    
+//    public SemanticModules getSemanticModules() {
+//        if ( this.semanticModules == null ) {
+//            initSemanticModules();
+//        }        
+//        return this.semanticModules;
+//    }
+//    
+//    public void initSemanticModules() {
+//        this.semanticModules = new SemanticModules();
+//        // split on each space
+//        String locations[] = this.chainedProperties.getProperty( "semanticModues", "" ).split( "\\s" );
+//        
+//        int i = 0;
+//        // load each SemanticModule
+//        for ( String moduleLocation : locations ) {
+//            // trim leading/trailing spaces and quotes
+//            moduleLocation = moduleLocation.trim();
+//            if ( moduleLocation.startsWith( "\"" ) ) {
+//                moduleLocation = moduleLocation.substring( 1 );
+//            }
+//            if ( moduleLocation.endsWith( "\"" ) ) {
+//                moduleLocation = moduleLocation.substring( 0, moduleLocation.length() -1 );
+//            }
+//            loadSemanticModule(moduleLocation);
+//        }
+//    }
+//        
+//        public void loadSemanticModule(String moduleLocation) {
+//            ChainedProperties properties = new ChainedProperties(this.classLoader, moduleLocation );
+//            String uri = properties.getProperty( "uri", null );
+//            if ( uri == null || uri.trim().equals( "" ) ) {
+//                throw new RuntimeException( "Semantic Module URI property must not be empty" );
+//            }
+//        
+//            if ( classLoader == null ) {
+//                classLoader = Thread.currentThread().getContextClassLoader();
+//                if ( classLoader == null ) {
+//                    classLoader = this.getClass().getClassLoader();
+//                }
+//            }
+//
+//
+//            // User home properties file
+//            loadProperties( System.getProperty( "user.home" ) + moduleLocation );
+//
+//            // Working directory properties file
+//            loadProperties( moduleLocation );
+//
+//            // check META-INF directories for all known ClassLoaders
+//            ClassLoader confClassLoader = classLoader;
+//            if ( confClassLoader != null ) {
+//                loadProperties( getResources( "META-INF/" + moduleLocation,
+//                                              confClassLoader ) );
+//            }
+//
+//            confClassLoader = getClass().getClassLoader();
+//            if ( confClassLoader != null && confClassLoader != classLoader ) {
+//                loadProperties( getResources( "META-INF/drools." + moduleLocation,
+//                                              confClassLoader ),
+//                                this.props );
+//            }
+//
+//            confClassLoader = Thread.currentThread().getContextClassLoader();
+//            if ( confClassLoader != null && confClassLoader != classLoader ) {
+//                loadProperties( getResources( "META-INF/drools." + confFileName,
+//                                              confClassLoader ),
+//                                this.props );
+//            }
+//
+//            confClassLoader = ClassLoader.getSystemClassLoader();
+//            if ( confClassLoader != null && confClassLoader != classLoader ) {
+//                loadProperties( getResources( "META-INF/drools." + confFileName,
+//                                              confClassLoader ),
+//                                this.props );
+//            }
+//        }
+//
+//        private Properties loadProperties(String fileName) {
+//            Properties properties = null;
+//            if ( fileName != null ) {
+//                File file = new File( fileName );
+//                if ( file != null && file.exists() ) {
+//                    try {
+//                        properties = loadProperties( file.toURL() );
+//                    } catch ( MalformedURLException e ) {
+//                        throw new IllegalArgumentException( "file.toURL() failed for drools.packagebuilder.conf properties value '" + file + "'" );
+//                    }
+//                } else {
+//                    throw new IllegalArgumentException( fileName + " is specified but cannot be found '" + file + "'" );
+//                }
+//            }
+//            return properties;
+//        }
+//
+//        private Properties loadProperties(URL confURL) {
+//            Properties properties = new Properties();
+//            try {
+//                properties.load( confURL.openStream() );
+//            } catch ( IOException e ) {
+//                throw new IllegalArgumentException( "Invalid URL to properties file '" + confURL.toExternalForm() + "'" );
+//            }
+//            return properties;
+//        }        
+//        
+//        private Enumeration getResources(String name,
+//                                         ClassLoader classLoader) {
+//            Enumeration enumeration = null;
+//            try {
+//                enumeration = classLoader.getResources( name );
+//            } catch ( IOException e ) {
+//                e.printStackTrace();
+//            }
+//            return enumeration;
+//        }
 
     private void buildAccumulateFunctionsMap() {
         this.accumulateFunctions = new HashMap();

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/rules/DumperTestHelper.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/rules/DumperTestHelper.java	2007-12-10 13:21:37 UTC (rev 17156)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/rules/DumperTestHelper.java	2007-12-10 13:31:02 UTC (rev 17157)
@@ -12,6 +12,7 @@
 import org.drools.compiler.DrlParser;
 import org.drools.lang.DrlDumper;
 import org.drools.lang.descr.PackageDescr;
+import org.drools.xml.SemanticModules;
 import org.drools.xml.XmlDumper;
 import org.drools.xml.XmlPackageReader;
 
@@ -24,7 +25,7 @@
     
     public static void XmlFile(String filename) throws Exception {
 
-        XmlPackageReader xmlPackageReader = new XmlPackageReader();
+        XmlPackageReader xmlPackageReader = new XmlPackageReader( new SemanticModules() );
         xmlPackageReader.read( new InputStreamReader( DumperTestHelper.class.getResourceAsStream( filename ) ) );
         final PackageDescr pkgOriginal = xmlPackageReader.getPackageDescr();
 

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/rules/XmlPackageReaderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/rules/XmlPackageReaderTest.java	2007-12-10 13:21:37 UTC (rev 17156)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/rules/XmlPackageReaderTest.java	2007-12-10 13:31:02 UTC (rev 17157)
@@ -34,6 +34,7 @@
 import org.drools.lang.descr.ReturnValueRestrictionDescr;
 import org.drools.lang.descr.RuleDescr;
 import org.drools.lang.descr.VariableRestrictionDescr;
+import org.drools.xml.SemanticModules;
 import org.drools.xml.XmlPackageReader;
 
 public class XmlPackageReaderTest extends TestCase {
@@ -51,7 +52,7 @@
     }
 
     public void testParseFrom() throws Exception {
-        final XmlPackageReader xmlPackageReader = new XmlPackageReader();
+        final XmlPackageReader xmlPackageReader = new XmlPackageReader( new SemanticModules() );
         xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseFrom.xml" ) ) );
         final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
         assertNotNull( packageDescr );
@@ -69,7 +70,7 @@
     }
 
     public void testAccumulate() throws Exception {
-        final XmlPackageReader xmlPackageReader = new XmlPackageReader();
+        final XmlPackageReader xmlPackageReader = new XmlPackageReader( new SemanticModules() );
         xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseAccumulate.xml" ) ) );
         final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
         assertNotNull( packageDescr );
@@ -112,7 +113,7 @@
     
     
     public void testAccumulateMultiPattern() throws Exception {
-        final XmlPackageReader xmlPackageReader = new XmlPackageReader();
+        final XmlPackageReader xmlPackageReader = new XmlPackageReader( new SemanticModules() );
         xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseAccumulate.xml" ) ) );
         final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
         assertNotNull( packageDescr );
@@ -143,7 +144,7 @@
     }
     
     public void testParseForall() throws Exception {
-        final XmlPackageReader xmlPackageReader = new XmlPackageReader();
+        final XmlPackageReader xmlPackageReader = new XmlPackageReader( new SemanticModules() );
         xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseForall.xml" ) ) );
         final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
         assertNotNull( packageDescr );
@@ -165,7 +166,7 @@
     }
 
     public void testParseExists() throws Exception {
-        final XmlPackageReader xmlPackageReader = new XmlPackageReader();
+        final XmlPackageReader xmlPackageReader = new XmlPackageReader( new SemanticModules() );
         xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseExists.xml" ) ) );
         final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
         assertNotNull( packageDescr );
@@ -191,7 +192,7 @@
     }
 
     public void testParseCollect() throws Exception {
-        final XmlPackageReader xmlPackageReader = new XmlPackageReader();
+        final XmlPackageReader xmlPackageReader = new XmlPackageReader( new SemanticModules() );
         xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseCollect.xml" ) ) );
         final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
 
@@ -245,7 +246,7 @@
     }
 
     public void testParsePackageName() throws Exception {
-        final XmlPackageReader xmlPackageReader = new XmlPackageReader();
+        final XmlPackageReader xmlPackageReader = new XmlPackageReader( new SemanticModules() );
         xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParsePackageName.xml" ) ) );
         final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
         assertNotNull( packageDescr );
@@ -254,7 +255,7 @@
     }
 
     public void testParseImport() throws Exception {
-        final XmlPackageReader xmlPackageReader = new XmlPackageReader();
+        final XmlPackageReader xmlPackageReader = new XmlPackageReader( new SemanticModules() );
         xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseImport.xml" ) ) );
         final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
         assertNotNull( packageDescr );
@@ -276,7 +277,7 @@
     }
 
     public void testParseGlobal() throws Exception {
-        final XmlPackageReader xmlPackageReader = new XmlPackageReader();
+        final XmlPackageReader xmlPackageReader = new XmlPackageReader( new SemanticModules() );
         xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseGlobal.xml" ) ) );
         final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
         assertNotNull( packageDescr );
@@ -307,7 +308,7 @@
     }
 
     public void testParseFunction() throws Exception {
-        final XmlPackageReader xmlPackageReader = new XmlPackageReader();
+        final XmlPackageReader xmlPackageReader = new XmlPackageReader( new SemanticModules() );
         xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseFunction.xml" ) ) );
         final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
         assertNotNull( packageDescr );
@@ -354,7 +355,7 @@
     }
 
     public void testParseRule() throws Exception {
-        final XmlPackageReader xmlPackageReader = new XmlPackageReader();
+        final XmlPackageReader xmlPackageReader = new XmlPackageReader( new SemanticModules() );
         xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseRule.xml" ) ) );
         final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
         assertNotNull( packageDescr );
@@ -423,7 +424,7 @@
     }
 
     public void testParseLhs() throws Exception {
-        final XmlPackageReader xmlPackageReader = new XmlPackageReader();
+        final XmlPackageReader xmlPackageReader = new XmlPackageReader( new SemanticModules() );
         xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseLhs.xml" ) ) );
         final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
         assertNotNull( packageDescr );
@@ -562,7 +563,7 @@
     }
 
     public void testParseRhs() throws Exception {
-        final XmlPackageReader xmlPackageReader = new XmlPackageReader();
+        final XmlPackageReader xmlPackageReader = new XmlPackageReader( new SemanticModules() );
         xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseRhs.xml" ) ) );
         final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
         assertNotNull( packageDescr );
@@ -618,7 +619,7 @@
     }
 
     public void testParseQuery() throws Exception {
-        final XmlPackageReader xmlPackageReader = new XmlPackageReader();
+        final XmlPackageReader xmlPackageReader = new XmlPackageReader( new SemanticModules() );
         xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseQuery.xml" ) ) );
         final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
         assertNotNull( packageDescr );




More information about the jboss-svn-commits mailing list