platform-core-home/downloads/tools/readme.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (view) (download) (as text)

1 : jeff 1.1 <!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
2 :     <html>
3 :     <head>
4 :     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
5 :     <title>Core Tools</title>
6 :     </head>
7 :    
8 :     <body>
9 :     <h2 align="center">Core Tools v1.0.0</h2>
10 :     <h3>Introduction</h3>
11 :    
12 :    
13 :     <p>Core Tools is a set of views and perspectives useful for people writing Eclipse
14 :     plugins or just wanting to know what is going on under the covers. Roughly speaking
15 :     there are three kinds of tools:</p>
16 :     <dl>
17 :     <dt>Runtime tools</dt>
18 :     <dd>The runtime tools expose the internal behaviour of the Platform runtime
19 :     as well as certain aspects of plugins (activation ordering, classes loaded,
20 :     relation to other plugins, ...) and classes (load order, load nesting, ...).
21 :     Plugin developers can use this information to ensure that their plugins/classes
22 :     are be activated/loaded as expected, and that they are not taking more time/space
23 :     than is warranted.</dd>
24 :     <dt>Resources tools</dt>
25 :     <dd>The resources tools expose the behaviour/performance of installed builders
26 :     and listeners as well as the structure of the workspace, resources and resource
27 :     deltas.</dd>
28 :     <dt>Metadata tools</dt>
29 :     <dd>The metadata tools enable users to investigate the metadata files used to
30 :     maintain the resource model. Point these tools at a workspace and browse...</dd>
31 :     </dl>
32 :    
33 :    
34 :     <h3>Installing and Running Core Tools</h3>
35 :    
36 :     <h4>Installing Core Tools</h4>
37 :     <p>Core Tools comes in two parts; the tools themselves and some patches for the
38 :     boot, runtime and resources plugins. To install:</p>
39 :     <ol>
40 :     <li>To install the Core Tools, get org.eclipse.core.tools.zip and extract all
41 :     files into the <b>parent</b> of your &lt;eclipse install&gt; directory (i.e.,
42 :     the one containing &quot;eclipse&quot;). This will a add the Core Tools feature
43 :     as well as supporting plugins and fragments.</li>
44 : jeff 1.2 <li>If you are running an Eclipse build from before I20021127 (this includes
45 : jeff 1.1 2.0.*) you will need to get the patched versions of the boot, runtime and
46 :     resources plugins. Get core-tools-patches.zip and extract all files into your
47 :     &lt;eclipse install&gt;/plugins directory. This will overwrite boot.jar, runtime.jar
48 :     and resources.jar.</li>
49 :     </ol>
50 :     <h4>Running Core Tools</h4>
51 :     <p>After installing the Core Tools, you must enable them. The tools are enabled
52 :     using Eclipse's debug options mechanism. To run Eclipse in &quot;debug&quot;
53 :     mode, use the -debug command line option. If nothing else is said, Eclipse will
54 :     look for the file &lt;eclipse install&gt;/.options. This is a Java properties
55 :     file detailing which debug options should be enabled etc. See the Eclipse runtime
56 :     documentation for more details. </p>
57 :     <p>The org.eclipse.core.tools plugin contains an example .options file which enables
58 :     all options (except class load trace filters). To run Eclipse with the Core
59 :     Tools, either copy this file to your &lt;eclipse install&gt; directory or identify
60 :     it on the command line after -debug. For example, </p>
61 : jeff 1.2 <pre> eclipse -debug file:d:/.options</pre>
62 : jeff 1.1 <p>Note that not all tools require enablement. You need only enable the debug
63 :     options required by the tools you choose to use. See the tool descriptions for
64 :     details.</p>
65 :     <p>If you are using PDE's runtime workbench then you can enable tracing and set
66 :     the appropriate options for the target workspace. See PDE Guide -&gt; Running
67 :     a plug-in -&gt; Running with tracing found in the standard Eclipse documentation
68 :     set for more information.</p>
69 :     <p>Once you are running with the Core Tools installed, there are a number of new
70 :     perspectives and views. These are accessed by opening a new perspective or using
71 :     the Window-&gt;Show View functions in the workbench.</p>
72 :     <h3>Runtime Tools</h3>
73 :    
74 :    
75 :     <p>The runtime tooling contributes a Runtime Spy and Plugin Dependency perspectives.
76 :     Note that in some cases the views can be combined or used in other contexts.
77 :     The individual views are accessed via the Workspace-&gt;Show View-&gt;Runtime
78 :     Tools menu.</p>
79 :     <h4>Runtime Spy Perspective</h4>
80 :     <p>The Runtime Spy perspective shows information about the plugin activation,
81 :     class loading, resource bundles etc. It is extremely useful when trying to track
82 :     down why plugins are being activated or classes loaded as well as getting a
83 :     handle on how much code is loaded. This tool contains four views: </p>
84 :     <dl>
85 :     <dt><b>Activated Plugins</b> </dt>
86 :     <dd>This is the list of plugins which have been activated since the start of
87 :     this Eclipse session. Included is total code footprint, startup time, activation
88 :     order as well as the number of classes loaded for each plugin.<br>
89 :     When plugins are activated a snapshot of the execution stack is taken. This
90 :     stack trace can be viewed by selecting plugin and clicking on the stack trace
91 :     'T' button on the title bar or in the context menu.<br>
92 :     The classes loaded by the selected plugins is shown in the Loaded Classes
93 :     view when the &quot;Classes&quot; button ('C') on the menu bar or context
94 :     menu is used.<br>
95 :     Note that this list is not automatically updated when a new plugin is activated
96 :     so users should use the refresh button on the view title bar or in the context
97 :     menu.</dd>
98 :     <dt><b>Loaded Classes</b> </dt>
99 :     <dd>This view is populated with classes loaded by plugins selected in the Activated
100 :     Plugins view. For each class data such as load order and memory footprint
101 :     are listed. If the appropriate filtering is enabled when the platform is started
102 :     (see below), stack snapshots taken at class loading time are available by
103 :     selecting a class and using the Stack Trace menu entry or title bar button.</dd>
104 :     <dt><b>Plugin Datasheet</b> </dt>
105 :     <dd>Shows a summary of the currently selected plugin.</dd>
106 :     <dt><b>Stack Trace</b> </dt>
107 :     <dd>Shows a snapshot of the execution stack at the time of some event (e.g.,
108 :     plugin activation, class loading).</dd>
109 :     </dl>
110 :     <p>The following debug options control what data is available in Runtime Spy perspective
111 :     views.</p>
112 :     <dl>
113 :     <dt>org.eclipse.core.boot/monitor/classes=&lt;boolean&gt;</dt>
114 :     <dd>Whether or not to monitor which classes are loaded.</dd>
115 :     <dt>org.eclipse.core.boot/monitor/plugins=&lt;boolean&gt;</dt>
116 :     <dd>Whether or not to monitor which plugins are activated.</dd>
117 :     <dt>org.eclipse.core.boot/monitor/bundles=&lt;boolean&gt;</dt>
118 :     <dd>Whether or not to monitor which resource bundles (i.e., *.properties files
119 :     ) are loaded</dd>
120 :     <dt>org.eclipse.core.boot/trace/classLoading=&lt;boolean&gt;</dt>
121 :     <dd>Whether or not to snapshot the execution stack when a class is loaded</dd>
122 :     <dt>org.eclipse.core.boot/trace/filename=&lt;file location&gt;</dt>
123 :     <dd>The file in which execution traces are written</dd>
124 :     <dt>org.eclipse.core.boot/trace/filters=&lt;properties file&gt;</dt>
125 :     <dd>The location of a Java properties file identifying the classes which should
126 :     be traced (if trace/classLoading is true). The File format is: <br>
127 :     plugins=&lt;comma separated list of plugins whose classes to trace&gt;<br>
128 :     packages=&lt;comma separated list of package prefixes of classes to trace&gt;<br>
129 :     Note that there may be many 'plugins' and 'packages' lines in one file.</dd>
130 :     <dt>org.eclipse.core.boot/trace/pluginActivation=&lt;boolean&gt;</dt>
131 :     <dd>Whether or not to snapshot the execution stack when a plugin is activated.<br>
132 :     </dd>
133 :     </dl>
134 :     <p></p>
135 :     <h4>Plug-In Dependency Perspective</h4>
136 :     <p>This perspective includes 2 views: a plug-in list view listing all the plug-ins
137 :     available in the workspace and a plug-in dependency view. The plug-in ids in
138 :     the list view are given in alphabetical order (according to their plug-in id).
139 :     Select a plug-in in the list view and the dependency view is updated to show
140 :     all plug-ins that the selected plug-in requires as well as all plug-ins that
141 :     require this selected plug-in. This information is currently only presented
142 :     in a text format.</p>
143 :     <h3>Resources Tools</h3>
144 :     <p>The Resources tooling consists of a number of views described below. These
145 :     are accessed via the Workspace-&gt;Show View-&gt;Resources Tools menu and can
146 :     be used independently or together to as desired. </p>
147 :     <h4>Resource Spy view</h4>
148 :     This view shows detailed public/internal information about the resource currently
149 :     selected in any Eclipse view (e.g. Resource Navigator, Package Explorer, etc).
150 :     It shows details about: flags, markers, synchronization information, and session/persistent
151 :     properties.
152 :     <h4>Delta Spy View</h4>
153 :     The Delta Spy listens for any resource changes, echoing the resource delta for
154 :     each change event listened. For each affected resource (and its child resources),
155 :     it shows the following information:
156 :     <ul>
157 :     <li>the resource's full path;</li>
158 :     <li>the kind of change (between brackets): addition (+), phantom addition (&gt;),
159 :     removal (-), phantom removal (&lt;), change (*), no change (~), and unknown
160 :     (?);</li>
161 :     <li>the change flags (between curly braces): CONTENT, MOVED_FROM, MOVED_TO,
162 :     OPEN, TYPE, SYNC, MARKERS, REPLACED, DESCRIPTION;</li>
163 :     <li>in the case it is a marker change, it will show (between brackets) for each
164 :     marker changed:
165 :     <ul>
166 :     <li>the kind of marker change: addition (+), removal (-), change (*);</li>
167 :     <li>the marker's id;</li>
168 :     </ul>
169 :     </li>
170 :     <li>if it is a team private change, a "(team private)" tag.</li>
171 :     </ul>
172 :     <h4>Builders/Listeners Spy</h4>
173 :     <p>The Builders/Listeners Spy view displays statistical information about the
174 :     behaviour and performance of installed builders and resource change listeners.
175 :     The information includes:</p>
176 :     <ul>
177 :     <li>the name of builder/listener (listeners do not technically have names so
178 :     their toString() is used)</li>
179 :     <li>the project related to the builder (blank for listeners)</li>
180 :     <li>the number of events (builds or resource changed) processed by the builder/listener</li>
181 :     <li>the amount of time spent processing these events</li>
182 :     <li>the number of core exceptions encountered</li>
183 :     </ul>
184 :     <p>For more informatioin on listeners see the Eclipse article &quot;How You've
185 :     Changed! Responding to resource changes in the Eclipse workspace&quot; by John
186 :     Arthorne (OTI) August 23, 2002. Documentation on builders can be found in the
187 :     Platform Plug-in Developer Guide included with the Eclipse documentation.</p>
188 :     <p>The following debug options control what data is available in Builder/Listener
189 :     Spy view.</p>
190 :     <dl>
191 :     <dt>org.eclipse.core.resources/monitor/builders=&lt;boolean&gt;</dt>
192 :     <dd>Whether or not to monitor which builders.</dd>
193 :     <dt>org.eclipse.core.resources/monitor/listeners=&lt;boolean&gt;</dt>
194 :     <dd>Whether or not to monitor which listeners.</dd>
195 :     </dl>
196 :    
197 :     <h3>Metadata Tools</h3>
198 :     <p>The metadata tooling contributes a Metadata perspective. The individual views
199 :     are not particularly useful on their own but are accessed via the Workspace-&gt;Show
200 :     View-&gt;Metadata Tools menu.</p>
201 :     <h4></h4>
202 :     <h4>The Metadata Perspective</h4>
203 :     This perspective contains three views which allows the user to select a workspace
204 :     metadata directory, browse its structure and see supported files contents and
205 :     integrity status.
206 :     <h4></h4>
207 :     <dl>
208 :     <dt><b>Workspace Files Spy</b></dt>
209 :     <dd>This view allows the user to select a given workspace .metadata directory
210 :     and uses a tree view to show a directory hierarchy (having .metadata as root)
211 :     containing all known metadata files as leaf nodes. If the user double-clicks
212 :     one of these leaf nodes, the Dump Contents view will be opened having this
213 :     file as its current selected file. </dd>
214 :     <dt><b>Dump Contents</b></dt>
215 :     <dd>This view presents to the user the contents of a selected metadata file
216 :     in a human-readable format. It provides an action for selecting a new file
217 :     to dump. The contents layout will depend on what kind of file is being dumped.
218 :     This view has a sub-view called &quot;Dump Summary&quot; that shows whether
219 :     the file read was ok or not. </dd>
220 :     <dt><b>Dump Summary</b></dt>
221 :     <dd>This view presents to the user the results of a file dumped using the Dump
222 :     Contents view. In the case of a error during the dumping process (because
223 :     the metadata file being dumped was corrupted), the reason will be shown here,
224 :     along with the number of bytes read. This view will only be updated if it
225 :     is open when a file is being dumped. </dd>
226 :     </dl>
227 :     <p>Note: the dumping functionality is also available through a command-line tool:
228 :     <code>org.eclipse.core.tools.dumper.DumpTool</code>. To run it, you need to
229 :     provide the file to be dumped as an argument. Beware the classpath must include
230 :     both Spy and Resources plug-ins' JARs. </p>
231 :     <h4><a href="hglegal2002.htm"><img SRC="ngibmcpy2002.gif" ALT="Copyright IBM Corporation and others 2000, 2002. All Rights Reserved." BORDER=0 height=14 width=324></a></h4>
232 :     </body>
233 :     </html>