3

I have used aspectj that is in turn used by Allure Reporting tool in my pom.xml. When I run the suite through maven, I get warning javax.* types are not being woven because the weaver option '-Xset:weaveJavaxPackages=true' has not been specified

After a while the classes that contain my tests will stop and I get Unreachable browser exception. I run the same suite through testng.xml and works like a charm. I feel that because of this warning, the classes stop getting called.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.unilog.project</groupId>
  <artifactId>standardTemplate.project</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>ProjectSuite</name>
  <url>http://maven.apache.org</url>

 <properties>
        <compiler.version>1.7</compiler.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <version.allure>1.4.3</version.allure>
        <version.aspectj>1.7.4</version.aspectj>
        <version.cucumber>1.2.0</version.cucumber>
        <version.selenium>2.53.0</version.selenium>
        <version.slf4j>1.7.7</version.slf4j>
        <version.phantomjs>1.9.7</version.phantomjs>

    </properties>

    <dependencies>
        <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-htmlunit-driver</artifactId>
        <version>2.52.0</version>
        </dependency>

    <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.7.0</version>
  </dependency>



    <dependency>
    <groupId>com.pojosontheweb</groupId>
    <artifactId>monte-repack</artifactId>
    <version>1.0</version>
    </dependency>


    <dependency>
    <groupId>com.jayway.restassured</groupId>
    <artifactId>rest-assured</artifactId>
    <version>2.9.0</version>
    </dependency>

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-firefox-driver</artifactId>
        <version>${version.selenium}</version>
    </dependency>

 <!-- custom excelread library using apachePOI -->   
    <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>3.13</version>
</dependency>

    <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.13</version>
</dependency>

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml-schemas</artifactId>
    <version>3.13</version>
</dependency>

<!-- zipturnaround -->
    <dependency>
    <groupId>org.zeroturnaround</groupId>
    <artifactId>zt-zip</artifactId>
    <version>1.7</version>
    </dependency>


 <!-- java mail -->
    <dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4.7</version>
</dependency>

        <!-- Selenium and Drivers -->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>${version.selenium}</version>
            <scope>test</scope>
        </dependency>

        <dependency>
        <groupId>com.github.detro.ghostdriver</groupId>
        <artifactId>phantomjsdriver</artifactId>
        <version>1.1.0</version>
        </dependency>       

        <dependency>
        <groupId>com.github.detro</groupId>
        <artifactId>phantomjsdriver</artifactId>
        <version>1.2.0</version>
        </dependency>


    <dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-server</artifactId>
    <version>${version.selenium}</version>
    </dependency>

    <dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.3.1</version>
    </dependency>


        <!-- Utils -->

        <dependency>
            <groupId>ru.yandex.qatools.properties</groupId>
            <artifactId>properties-loader</artifactId>
            <version>1.5</version>
            </dependency>
        <dependency>
    <groupId>org.hamcrest</groupId>
    <artifactId>hamcrest-all</artifactId>
    <version>1.3</version>
