As a child, you may find this attitude funny, but it will get back to you
in ways you’re yet to fully comprehend . Instead of being grateful by
getting an answer directly from Alexander you just made a fool of yourself.

1) learn how to listen and how to be respectful
2) then you may be ready to learn something more

Frankie

----


On Sat, 20 Jan 2024 at 13:37, kypdk via aspectj-users <
[email protected]> wrote:

> If you do not have the necessary technical knowledge about aspectj, you
> can say you do not know about this subject. Other than that, you can't tell
> me what job to do and how. I did not consult you on this matter.
>
> I say again, if you don't know about this subject, you can just say you
> don't know, you won't tell me what is necessary or not. You should know
> your place. I can know what is good for me and what is not.
>
> DO YOU UNDERSTAND ME?
>
> The question I ask is, can aspectj work as an agent in an easy way?
>
> Alexander Kriegisch via aspectj-users <[email protected]>, 18 Oca
> 2024 Per, 07:42 tarihinde şunu yazdı:
>
>> Why not just
>>
>>    - use the aspectjweaver Java agent,
>>    - package your timing aspect and an aop.xml config file in an aspect
>>    library and
>>    - put the aspect library on the normal classpath?
>>
>> Why write an extra agent, if AspectJ already has one that does what you
>> need? You still did not explain anything that would require your
>> complicated approach. Not that it would not work, if done correctly, but it
>> seems to be totally unnecessary. Just use a regular LTW approach
>> <https://github.com/eclipse-aspectj/aspectj/blob/75a9c663ab7b382cdd97f39acd2588cfe1f76f03/docs/devguide/ltw.adoc>.
>> No separate agent, no Maven Shade necessary.
>> --
>> Alexander Kriegisch
>> https://scrum-master.de
>>
>>
>> kypdk schrieb am 17.01.2024 20:33 (GMT +07:00):
>>
>> First of all, thank you very much for your answer.
>>
>> Since the coding experiments I have made are AI-guided, I cannot say that
>> they will be consistent.
>>
>> Very simply, to write a simple agent that calculates the total running
>> time of the application I am making as an agent, from the after-before
>> start and end time of the methods running on the JVM.
>>
>> I can do it with Aspectj using AOP technique.
>>
>> I want to do it for legacy applications running on JDK8.
>>
>> regards
>>
>> Alexander Kriegisch via aspectj-users <[email protected]>, 17
>> Oca 2024 Çar, 12:25 tarihinde şunu yazdı:
>>
>>> This is not trivial. So please, provide a full reproducer project on
>>> GitHub including the target code to be woven, so I do not have to fill in
>>> the gaps here.
>>>
>>> What I noticed at first glance is, that class StartAgent to be and do
>>> multiple things at once:
>>>
>>>    1. It is a java agent.
>>>    2. It tries to inject another java agent aspectjweaver into the
>>>    bootstrap classloader, which begs the question why you are not doing that
>>>    from the JVM command line, if you are already using a -javaagent
>>>    parameter anyway. Then the springboard agent would not even be necessary.
>>>    The next question would be why you think you need it on the bootstrap
>>>    classloader at all.
>>>    3. It is an aspect, i.e. it is accessing classes from aspectjweaver
>>>    from the system classloader already, before it even has a chance to 
>>> inject
>>>    the jar into the bootstrap classloader.
>>>
>>> Your springboard agent should not directly import or reference any
>>> classes from aspectjweaver or aspectjrt before the weaver JAR has been
>>> added to the bootstrap loader. If later for any reason the springboard
>>> agent needs to kick off some action involving classes referencing weaver
>>> classes, you ought to load and start them via reflection, e.g.
>>> Class.forName etc.
>>>
>>> It looks as if you are making a simple matter overly complicated. The
>>> justification for what you are trying to do could only be a very special
>>> use case, which you have failed to describe. So I have no way to be sure,
>>> whether there is not a simpler approach. Lacking additional evidence, I
>>> would assume there is.
>>>
>>> BTW, are you on JDK 8 or on 9+? I am asking for a specific reason too
>>> early to discuss now.
>>> --
>>> Alexander Kriegisch
>>> https://scrum-master.de
>>>
>>>
>>> kypdk via aspectj-users schrieb am 17.01.2024 03:20 (GMT +07:00):
>>>
>>> Hello,
>>>
>>> What I want to do is to trigger the before advice on the agent when the
>>> methods run on the generator.jar
>>>
>>> Could you help me ,I would greatly appreciate it
>>>
>>> regards
>>>
>>> java -javaagent:JavaAgent.jar -jar Generator.jar
>>>
>>>
>>> import org.aspectj.lang.JoinPoint;
>>> import org.aspectj.lang.annotation.Aspect;
>>> import org.aspectj.lang.annotation.Before;
>>> import org.aspectj.weaver.loadtime.Agent;
>>>
>>> import java.io.IOException;
>>> import java.lang.instrument.Instrumentation;
>>> import java.util.jar.JarFile;
>>>
>>> @Aspect
>>> public class StartAgent {
>>>
>>>     public static void premain(String agentArgs, Instrumentation 
>>> instrumentation) {
>>>         System.out.println("Java Agent Started");
>>>
>>>         String aspectjWeaverPath = "aspectjweaver.jar";
>>>         try {
>>>             instrumentation.appendToBootstrapClassLoaderSearch(new 
>>> JarFile(aspectjWeaverPath));
>>>         } catch (IOException e) {
>>>             System.out.println(e);
>>>         }
>>>
>>>         Agent.premain(agentArgs, instrumentation);
>>>     }
>>>
>>>     @Before("execution(* *(..))")
>>>     public void beforeMethodExecution(JoinPoint joinPoint) {
>>>         System.out.println("Before method execution: " + 
>>> joinPoint.getSignature().toShortString());
>>>     }
>>> }
>>>
>>> <plugin>
>>>     <groupId>org.apache.maven.plugins</groupId>
>>>     <artifactId>maven-shade-plugin</artifactId>
>>>     <version>3.2.4</version>
>>>     <configuration>
>>>         <transformers>
>>>             <transformer 
>>> implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
>>>                 <manifestEntries>
>>>                     <Premain-Class>StartAgent</Premain-Class>
>>>                     <Can-Retransform-Classes>true</Can-Retransform-Classes>
>>>                     <Can-Redefine-Classes>true</Can-Redefine-Classes>
>>>                     
>>> <Implementation-Version>${project.version}</Implementation-Version>
>>>                 </manifestEntries>
>>>             </transformer>
>>>         </transformers>
>>>
>>>         <filters>
>>>             <filter>
>>>                 <artifact>*:*</artifact>
>>>                 <excludes>
>>>                     <exclude>META-INF/*.SF</exclude>
>>>                     <exclude>META-INF/*.DSA</exclude>
>>>                     <exclude>META-INF/*.RSA</exclude>
>>>                 </excludes>
>>>             </filter>
>>>         </filters>
>>>     </configuration>
>>>     <executions>
>>>         <execution>
>>>             <phase>package</phase>
>>>             <goals>
>>>                 <goal>shade</goal>
>>>             </goals>
>>>         </execution>
>>>     </executions>
>>> </plugin>
>>>
>>>
>>>
>>> _______________________________________________
>>> aspectj-users mailing list
>>> [email protected]
>>> To unsubscribe from this list, visit
>>> https://www.eclipse.org/mailman/listinfo/aspectj-users
>>>
>> _______________________________________________
>> aspectj-users mailing list
>> [email protected]
>> To unsubscribe from this list, visit
>> https://www.eclipse.org/mailman/listinfo/aspectj-users
>>
> _______________________________________________
> aspectj-users mailing list
> [email protected]
> To unsubscribe from this list, visit
> https://www.eclipse.org/mailman/listinfo/aspectj-users
>
_______________________________________________
aspectj-users mailing list
[email protected]
To unsubscribe from this list, visit 
https://www.eclipse.org/mailman/listinfo/aspectj-users

Reply via email to