<?xml version="1.0" encoding="UTF-8"?>
<!--

  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.

-->
<jqa:jqassistant-rules xmlns:jqa="http://www.buschmais.com/jqassistant/core/analysis/rules/schema/v1.0"
                       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                       xsi:schemaLocation="http://www.buschmais.com/jqassistant/core/analysis/rules/schema/v1.0 https://raw.githubusercontent.com/buschmais/jqassistant-examples/master/core/analysis/src/main/resources/META-INF/xsd/jqassistant-rules-1.0.xsd">

  <constraint id="structural-rules:unpack-matching-artifacts">
    <description>All Java 7 modules must use the matching Java 8 modules as source.</description>
    <cypher><![CDATA[
            MATCH
                (m:Maven:Pom:Xml)-[DESCRIBES]->(a:Maven:Artifact)
            WHERE
                a.group = "org.apache.edgent.java7"
            RETURN m
        ]]></cypher>
  </constraint>

  <constraint id="structural-rules:matching-dependencies">
    <description>All Java 7 modules must have the same dependencies as the matching Java 8 modules.</description>
    <cypher><![CDATA[
            MATCH
                (t:Junit4:Test:Class)
            WHERE NOT
                t.name =~ ".*Test"
            RETURN
                t AS InvalidTestClass
        ]]></cypher>
  </constraint>

  <group id="default">
    <includeConstraint refId="structural-rules:unpack-matching-artifacts" />
    <includeConstraint refId="structural-rules:matching-dependencies" />
  </group>

</jqa:jqassistant-rules>