Changeset 8164 for mauRepo/newmoon


Ignore:
Timestamp:
13/03/12 21:52:52 (8 years ago)
Author:
mnagni
Message:
 
Location:
mauRepo/newmoon
Files:
17 added
6 edited
1 moved

Legend:

Unmodified
Added
Removed
  • mauRepo/newmoon/pom.xml

    r7942 r8164  
    44        <groupId>ndg.services.newmoon</groupId> 
    55        <artifactId>core</artifactId> 
    6         <version>1.1.2</version> 
     6        <version>1.2.0</version> 
    77 
    88    <properties> 
     
    7373                </dependency> 
    7474                <dependency> 
    75                         <groupId>org.slf4j</groupId> 
    76                         <artifactId>slf4j-api</artifactId> 
    77                         <version>1.6.1</version> 
    78                 </dependency> 
    79                 <dependency> 
    80                         <groupId>org.slf4j</groupId> 
    81                         <artifactId>slf4j-simple</artifactId> 
    82                         <version>1.6.1</version> 
    83                 </dependency> 
    84                 <dependency> 
    8575                        <groupId>commons-pool</groupId> 
    8676                        <artifactId>commons-pool</artifactId> 
     
    130120                        <groupId>ndg.services</groupId> 
    131121                        <artifactId>common</artifactId> 
    132                         <version>1.1.1</version> 
     122                        <version>1.2</version> 
    133123                </dependency> 
    134124 
     
    136126                        <groupId>ndg.services.schemas</groupId> 
    137127                        <artifactId>newmoonReport</artifactId> 
    138                         <version>0.0.1-SNAPSHOT</version> 
     128                        <version>1.0.0</version> 
    139129                </dependency> 
    140130 
     
    152142                                <groupId>org.apache.maven.plugins</groupId> 
    153143                                <artifactId>maven-compiler-plugin</artifactId> 
    154                                 <version>2.3.2</version> 
    155144                                <configuration> 
    156145                                        <source>1.6</source> 
     
    177166        <distributionManagement> 
    178167                <repository> 
    179                         <id>triton.badc.rl.ac.uk</id> 
    180                         <name>triton.badc.rl.ac.uk-releases</name> 
     168                        <id>triton.artifactory.central</id> 
    181169                        <url>http://triton.badc.rl.ac.uk:8180/artifactory/libs-releases-local</url> 
    182170                </repository> 
  • mauRepo/newmoon/src/main/java/ndg/services/newmoon/NewmoonManager.java

    r7939 r8164  
    100100                                "EncodeReport"), DEFAULT_CONFORMANCE_REPORT_NAME("ConformanceTestReport"), CONFORMANCE_TEST_DIR( 
    101101                                "conformanceDir"), ENCODE_DIR("encodeDir"), RESOURCE_NAME("defaultResourceName"), OUTPUT_DIR( 
    102                                 "exportDir"), EXECUTION_DIR("execution-directory"); 
     102                                "exportDir"), EXECUTION_DIR("execution-directory"), XMI_ADD_CLASSES("add-classes"), XMI_ADD_CONSTRAINTS("add-constraints"); 
    103103 
    104104                private final String name; 
     
    209209         *  
    210210         * @throws IOException 
     211         * @throws XMLDBException  
    211212         */ 
    212213        protected List<Resource> executePreProcessingScripts(Resource xmiDoc, RULES rules, String xqueryDir) 
    213                         throws IOException { 
     214                        throws IOException, XMLDBException { 
    214215 
    215216                List<Resource> results = new ArrayList<Resource>(); 
     
    235236                        // Add the results to the ConformaceTestResults bean. 
    236237                        ResourceSet result; 
    237                         try { 
    238                                 result = executeXQuery(xmiDoc, file, variables); 
    239                                 ResourceIterator rIter = result.getIterator(); 
    240                                 while (rIter.hasMoreResources()) 
    241                                         results.add(rIter.nextResource()); 
    242                         } catch (XMLDBException e) { 
    243                                 LOG.info("possible error", e); 
     238                        Resource rs = null; 
     239                        result = executeXQuery(xmiDoc, file, variables); 
     240                        ResourceIterator rIter = result.getIterator(); 
     241                        while (rIter.hasMoreResources()) { 
     242                                rs = rIter.nextResource(); 
     243                                results.add(rs);         
    244244                        } 
    245245                } 
     
    281281 
    282282        public InputStream precessResource(Resource xmiResource, String resourceID, MODULE_NAME collectionName, 
    283                         String xqueryDir, File outputDir) { 
     283                        String xqueryDir, File outputDir) throws XMLDBException, IOException { 
    284284                InputStream ret = null; 
    285285                if (xqueryDir == null) { 
    286286                        return null; 
    287287                } 
    288                 try { 
    289                         String moduleCollectionName = collectionName.getCollectionName() + "/" + FilenameUtils.getName(xqueryDir); 
    290                         loadQueries(moduleCollectionName, null, xqueryDir); 
    291  
    292                         List<Resource> results = new ArrayList<Resource>(); 
    293                         List<Resource> pre = executePreProcessingScripts(xmiResource, RULES.PRE, xqueryDir); 
    294                         results.addAll(pre); 
    295  
    296                         DBManager.getInstance().mapDBCollection(null); 
    297                         List<Resource> tests = executePreProcessingScripts(xmiResource, RULES.TESTS, xqueryDir); 
    298                         results.addAll(tests); 
    299  
    300                         List<Resource> post = executePreProcessingScripts(xmiResource, RULES.POST, xqueryDir); 
    301                         results.addAll(post); 
     288                String moduleCollectionName = collectionName.getCollectionName() + "/" + FilenameUtils.getName(xqueryDir); 
     289                loadQueries(moduleCollectionName, null, xqueryDir); 
     290 
     291                List<Resource> results = new ArrayList<Resource>(); 
     292                List<Resource> pre = executePreProcessingScripts(xmiResource, RULES.PRE, xqueryDir); 
     293                results.addAll(pre); 
     294 
     295                DBManager.getInstance().mapDBCollection(null); 
     296                List<Resource> tests = executePreProcessingScripts(xmiResource, RULES.TESTS, xqueryDir); 
     297                results.addAll(tests); 
     298 
     299                List<Resource> post = executePreProcessingScripts(xmiResource, RULES.POST, xqueryDir); 
     300                results.addAll(post); 
    302301                         
    303                         //This has to be fixed 
    304                         String defaultReportStylesheet = "http://ndg.services.newmoon/results-stylesheet.xsl"; 
    305                         ret = reportToFile(resourceID, defaultReportStylesheet, results, (String) variables.get(NM_PARAM.REPORT_NAME.getParamName()), outputDir); 
    306                 } catch (XMLDBException e) { 
    307                         LOG.info("possible error", e); 
    308                 } catch (IOException e) { 
    309                         LOG.info("possible error", e); 
    310                 } 
     302                //This has to be fixed 
     303                String defaultReportStylesheet = "http://ndg.services.newmoon/results-stylesheet.xsl"; 
     304                ret = reportToFile(resourceID, defaultReportStylesheet, results, (String) variables.get(NM_PARAM.REPORT_NAME.getParamName()), outputDir); 
    311305                return ret; 
    312306        } 
  • mauRepo/newmoon/src/main/java/ndg/services/newmoon/XMIEncoder.java

    r7932 r8164  
    11package ndg.services.newmoon; 
    22 
     3import java.io.BufferedReader; 
    34import java.io.File; 
     5import java.io.FileInputStream; 
     6import java.io.FileNotFoundException; 
     7import java.io.FileOutputStream; 
     8import java.io.FileWriter; 
    49import java.io.IOException; 
    510import java.io.InputStream; 
     11import java.io.InputStreamReader; 
     12import java.net.ConnectException; 
     13import java.net.MalformedURLException; 
     14import java.net.URL; 
     15import java.net.URLConnection; 
    616import java.util.List; 
    717import java.util.Map; 
     
    1424 
    1525import org.apache.commons.io.FilenameUtils; 
     26import org.apache.commons.io.IOUtils; 
    1627import org.apache.commons.lang.text.StrBuilder; 
    1728import org.slf4j.Logger; 
     
    4556        } 
    4657 
     58        private void updateDefaultRegister(String workingDirectory) { 
     59        URL oracle; 
     60        File defaultRegister = new File(workingDirectory, "dependency/Register_ExternalPackages.xml"); 
     61        File originalDefaultRegister = new File(workingDirectory, "dependency/Register_ExternalPackagesOriginal.xml"); 
     62                try { 
     63                        oracle = new URL("http://projects.arcs.org.au/trac/fullmoon/browser/trunk/resources/dependency/Register_ExternalPackages.xml?format=txt"); 
     64                URLConnection yc = oracle.openConnection(); 
     65                BufferedReader in = new BufferedReader( 
     66                                        new InputStreamReader( 
     67                                        yc.getInputStream())); 
     68                String inputLine; 
     69                FileWriter writer = new FileWriter(defaultRegister); 
     70                while ((inputLine = in.readLine()) != null)  
     71                        writer.write(inputLine); 
     72                writer.flush(); 
     73                writer.close(); 
     74                in.close(); 
     75                } catch (Exception e) { 
     76                        LOG.info("Cannot update the defaultRegister. Will use the deployed original", e); 
     77                        applyOriginalDefaultRegister(defaultRegister, originalDefaultRegister); 
     78                } 
     79        } 
     80         
     81        private void applyOriginalDefaultRegister(File defaultRegister, File originalDefaultRegister) { 
     82                FileInputStream input; 
     83                try { 
     84                        input = new FileInputStream(originalDefaultRegister); 
     85                        FileOutputStream output = new FileOutputStream(defaultRegister); 
     86                        IOUtils.copy(input, output); 
     87                } catch (Exception e) { 
     88                        LOG.info("Cannot retrieve Register file", e); 
     89                } 
     90        } 
     91         
    4792        private void executeEncode(Map<NM_PARAM, String> params) 
    4893                        throws XMLDBException, IOException, NewmoonException { 
    4994                NewmoonManager nm = new NewmoonManager(); 
    5095                nm.setVariables(params); 
    51                  
     96                updateDefaultRegister(nm.getVariables(NM_PARAM.WORKING_DIRECTORY)); 
    5297                //Prepare the outputDir 
    5398                File outputDir = new File(nm.getVariables(NM_PARAM.EXECUTION_DIR), nm.getVariables(NM_PARAM.OUTPUT_DIR)); 
  • mauRepo/newmoon/src/test/java/ndg/services/newmoon/XMIEncoderTest.java

    r7939 r8164  
    3333        } 
    3434 
    35         @Test 
     35         @Test  
    3636        public void encodeXMI() throws NewmoonException { 
    3737                XMIEncoder encoder = new XMIEncoder(); 
    38                 String executionPath = "xmi-samples/zippedSample2"; 
     38                String executionPath = "xmi-samples/zippedSample4"; 
    3939                String registryPath = "my-register.xml"; 
    4040                String sample = "modelXMI.xml"; 
     
    6262        } 
    6363 
     64        /* @Test */  
     65        public void encodeSamples() throws NewmoonException { 
     66                XMIEncoder encoder = new XMIEncoder(); 
     67                String workingPath = XMIEncoder.class.getClassLoader().getResource(".").getPath();               
     68                File xmiDoc = new File(workingPath + "xmi-samples"); 
     69                FilenameFilter filter = new AndFileFilter(FileFilterUtils.fileFileFilter(), FileFilterUtils.suffixFileFilter("xml"));  
     70                 
     71                //List<String> samples = Arrays.asList(xmiDoc.list(filter)); 
     72                List<String> samples = new ArrayList(); 
     73                samples.add("nmTest2.xml"); 
     74                //samples.add("toEncode.zip"); 
     75                Collections.sort(samples); 
     76                for (String sample : samples){ 
     77                        try { 
     78                                doTheTest(sample, workingPath, encoder);         
     79                        } catch (Exception e) { 
     80                                if (!sample.contains("_") 
     81                                                && !sample.equals("TestAS19.xml") 
     82                                                && !sample.equals("TestAS25.xml")) 
     83                                        throw new NewmoonException(e); 
     84                        } finally { 
     85                                System.out.println(sample); 
     86                        } 
     87                } 
     88        } 
     89         
    6490/*       
    6591        @Test 
  • mauRepo/newmoon/src/test/resources/log4j.xml

    r7931 r8164  
    2323         the following appenders write to files   
    2424    --> 
     25    <!--  
    2526    <appender name="exist.ehcache" class="org.apache.log4j.RollingFileAppender"> 
    2627        <param name="File" value="${exist.home}/logs/cocoon-ehcache.log"/> 
     
    3132        </layout> 
    3233    </appender> 
    33      
    34     <appender name="exist.core" class="org.apache.log4j.RollingFileAppender"> 
    35         <param name="File" value="${exist.home}/logs/exist.log"/> 
    36         <param name="MaxFileSize" value="5MB"/> 
    37         <param name="MaxBackupIndex" value="3"/> 
    38         <param name="Encoding" value="UTF-8"/> 
    39         <layout class="org.apache.log4j.PatternLayout"> 
    40             <param name="ConversionPattern" value="%d [%t] %-5p (%F [%M]:%L) - %m %n"/> 
    41         </layout> 
    42     </appender> 
    43      
    44     <appender name="exist.xacml" class="org.apache.log4j.RollingFileAppender"> 
    45         <param name="File" value="${exist.home}/logs/xacml.log"/> 
    46         <param name="MaxFileSize" value="500KB"/> 
    47         <layout class="org.apache.log4j.PatternLayout"> 
    48             <param name="ConversionPattern" value="%d [%t] %-5p (%F [%M]:%L) - %m %n"/> 
    49         </layout> 
    50     </appender> 
    51      
    52     <appender name="exist.xmldb" class="org.apache.log4j.RollingFileAppender"> 
    53         <param name="File" value="${exist.home}/logs/xmldb.log"/> 
    54         <param name="MaxFileSize" value="500KB"/> 
    55         <layout class="org.apache.log4j.PatternLayout"> 
    56             <param name="ConversionPattern" value="%d [%t] %-5p (%F [%M]:%L) - %m %n"/> 
    57         </layout> 
    58     </appender> 
    59  
    60     <appender name="org.xmldb" class="org.apache.log4j.RollingFileAppender"> 
    61         <param name="File" value="${exist.home}/logs/orgxmldb.log"/> 
    62         <param name="MaxFileSize" value="500KB"/> 
    63         <layout class="org.apache.log4j.PatternLayout"> 
    64             <param name="ConversionPattern" value="%d [%t] %-5p (%F [%M]:%L) - %m %n"/> 
    65         </layout> 
    66     </appender> 
    67      
    68     <appender name="org.exist.xquery" class="org.apache.log4j.RollingFileAppender"> 
    69         <param name="File" value="${exist.home}/logs/existXquery.log"/> 
    70         <param name="MaxFileSize" value="500KB"/> 
    71         <layout class="org.apache.log4j.PatternLayout"> 
    72             <param name="ConversionPattern" value="%d [%t] %-5p (%F [%M]:%L) - %m %n"/> 
    73         </layout> 
    74     </appender> 
    75      
    76     <appender name="exist.urlrewrite" class="org.apache.log4j.RollingFileAppender"> 
    77         <param name="File" value="${exist.home}/logs/urlrewrite.log"/> 
    78         <param name="MaxFileSize" value="500KB"/> 
    79         <layout class="org.apache.log4j.PatternLayout"> 
    80             <param name="ConversionPattern" value="%d [%t] %-5p (%F [%M]:%L) - %m %n"/> 
    81         </layout> 
    82     </appender> 
    83  
    84     <appender name="exist.profiling" class="org.apache.log4j.RollingFileAppender"> 
    85         <param name="File" value="${exist.home}/logs/profile.log"/> 
    86         <param name="MaxFileSize" value="500KB"/> 
    87         <layout class="org.apache.log4j.PatternLayout"> 
    88             <param name="ConversionPattern" value="%d [%t] %-5p (%F [%M]:%L) - %m %n"/> 
    89         </layout> 
    90     </appender> 
    91      
    92     <!--appender name="exist.validation" class="org.apache.log4j.RollingFileAppender"> 
    93         <param name="File" value="${exist.home}/webapp/WEB-INF/logs/validation.log"/> 
    94         <param name="MaxFileSize" value="500KB"/> 
    95         <layout class="org.apache.log4j.PatternLayout"> 
    96             <param name="ConversionPattern" value="%d [%t] %-5p (%F [%M]:%L) - %m %n"/> 
    97         </layout> 
    98     </appender--> 
    99      
    100     <!--appender name="exist.webdav" class="org.apache.log4j.RollingFileAppender"> 
    101         <param name="File" value="${exist.home}/webapp/WEB-INF/logs/webdav.log"/> 
    102         <param name="MaxFileSize" value="500KB"/> 
    103         <layout class="org.apache.log4j.PatternLayout"> 
    104             <param name="ConversionPattern" value="%d [%t] %-5p (%F [%M]:%L) - %m %n"/> 
    105         </layout> 
    106     </appender--> 
    107      
    108     <appender name="exist.scheduler" class="org.apache.log4j.RollingFileAppender"> 
    109         <param name="File" value="${exist.home}/logs/scheduler.log"/> 
    110         <param name="MaxFileSize" value="500KB"/> 
    111         <layout class="org.apache.log4j.PatternLayout"> 
    112             <param name="ConversionPattern" value="%d [%t] %-5p (%F [%M]:%L) - %m %n"/> 
    113         </layout> 
    114     </appender> 
    115         
     34    --> 
    11635    <!--  
    11736         the following appender write to NULL   
     
    13251     
    13352     
    134     <!-- Section: CATEGORIES --> 
    135      
    136     <category name="org.exist.JettyStart" additivity="false"> 
    137         <priority value="trace"/> 
    138         <appender-ref ref="console"/> 
    139         <appender-ref ref="exist.core"/> 
    140         <appender-ref ref="exist.xmldb"/> 
    141     </category> 
    142      
    143     <category name="org.exist.StandaloneServer" additivity="false"> 
    144         <priority value="trace"/> 
    145         <appender-ref ref="console"/> 
    146         <appender-ref ref="exist.core"/> 
    147         <appender-ref ref="exist.xmldb"/> 
    148     </category> 
    149      
    150     <category name="xquery.profiling" additivity="false"> 
    151         <priority value="trace"/> 
    152         <appender-ref ref="exist.profiling"/> 
    153     </category> 
    154      
    155     <category name="org.exist.security.xacml" additivity="false"> 
    156         <priority value="warn"/> 
    157         <appender-ref ref="exist.xacml"/> 
    158     </category> 
    159      
    160     <category name="org.exist.xmldb" additivity="false"> 
    161         <priority value="debug"/> 
    162         <appender-ref ref="exist.xmldb"/> 
    163     </category> 
    164      
    165     <category name="org.xmldb" additivity="false"> 
    166         <priority value="debug"/> 
    167         <appender-ref ref="org.xmldb"/> 
    168     </category> 
    169      
    170     <category name="org.exist.xquery" additivity="false"> 
    171         <priority value="debug"/> 
    172         <appender-ref ref="org.exist.xquery"/> 
    173     </category> 
    174      
    175         <category name="org.exist.http.urlrewrite" additivity="false"> 
    176                 <!-- set to "trace" to get detailed info on URL rewriting --> 
    177         <priority value="info"/> 
    178         <appender-ref ref="exist.urlrewrite"/> 
    179     </category> 
    180  
    181     <category name="org.mortbay" additivity="false"> 
    182         <priority value="info"/> 
    183         <appender-ref ref="console"/> 
    184     </category> 
    185      
    186     <category name="httpclient" additivity="false"> 
    187         <priority value="info"/> 
    188         <appender-ref ref="console"/> 
    189     </category> 
    190      
    191     <!--category name="org.exist.validation" additivity="false"> 
    192         <priority value="debug"/> 
    193         <appender-ref ref="exist.validation"/> 
    194     </category--> 
    195      
    196     <!--category name="org.exist.http.webdav" additivity="false"> 
    197         <priority value="debug"/> 
    198         <appender-ref ref="exist.webdav"/> 
    199     </category--> 
    200      
    201     <category name="net.sf.ehcache" additivity="false"> 
    202         <priority value="debug"/> 
    203         <appender-ref ref="exist.ehcache"/> 
    204     </category> 
     53    <!-- Section: CATEGORIES -->     
    20554     
    20655    <!-- 
     
    21362    </category> 
    21463     
    215     <!--  
    216          quartz scheduler  
    217     --> 
    218     <category name="org.quartz" additivity="false"> 
    219         <priority value="info"/> 
    220         <appender-ref ref="exist.scheduler"/> 
    221     </category> 
    222  
    22364    <!-- Section: ROOT logger --> 
    22465     
    22566    <root> 
    22667        <priority value="debug"/> 
    227         <appender-ref ref="exist.core"/> 
    22868    </root> 
    22969     
  • mauRepo/newmoon/src/test/resources/rules/conformance-test/ISO19136-V3.2-AnxE_XMI-V1.1/test-010.xq

    r7931 r8164  
    1111at "xmldb:exist:///db/modules/conformance-test/ISO19136-V3.2-AnxE_XMI-V1.1/module-framework-functions.xq"; 
    1212 
     13 
     14 
    1315declare namespace UML   = "omg.org/UML1.3"; 
    1416declare namespace cr    = "http://ndg.service.newmoon.conftest-result/1.0"; 
     
    2022declare variable $pass-msg as xs:string := "Each external dependency package does have a corresponding record in the dependency register. Each external dependency class does have a corresponding record in a ClassMap found through a register reference."; 
    2123declare variable $fail-msg as xs:string := "Some external packages and/or classes within the model do not have corresponding records in registry or type-mapping tables."; 
     24declare variable $pass-pck as xs:string := "Each external dependency package does have a corresponding record in the dependency register."; 
     25declare variable $pass-class as xs:string := "Each external dependency class does have a corresponding record in a ClassMap found through a register reference."; 
    2226 
    2327(: Declare the local assert function which defines a postive condition for pass :) 
    24 declare function local:assert($doc-root as node()?) as node()? 
     28declare function local:assert($doc-root as node()?) as node()* 
    2529{ 
    2630        let $coll := collection("/db/conformance-test/ISO19136-V3.2-AnxE_XMI-V1.1/mapping"), 
    2731                (: Check external package references :) 
    28                 $fail-package := ( 
    29                         for $ext in $doc-root/XMI/XMI.extensions/EAStub[@UMLType eq "Package"] 
     32                $msg-package := ( 
     33                        let $ret-package := ( 
     34                             for $ext in $doc-root/XMI/XMI.extensions/EAStub[@UMLType eq "Package"] 
     35                             return 
     36                                    if (empty($doc-root/XMI/XMI.content/UML:Model//UML:Package[@name eq $ext/@name]) and 
     37                                           empty($coll/pckr:register/pckr:package[@name eq $ext/@name]) and 
     38                                           empty($doc-root/XMI//UML:Dependency[@client eq $ext/@xmi.id])) 
     39                                    then 
     40                                           <cr:failed>{ concat("External dependency package &quot;", $ext/@name, "&quot; does NOT have a corresponding record in the dependency register.") }</cr:failed> 
     41                                else  
     42                                 ()          
     43                        ) 
    3044                        return 
    31                                 if (empty($doc-root/XMI/XMI.content/UML:Model//UML:Package[@name eq $ext/@name]) and 
    32                                         empty($coll/pckr:register/pckr:package[@name eq $ext/@name]) and 
    33                                         empty($doc-root/XMI//UML:Dependency[@client eq $ext/@xmi.id])) 
    34                                 then 
    35                                         <cr:message>{ concat("External dependency package &quot;", $ext/@name, "&quot; does NOT have a corresponding record in the dependency register.") }</cr:message> 
    36                                 else () 
     45                         if (empty($ret-package)) 
     46                         then 
     47                             <cr:passed>{ $pass-pck }</cr:passed> 
     48                         else 
     49                             $ret-package 
    3750                ), 
    3851                (: Check external class references :) 
    3952                $tmt := $coll/tm:mapping, 
    40                 $fail-class := ( 
    41                         for $ext in $doc-root/XMI/XMI.extensions/EAStub[@UMLType eq "Class"] 
    42                         let $test-tag := if ($doc-root//UML:Association/UML:ModelElement.taggedValue/UML:TaggedValue[@tag/matches(., "ea_(source|target)Name") and @value eq $ext/@name]/(preceding-sibling::* | following-sibling::*)[@tag eq "direction"]/substring-before(@value, " ") = "Source") then "ea_sourceName" else "ea_targetName" 
    43                         return 
    44                                 if (empty($tmt//tm:entry/tm:umlClass[text() eq $ext/@name]) and 
    45                                         empty($doc-root//UML:Generalization[@subtype eq $ext/@xmi.id]) and 
    46                                         empty($doc-root//UML:Association/UML:ModelElement.taggedValue/UML:TaggedValue[@tag eq $test-tag and @value eq $ext/@name])) 
    47                                 then 
    48                                         <cr:message>{ concat("External dependency class &quot;", $ext/@name, "&quot; does NOT have a corresponding record in a ClassMap found through a register reference.") }</cr:message> 
    49                                 else () 
    50                 ) 
     53                $msg-class := ( 
     54                    let $ret-class := ( 
     55                             for $ext in $doc-root/XMI/XMI.extensions/EAStub[@UMLType eq "Class"] 
     56                             let $test-tag := if ($doc-root//UML:Association/UML:ModelElement.taggedValue/UML:TaggedValue[@tag/matches(., "ea_(source|target)Name") and @value eq $ext/@name]/(preceding-sibling::* | following-sibling::*)[@tag eq "direction"]/substring-before(@value, " ") = "Source") then "ea_sourceName" else "ea_targetName" 
     57                                 return 
     58                                        if (empty($tmt//tm:entry/tm:umlClass[text() eq $ext/@name]) and 
     59                            empty($doc-root//UML:Generalization[@subtype eq $ext/@xmi.id]) and 
     60                            empty($doc-root//UML:Association/UML:ModelElement.taggedValue/UML:TaggedValue[@tag eq $test-tag and @value eq $ext/@name]))                                                 
     61                                        then 
     62                                               <cr:failed>{ concat("External dependency class &quot;", $ext/@name, "&quot; does NOT have a corresponding record in a ClassMap found through a register reference.") }</cr:failed> 
     63                                        else  
     64                                            ()          
     65                      ) 
     66                          return 
     67                             if (empty($ret-class)) 
     68                             then 
     69                                 <cr:passed>{ $pass-class }</cr:passed> 
     70                             else 
     71                                 $ret-class 
     72                  ) 
    5173        return 
    52                 if (empty($fail-package) and empty($fail-class)) then () 
    53                 else 
    54                         <cr:fail> 
    55                                 <cr:messages>{ $fail-package, $fail-class }</cr:messages> 
    56                         </cr:fail> 
     74           ($msg-class, $msg-package) 
    5775}; 
    5876 
     77 
     78declare function local:new-result($num as xs:integer, $result as node()*) 
     79{ 
     80        <cr:result> 
     81                <cr:test number="{ $num }" /> 
     82                { 
     83                        for $fl in $result 
     84                             return $fl          
     85                } 
     86        </cr:result> 
     87}; 
     88 
     89 
    5990(: Create a new result element :) 
    60 mod-fr:new-result($test-num, $pass-msg, $fail-msg, local:assert(/)) 
     91local:new-result($test-num, local:assert(/)) 
Note: See TracChangeset for help on using the changeset viewer.