Snjezana Peco [https://community.jboss.org/people/snjeza] modified the blog 
post:

"JBoss Source Lookup"

To view the blog post, visit: 
https://community.jboss.org/community/tools/blog/2012/01/24/jboss-source-lookup

--------------------------------------------------------------
The JBoss Tools Source Lookup plugin automatically adds a source attachment 
when debugging JBoss AS servers. 
The plugin has been tested with JBoss AS 7.x and JBoss AS 6.1. 

h4. Installing the JBoss Source Lookup plugin

* install JBoss Tools 3.3 as described in   
https://community.jboss.org/community/tools/blog/2011/12/18/learn-java-ee-6-quickly-using-jboss-central
 Learn Java EE 6 quickly using JBoss Central
* call Help>Install New Software..., click the Add button and enter the 
following update site: 
 
https://anonsvn.jboss.org/repos/jbosstools/workspace/snjeza/org.jboss.tools.as.sourcelookup.updatesite/
 
https://anonsvn.jboss.org/repos/jbosstools/workspace/snjeza/org.jboss.tools.as.sourcelookup.updatesite/
 
https://community.jboss.org/servlet/JiveServlet/showImage/38-4482-17822/lookupblog1.png
  
https://community.jboss.org/servlet/JiveServlet/downloadImage/38-4482-17822/450-382/lookupblog1.png
 
Install the JBoss Tools Source Lookup category and restart Eclipse.

h4. Using the JBoss Source Lookup plugin

* set up the central JBoss Maven repository as explained in:  
https://community.jboss.org/docs/DOC-15169 Maven Getting Started - Users
* create the jboss-as-helloworld project by following the instructions in  
https://community.jboss.org/community/tools/blog/2011/12/18/learn-java-ee-6-quickly-using-jboss-central
 Learn Java EE 6 quickly using JBoss Central 
* wait for Maven to refresh indexes 

The use and debugging of this plugin is demonstrated in the following 
screencast:  http://screencast.com/t/i6k9hzkjViOs Debugging JBoss AS server.

The JBoss Source Lookup plugin enhances source attachment in the following way: 

* archive file doesn't have to be in the maven classpath
* archive file doesn't have to be included in the classpath (jbossweb-*.jar, 
for instance). The JBoss Source Lookup plugin will find a class within a JBoss 
AS distribution and, if it is a Maven artifact, the plugin will attach the 
corresponding source.
* archive file doesn't have to be in the m2e index (jbossjts-4.16.0.Final.jar, 
for instance)

You don't have to add any JBoss AS Runtime to the classpath. I have added it in 
order to ensure the classes within the runtime are included in the Java Search 
and in order to be easier to add a breakpoint. 

h4. Debugging Apache Tomcat and Glassfish servers

The JBoss Source plugin can serve to debug other servers.
If a server includes mavenized archives, the JBoss Source container will find, 
download, and show source files. 
I have tested the Apache Tomcat 7.0.25 and Glassfish 3.1.1. 

If you want to debug Apache Tomcat and/or Glassfish, you have to do the 
following: 

* create some Apache Tomcat/Glassfish server 
https://community.jboss.org/servlet/JiveServlet/showImage/38-4482-17852/lookupblog3.png
  
https://community.jboss.org/servlet/JiveServlet/downloadImage/38-4482-17852/450-71/lookupblog3.png
 
* open the server editor 
https://community.jboss.org/servlet/JiveServlet/showImage/38-4482-17854/lookupblog4.png
  
https://community.jboss.org/servlet/JiveServlet/downloadImage/38-4482-17854/450-230/lookupblog4.png
 
* click *Open launch configuration* and select the *Source* tab 
https://community.jboss.org/servlet/JiveServlet/showImage/38-4482-17855/lookupblog5.png
  
https://community.jboss.org/servlet/JiveServlet/downloadImage/38-4482-17855/450-404/lookupblog5.png
 
* click the *Add* button and select the *JBoss AS Source Container* 
https://community.jboss.org/servlet/JiveServlet/showImage/38-4482-17857/lookupblog6.png
  
https://community.jboss.org/servlet/JiveServlet/downloadImage/38-4482-17857/310-225/lookupblog6.png
 
* JBoss AS servers will be automatically recognized and you can choose them by 
clicking a server 
As to other servers, you need to click the *Choose Home* button, select all the 
directories in which the server's archives are placed. 
        If you debug Tomcat, you can choose $TOMCAT_HOME/lib.  When debugging 
Glassfish, you can choose $GLASSFISH_HOME/lib and $GLASSFISH_HOME/modules. 
        You can add as many JBoss AS Source containers as you want. 
https://community.jboss.org/servlet/JiveServlet/showImage/38-4482-17858/lookupblog7.png
  
https://community.jboss.org/servlet/JiveServlet/downloadImage/38-4482-17858/310-295/lookupblog7.png
 
* move a JBoss Source container(s) to the end (optional) 
https://community.jboss.org/servlet/JiveServlet/showImage/38-4482-17859/lookupblog8.png
  
https://community.jboss.org/servlet/JiveServlet/downloadImage/38-4482-17859/310-369/lookupblog8.png
 
* you can add a Server Runtime container to the project's classpath (optional) 
https://community.jboss.org/servlet/JiveServlet/showImage/38-4482-17860/lookupblog9.png
  
https://community.jboss.org/servlet/JiveServlet/downloadImage/38-4482-17860/254-211/lookupblog9.png
 
*  start the server in the debug mode 
https://community.jboss.org/servlet/JiveServlet/showImage/38-4482-17861/lookupblog10.png
  
https://community.jboss.org/servlet/JiveServlet/downloadImage/38-4482-17861/450-218/lookupblog10.png
 
*StandardWrapper.java* is placed in the glassfish's *web-core.jar*.   
The Source Lookup plugin finds this archive's source and shows it in the 
editor. 

In a similar way you can debug Apache Tomcat server.
 
https://community.jboss.org/servlet/JiveServlet/showImage/38-4482-17862/lookupblog12.png
  
https://community.jboss.org/servlet/JiveServlet/downloadImage/38-4482-17862/450-217/lookupblog12.png
 
The *ApplicationFilterChain.java* is placed in the Tomcat's *catalina.jar* 
archive. 


The Source Lookup plugin finds source for a mavenized archive as follows: 

* using the m2e API
* using the archive's metadata (META-INF/maven)
* using nexus repositories that can be defined using the Source Lookup 
preferences page 
https://community.jboss.org/servlet/JiveServlet/showImage/38-4482-17863/lookupblog11.png
  
https://community.jboss.org/servlet/JiveServlet/downloadImage/38-4482-17863/450-259/lookupblog11.png
 

The Source Lookup preferences page enables you to add/remove, enable/disable 
and/or change ordering of Nexus repositories. 
You can see that the *helloworld* project I have used in this blog, *is not a 
maven project* (it doesn't contain the maven icon). 
JBoss Source Lookup plugin can be used to debug any Java project. 

The plugin doesn't have to be used for debugging only. 
It will find, download and open a source file for a mavenized archive included 
in the classpath when double-clicking a class file in the *Package Explorer* 
view,  opening it using *Navigate>Open Type* or some other way. 

The JBoss Source Lookup plugin can be used for any Java project and any launch 
configuration. 

*Note*: When starting debugging the first time, it could take some time until 
m2e updates indexes  and the JBoss Source lookup plugin scans the container's 
directory.
--------------------------------------------------------------

Comment by going to Community
[https://community.jboss.org/community/tools/blog/2012/01/24/jboss-source-lookup]

_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to