Compiler removes java 8 method parameter names

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Compiler removes java 8 method parameter names

Andrei Ivanov
Hi,
Just pasting the details from https://github.com/mojohaus/aspectj-maven-plugin/issues/7

The new compiler option -parameters allows to compile in the method parameter names information into the bytecode. After the aspectj processing this information goes removed.

Here ist the configuration of maven compiler plugin

    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.3</version>
      <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <compilerArgument>-parameters</compilerArgument>
      </configuration>
    </plugin>

And configuration of aspectj

    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>aspectj-maven-plugin</artifactId>
      <version>1.8</version>
      <executions>
        <execution>
          <goals>
            <goal>compile</goal>
            <goal>test-compile</goal>
          </goals>
        </execution>
      </executions>
      <configuration>
        <encoding>UTF-8</encoding>
        <source>1.8</source>
        <target>1.8</target>
        <complianceLevel>1.8</complianceLevel>
      </configuration>
    </plugin>

Looking at https://eclipse.org/aspectj/doc/released/devguide/ajc-ref.html, I didn't see what parameter I could change to preserve the information.

Any clue?

Thank you

_______________________________________________
aspectj-users mailing list
[hidden email]
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/aspectj-users
Reply | Threaded
Open this post in threaded view
|

Re: Compiler removes java 8 method parameter names

Alexander Kriegisch-2
It is very funny, but from my experience the parameter info is always there, see my comment on the AspectJ Maven ticket:
https://github.com/mojohaus/aspectj-maven-plugin/issues/7#issuecomment-159997058
 
If the info is not in your class files, meybe just don't use the Maven Compiler Plugin, only AspectJ Maven.
 
@Andy Clement: Please also read my comment there because the '-parameters' support in Ajc seems to be hard-coded. Is this intentional? Is it worth a bug ticket?
 
Regards
--
Alexander Kriegisch
http://scrum-master.de
 

Andrei Ivanov schrieb am 26.11.2015 11:46:

Hi,
Just pasting the details from https://github.com/mojohaus/aspectj-maven-plugin/issues/7

The new compiler option -parameters allows to compile in the method parameter names information into the bytecode. After the aspectj processing this information goes removed.

Here ist the configuration of maven compiler plugin

    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.3</version>
      <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <compilerArgument>-parameters</compilerArgument>
      </configuration>
    </plugin>

And configuration of aspectj

    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>aspectj-maven-plugin</artifactId>
      <version>1.8</version>
      <executions>
        <execution>
          <goals>
            <goal>compile</goal>
            <goal>test-compile</goal>
          </goals>
        </execution>
      </executions>
      <configuration>
        <encoding>UTF-8</encoding>
        <source>1.8</source>
        <target>1.8</target>
        <complianceLevel>1.8</complianceLevel>
      </configuration>
    </plugin>

Looking at https://eclipse.org/aspectj/doc/released/devguide/ajc-ref.html, I didn't see what parameter I could change to preserve the information.
 
Any clue?
 
Thank you

_______________________________________________
aspectj-users mailing list
[hidden email]
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/aspectj-users
Reply | Threaded
Open this post in threaded view
|

Re: Compiler removes java 8 method parameter names

Andy Clement
I responded to your maven comment. In short -parameters is working - you are noticing that the local variable table is always included when you need to check for the MethodParameters attribute which is what that flag controls. Now should -g:none turn off the local variable table? maybe that could be worth a ticket. 

cheers,
Andy

On Nov 26, 2015, at 1:48 PM, Alexander Kriegisch <[hidden email]> wrote:

It is very funny, but from my experience the parameter info is always there, see my comment on the AspectJ Maven ticket:
 
If the info is not in your class files, meybe just don't use the Maven Compiler Plugin, only AspectJ Maven.
 
@Andy Clement: Please also read my comment there because the '-parameters' support in Ajc seems to be hard-coded. Is this intentional? Is it worth a bug ticket?
 
Regards
--
Alexander Kriegisch
http://scrum-master.de
 

Andrei Ivanov schrieb am 26.11.2015 11:46:

Hi,
Just pasting the details from https://github.com/mojohaus/aspectj-maven-plugin/issues/7

The new compiler option -parameters allows to compile in the method parameter names information into the bytecode. After the aspectj processing this information goes removed.

Here ist the configuration of maven compiler plugin

    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.3</version>
      <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <compilerArgument>-parameters</compilerArgument>
      </configuration>
    </plugin>

And configuration of aspectj

    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>aspectj-maven-plugin</artifactId>
      <version>1.8</version>
      <executions>
        <execution>
          <goals>
            <goal>compile</goal>
            <goal>test-compile</goal>
          </goals>
        </execution>
      </executions>
      <configuration>
        <encoding>UTF-8</encoding>
        <source>1.8</source>
        <target>1.8</target>
        <complianceLevel>1.8</complianceLevel>
      </configuration>
    </plugin>

Looking at https://eclipse.org/aspectj/doc/released/devguide/ajc-ref.html, I didn't see what parameter I could change to preserve the information.
 
Any clue?
 
Thank you
_______________________________________________
aspectj-users mailing list
[hidden email]
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/aspectj-users


_______________________________________________
aspectj-users mailing list
[hidden email]
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/aspectj-users