<?xml version="1.0"?>
<ruleset
    xmlns="http://windup.jboss.org/schema/jboss-ruleset" id="embedded-framework"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://windup.jboss.org/schema/jboss-ruleset http://windup.jboss.org/schema/jboss-ruleset/windup-jboss-ruleset.xsd">
    <metadata>
        <description>
            This ruleset provides analysis of embedded frameworks.
        </description>
        <dependencies>
            <addon id="org.jboss.windup.rules,windup-rules-javaee,3.0.0.Final" />
            <addon id="org.jboss.windup.rules,windup-rules-java,3.0.0.Final" />
        </dependencies>
    </metadata>
    <rules>
        <rule id="embedded-framework-01000">
            <when>
                <file filename="axis{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Apache Axis" category-id="information" effort="0">
                    <description>The application embeds the Apache Axis framework.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Apache Axis</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-01010">
            <when>
                <file filename="axis2{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Apache Axis2" category-id="information" effort="0">
                    <description>The application embeds the Apache Axis2 framework.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Apache Axis2</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-01100">
            <when>
                <file filename="{*}cxf{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Apache CXF" category-id="information" effort="0">
                    <description>The application embeds the Apache CXF framework.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Apache CXF</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-01200">
            <when>
                <file filename="{*}xfire{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - XFire" category-id="information" effort="0">
                    <description>The application embeds the XFire framework.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">XFire</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-01300">
            <when>
                <file filename="{*}jersey{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Jersey" category-id="information" effort="0">
                    <description>The application embeds the Jersey framework.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Jersey</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-01400">
            <when>
                <file filename="{*}unirest{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Unirest" category-id="information" effort="0">
                    <description>The application embeds the Unirest framework.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Unirest</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-01500">
            <when>
                <file filename="hibernate{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Hibernate" category-id="information" effort="0">
                    <description>The application embeds the Hibernate framework.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Hibernate</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-01600">
            <when>
                <file filename="hibernate-ogm{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Hibernate OGM" category-id="information" effort="0">
                    <description>The application embeds the Hibernate OGM framework.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Hibernate OGM</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-01700">
            <when>
                <file filename="{*}eclipselink{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - EclipseLink" category-id="information" effort="0">
                    <description>The application embeds the EclipseLink framework.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">EclipseLink</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-02000">
            <when>
                <file filename="spring-batch{*}.jar"/>
            </when>
            <perform>
                <iteration>
                    <when>
                        <not>
                            <file filename="spring-batch{*}test{*}.jar"/>
                        </not>
                    </when>
                    <perform>
                        <classification title="Embedded framework - Spring Batch" category-id="information" effort="0">
                            <description>The application embeds the Spring Batch framework.</description>
                        </classification>
                        <technology-tag level="INFORMATIONAL">Spring Batch</technology-tag>
                    </perform>
                </iteration>
            </perform>
        </rule>
        <rule id="embedded-framework-02200">
            <when>
                <file filename="{*}aspectj{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - AspectJ" category-id="information" effort="0">
                    <description>The application embeds the AspectJ framework.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">AspectJ</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-02300">
            <when>
                <file filename="{*}jbpm{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - JBPM" category-id="information" effort="0">
                    <description>The application embeds the JBPM framework.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">JBPM</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-02400">
            <when>
                <file filename="{*}jrules{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - iLog" category-id="information" effort="0">
                    <description>The application embeds the iLog framework.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">iLog</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-03000">
            <when>
                <file filename="{*}camunda{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Camunda" category-id="information" effort="0">
                    <description>The application embeds the Camunda framework.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Camunda</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-03100">
            <when>
                <file filename="{*}pega{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Pega" category-id="information" effort="0">
                    <description>The application embeds the Pega framework.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Pega</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-03200">
            <when>
                <file filename="blaze{*}.jar"/>
            </when>
            <perform>
                <iteration>
                    <when>
                        <not>
                            <file filename="{*}blazeds{*}.jar"/>
                        </not>
                    </when>
                    <perform>
                        <classification title="Embedded framework - Blaze" category-id="information" effort="0">
                            <description>The application embeds the Blaze framework.</description>
                        </classification>
                        <technology-tag level="INFORMATIONAL">Blaze</technology-tag>
                    </perform>
                </iteration>
            </perform>
        </rule>
        <rule id="embedded-framework-03300">
            <when>
                <file filename="{*}MRules{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - MRules" category-id="information" effort="0">
                    <description>The application embeds the MRules framework.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">MRules</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-03400">
            <when>
                <file filename="{*}easy-rules{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Easy Rules" category-id="information" effort="0">
                    <description>The application embeds the Easy Rules framework.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Easy Rules</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-04700">
            <when>
                <file filename="{*}aopalliance{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - AOP Alliance" category-id="information" effort="0">
                    <description>The application embeds the AOP Alliance library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">AOP Alliance</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-05000">
            <when>
                <file filename="{*}snmp4j{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - SNMP4J" category-id="information" effort="0">
                    <description>The application embeds SNMP4J.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">SNMP4J</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-05100">
            <when>
                <file filename="{*}http-client{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - HTTP Client" category-id="information" effort="0">
                    <description>The application embeds a HTTP client.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">HTTP Client</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-05300">
            <when>
                <or>
                    <file filename="javax.inject{*}.jar"/>
                    <file filename="{*}atinject{*}.jar"/>
                </or>
            </when>
            <perform>
                <classification title="Embedded framework - Javax Inject" category-id="information" effort="0">
                    <description>The application embeds a Javax Inject library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Javax Inject</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-05400">
            <when>
                <file filename="{*}guice{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Google Guice" category-id="information" effort="0">
                    <description>The application embeds a Google Guice library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Google Guice</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-05500">
            <when>
                <file filename="{*}cdi{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - CDI" category-id="information" effort="0">
                    <description>The application embeds a CDI library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">CDI</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-05600">
            <when>
                <file filename="{*}plexus-container{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Plexus Container" category-id="information" effort="0">
                    <description>The application embeds a Plexus Container library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Plexus Container</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-05700">
            <when>
                <file filename="{*}weld{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Weld" category-id="information" effort="0">
                    <description>The application embeds a Weld library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Weld</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-05800">
            <when>
                <file filename="dagger{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Dagger" category-id="information" effort="0">
                    <description>The application embeds a Dagger library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Dagger</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-05900">
            <when>
                <file filename="gin{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - GIN" category-id="information" effort="0">
                    <description>The application embeds a GIN (GWT INjection) library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">GIN</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-06000">
            <when>
                <file filename="{*}picocontainer{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - PicoContainer" category-id="information" effort="0">
                    <description>The application embeds a PicoContainer library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">PicoContainer</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-06100">
            <when>
                <file filename="{*}scaldi{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Scaldi" category-id="information" effort="0">
                    <description>The application embeds a Scaldi library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Scaldi</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-06200">
            <when>
                <file filename="macros{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Macros" category-id="information" effort="0">
                    <description>The application embeds a Macros library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Macros</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-06300">
            <when>
                <file filename="injekt-core{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Injekt for Kotlin" category-id="information" effort="0">
                    <description>The application embeds a Injekt for Kotlin library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Injekt for Kotlin</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-06400">
            <when>
                <file filename="kodein{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Kodein" category-id="information" effort="0">
                    <description>The application embeds a Kodein library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Kodein</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-06500">
            <when>
                <file filename="peaberry{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Peaberry" category-id="information" effort="0">
                    <description>The application embeds a Peaberry library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Peaberry</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-06600">
            <when>
                <file filename="sticky-configured{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Sticky Configured" category-id="information" effort="0">
                    <description>The application embeds a Sticky Configured library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Sticky Configured</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-06700">
            <when>
                <file filename="ka-di{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Ka DI" category-id="information" effort="0">
                    <description>The application embeds a Ka DI library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Ka DI</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-06800">
            <when>
                <file filename="polyforms-di{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Polyforms DI" category-id="information" effort="0">
                    <description>The application embeds a Polyforms DI library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Polyforms DI</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-06900">
            <when>
                <file filename="jaywire{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - JayWire" category-id="information" effort="0">
                    <description>The application embeds a JayWire library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">JayWire</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-07000">
            <when>
                <file filename="silk-di{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Silk DI" category-id="information" effort="0">
                    <description>The application embeds a Silk DI library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Silk DI</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-07100">
            <when>
                <file filename="grapht{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Grapht DI" category-id="information" effort="0">
                    <description>The application embeds a Grapht DI library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Grapht DI</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-07200">
            <when>
                <file filename="syringe{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Syringe" category-id="information" effort="0">
                    <description>The application embeds a Syringe library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Syringe</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-07300">
            <when>
                <file filename="cfg-engine{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Cfg Engine" category-id="information" effort="0">
                    <description>The application embeds a Cfg Engine library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Cfg Engine</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-07400">
            <when>
                <file filename="beaninject{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - BeanInject" category-id="information" effort="0">
                    <description>The application embeds a BeanInject library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">BeanInject</technology-tag>
            </perform>
        </rule>

        <rule id="embedded-framework-07500">
            <when>
                <file filename="inject{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Tornado Inject" category-id="information" effort="0">
                    <description>The application embeds a Tornado Inject library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Tornado Inject</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-07600">
            <when>
                <file filename="airframe{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Airframe" category-id="information" effort="0">
                    <description>The application embeds a Airframe library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Airframe</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-07700">
            <when>
                <file filename="winter{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Winter" category-id="information" effort="0">
                    <description>The application embeds a Winter library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Winter</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-07800">
            <when>
                <file filename="kouinject{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - KouInject" category-id="information" effort="0">
                    <description>The application embeds a KouInject library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">KouInject</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-07900">
            <when>
                <file filename="iroh{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Iroh" category-id="information" effort="0">
                    <description>The application embeds an Iroh library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Iroh</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-08000">
            <when>
                <file filename="micro-di{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Micro DI" category-id="information" effort="0">
                    <description>The application embeds a Micro DI library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Micro DI</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-08100">
            <when>
                <file filename="subcut{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - SubCut" category-id="information" effort="0">
                    <description>The application embeds a SubCut library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">SubCut</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-08200">
            <when>
                <dependency groupId="org.springframework" artifactId="spring-beans"/>
            </when>
            <perform>
                <classification title="Embedded framework - Spring DI" category-id="information" effort="0">
                    <description>The application embeds a Spring DI library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Spring DI</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-08300">
            <when>
                <dependency groupId="io.micrometer" artifactId="micrometer-core"/>
            </when>
            <perform>
                <classification title="Embedded framework - Micrometer" category-id="information" effort="0">
                    <description>The application embeds a Micrometer library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Micrometer</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-08400">
            <when>
                <or>
                    <!-- Spring component declared in source code condition -->
                    <project>
                        <artifact groupId="org.springframework" artifactId="spring-web"/>
                    </project>
                    <!-- Spring Boot component declared in source code condition -->
                    <project>
                        <artifact groupId="org.springframework.boot" artifactId="spring-boot-starter-web"/>
                    </project>
                    <!-- Spring component in compiled application condition -->
                    <dependency groupId="org.springframework" artifactId="spring-web"/>
                </or>
            </when>
            <perform>
                <classification title="Embedded framework - Spring Web" category-id="information" effort="0">
                    <description>The application embeds the Spring Web framework.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Spring Web</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-08500">
            <when>
                <project>
                    <artifact groupId="org.springframework.shell" artifactId="spring-shell-core"/>
                </project>
            </when>    
            <perform>
                <classification title="Embedded framework - Spring Shell" category-id="information" effort="0">
                    <description>The application embeds a Spring Shell library.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Spring Shell</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-08600">
            <when>
                <filecontent pattern="{prefixes}flo-editor" filename="{*}.{extensions}" />
            </when>
            <perform>
                <classification title="Embedded framework - Spring Boot Flo" category-id="information" effort="0">
                    <description>The application embeds Spring Boot Flo.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Spring Boot Flo</technology-tag>
            </perform>
            <where param="prefixes">
                <matches pattern="(&lt;|')"/>
             </where>
             <where param="extensions">
                 <matches pattern="(html|ts)"/>
             </where>
        </rule>
        <rule id="embedded-framework-08700">
            <when>
                <javaclass references="org.springframework.scheduling.annotation.Scheduled">
                    <location>ANNOTATION</location>
                </javaclass>
            </when>
            <perform>
                <classification title="Embedded framework - Spring Scheduled" category-id="information" effort="0">
                    <description>The application embeds Spring Scheduled.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Spring Scheduled</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-08800">
            <when>
                <or>
                    <project>
                        <artifact groupId="org.springframework.cloud" artifactId="spring-cloud-function-context"/>
                    </project>
                    <dependency groupId="org.springframework.cloud" artifactId="spring-cloud-function-context"/>
                </or>
            </when>
            <perform>
                <classification title="Embedded framework - Spring Cloud Function" category-id="information" effort="0">
                    <description>The application embeds Spring Cloud Function.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Spring Cloud Function</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-08900">
            <when>
                <file filename="{*}quartz{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Quartz" category-id="information" effort="0">
                    <description>The application embeds the Quartz framework.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Quartz</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-09100">
            <when>
                <file filename="{*}zipkin{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Zipkin" category-id="information" effort="0">
                    <description>The application embeds the Zipkin framework.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Zipkin</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-09000">
            <when>
                <file filename="feign-{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Feign" category-id="information" effort="0">
                    <description>The application embeds the Feign framework.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Feign</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-09200">
            <when>
                <file filename="{*}redis{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Redis" category-id="information" effort="0">
                    <description>The application embeds the Redis client.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Redis</technology-tag>
            </perform>
        </rule>
        <rule id="embedded-framework-09300">
            <when>
                <file filename="{*}eureka{*}.jar"/>
            </when>
            <perform>
                <classification title="Embedded framework - Eureka" category-id="information" effort="0">
                    <description>The application embeds the Eureka client.</description>
                </classification>
                <technology-tag level="INFORMATIONAL">Eureka</technology-tag>
            </perform>
        </rule>
        <!-- this rule has to be always the last one in order to effectively checks for classifications added from previous rules in this ruleset-->
        <rule id="embedded-framework-90000">
            <when>
                <file filename="spring{*}.jar"/>
            </when>
            <perform>
                <iteration>
                    <when>
                        <not>
                            <has-classification title="Embedded framework - Spring {pattern}"/>
                        </not>
                    </when>
                    <classification title="Embedded framework - Spring" category-id="information" effort="0">
                        <description>The application embeds the Spring framework.</description>
                    </classification>
                    <technology-tag level="INFORMATIONAL">Spring</technology-tag>
                </iteration>
            </perform>
            <where param="pattern">
                <matches pattern="(Integration|Data|Security|MVC|Batch|Boot|Test|DI)"/>
            </where>
        </rule>
        <!-- the rule above has to be always the last one in order to effectively checks for classifications added from previous rules in this ruleset-->
    </rules>
</ruleset>
