Highlighted

Why isn't debugging easier? Where's the source code?

jkpanera

12-08-2019

I am a very experienced Java developer who has been learning AEM for the last year. One of the things that makes me crazy is that it's so hard to debug.

In theory most of AEM is open source. In practice, it isn't.

Inevitably, I'm going to want to debug my application, but Adobe has gone out of its way to make that difficult. I can't just download a source jar with my IDE and set a break point (as was possible when using most other frameworks). When I do download a source jar Sling/Jackrabbit, whatever, inevitably, the source doesn't match.

Why doesn't Adobe choose release versions of the frameworks that it uses?

It's horribly frustrating. I understand that you  are selling so VPs not developers, but you aren't making friends by doing this.

I don't think I would recommend that anyone use AEM.

Replies

Highlighted

Andrew_Khoury

Employee

12-08-2019

Hi jkpanera​,

You should be able to do debugging using remote debugging as documented here:

Debug an AEM app using eclipse

Remote debugging is available in all major Java IDE's.  Using remote debugging, you can debug your application's code.

In addition, the code for Apache Felix, Sling and Jackrabbit Oak is available on github: The Apache Software Foundation · GitHub​.

Highlighted

Jörg_Hoh

Employee

12-08-2019

Can you give an example where the problem arises, that a sling or Jackrabbit bundle you downloaded does not match the code?

Also the AEM uber jar only references the API bundle versions, and does not specify the version number of the implementation bundles. This is by design. If you really want and need to debug into the implementation bundles you probably have specify them in your POM as well, just to pinpoint to the correct version.

And to be honest, I was not aware of the problem you describe. Either other developers solve it for themselves and never talk about it, or it's not a problem at all for them (and then I don't know why). Maybe others can elaborate a bit on this, because I don't debug into the live system.

Jörg

Highlighted

Himanshu_Singhal

MVP

12-08-2019

And, IntelliJ provides Remote debugging in a quite good way where you can set debug point in compiled classes as well without installing any source code compiler in IDE.