</dependency>

        <dependency>
            <groupId>com.relevantcodes</groupId>
            <artifactId>extentreports</artifactId>
            <version>2.05</version>
        </dependency>

        <!-- Logging -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${version.slf4j}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${version.slf4j}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jul-to-slf4j</artifactId>
            <version>${version.slf4j}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>${version.slf4j}</version>
            <scope>test</scope>
        </dependency>

        <!-- Allure Reporter -->


        <dependency>
            <groupId>ru.yandex.qatools.allure</groupId>
            <artifactId>allure-testng-adaptor</artifactId>
            <version>${version.allure}</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.9.6</version>
        </dependency>

        <dependency>
            <groupId>net.sourceforge.jexcelapi</groupId>
            <artifactId>jxl</artifactId>
            <version>2.6</version>
        </dependency>


    </dependencies>

    <build>
     <plugins>
            <plugin>
                <groupId>com.github.klieber</groupId>
                <artifactId>phantomjs-maven-plugin</artifactId>
                <version>0.4</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>install</goal>
                        </goals>    
                    </execution>
                </executions>
                <configuration>
                    <version>${version.phantomjs}</version>
                </configuration>
            </plugin>

                <plugin>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>9.2.10.v20150310</version>
                <configuration>
                    <webAppSourceDirectory>${project.build.directory}/site/allure-maven-plugin</webAppSourceDirectory>
                    <stopKey>stop</stopKey>
                    <stopPort>1234</stopPort>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>${compiler.version}</source>
                    <target>${compiler.version}</target>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.18.1</version>
                <configuration>
                    <argLine>
                      -javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${version.aspectj}/aspectjweaver-${version.aspectj}.jar
                    </argLine>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.aspectj</groupId>
                        <artifactId>aspectjweaver</artifactId>
                        <version>${version.aspectj}</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
        <pluginManagement>
            <plugins>
                <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
                <plugin>
                    <groupId>org.eclipse.m2e</groupId>
                    <artifactId>lifecycle-mapping</artifactId>
                    <version>1.0.0</version>
                    <configuration>
                        <lifecycleMappingMetadata>
                            <pluginExecutions>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>
                                            com.github.klieber
                                        </groupId>
                                        <artifactId>
                                            phantomjs-maven-plugin
                                        </artifactId>
                                        <versionRange>
                                            [0.4,)
                                        </versionRange>
                                        <goals>
                                            <goal>install</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore></ignore>
                                    </action>
                                </pluginExecution>
                            </pluginExecutions>
                        </lifecycleMappingMetadata>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

    <reporting>
        <excludeDefaults>true</excludeDefaults>
        <plugins>
            <plugin>
                <groupId>ru.yandex.qatools.allure</groupId>
                <artifactId>allure-maven-plugin</artifactId>
                <version>2.0</version>
                <configuration>
                    <reportVersion>${version.allure}</reportVersion>
                </configuration>
            </plugin>
        </plugins>
    </reporting>
</project>
Hemanth
  • 122
  • 1
  • 1
  • 7
  • I have the same problem. Any update on this? – paul Feb 08 '17 at 17:40
  • @paul Any update by any of you guys? – maricn Feb 20 '17 at 23:11
  • 1
    Nope nobody response – paul Feb 20 '17 at 23:12
  • Possible duplicate of [How to set Spring weaver options in Java config class?](https://stackoverflow.com/questions/25974584/how-to-set-spring-weaver-options-in-java-config-class) – kenorb Aug 23 '17 at 16:29
  • Because this old question just popped up in my news feed due to the new answer: The AspectJ warning is most probably not related to the problem. Where is your reproducible test case for this? A POM alone does not explain anything. I see no test, application or aspect code. – kriegaex Feb 11 '18 at 09:29

6 Answers6

4

aop.xml

<aspectj>
    <weaver options="-Xset:weaveJavaxPackages=true">        
        <include within="my.app.*"/>
        <include within="javax.persistence.*"/>
    </weaver>
    <aspects>
        <aspect name="my.app.MyAspect" />
    </aspects>
</aspectj>
Guangheng Xu
  • 149
  • 1
  • 10
3

You can create a file resources/META-INF/aop.xml with the following context that will turn off all warnings:

<aspectj>
    <weaver options="-nowarn"/>
</aspectj>
1

First of all as many people mentioned this is a warning and it's not related to your issue.

Secondly, you should weave javax classes only if you have very specific purpose like weaving an aspect to trace HttpServlet api or some other javax.* stuff.

Finally, if you decided to weave javax.* it's not terribly wrong, but it may affect performance.

Btw, there is a bug opened for this warning message: eclipse bug 365702

That said, you should really ignore that warning message.

some discussion related to allowing to weave javax.*

just another advice similar to mine

Vadim Kirilchuk
  • 3,532
  • 4
  • 32
  • 49
1

Try to change:
<argLine> -javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${version.aspectj}/aspectjweaver-${version.aspectj}.jar </argLine>

To this:
<argLine>-Xms512m -Xmx1024m</argLine>

  • This worked for me to remove the error so I gave an upvote, can you please provide an explanation of what this argument is doing? – Ben Jun 14 '22 at 09:53
0

I changed my jdk to jdk8. It helped me.

enter image description here

-1

in my case issue was here: was in build pluginManagement Just delete all unncecery and leave:

                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.0.0-M5</version>
                <configuration>
                    <suiteXmlFiles>
                        <suiteXmlFile>TestNG.xml</suiteXmlFile>
                    </suiteXmlFiles>
                </configuration>