platform-core-home/documents/core_overview.html
Parent Directory
|
Revision Log
Revision 1.1 - (view) (download) (as text)
| 1 : | dj | 1.1 | <html><title>Eclipse Core Overview</title><body> |
| 2 : | <h2 align="center">Eclipse Core Overview</h2> | ||
| 3 : | <h2>Index</h2> | ||
| 4 : | <ul> | ||
| 5 : | <li><a href="#projects">Project Breakdown</a></li> | ||
| 6 : | <li><a href="#builds">The Build</a></li> | ||
| 7 : | <li><a href="#bugs">Bug Reports</a></li> | ||
| 8 : | </ul> | ||
| 9 : | <h2><a name="projects"></a>Project Breakdown</h2> | ||
| 10 : | <h3>Runtime Framework</h3> | ||
| 11 : | <blockquote> | ||
| 12 : | <h4>Description</h4> | ||
| 13 : | <blockquote> | ||
| 14 : | <p>The new OSGi code.</p> | ||
| 15 : | </blockquote> | ||
| 16 : | <h4>Projects</h4> | ||
| 17 : | <ul> | ||
| 18 : | <li>org.eclipse.osgi</li> | ||
| 19 : | <li>org.eclipse.osgi.services</li> | ||
| 20 : | <li>org.eclipse.osgi.util</li> | ||
| 21 : | </ul> | ||
| 22 : | </blockquote> | ||
| 23 : | <h3>Runtime</h3> | ||
| 24 : | <blockquote> | ||
| 25 : | <h4>Description</h4> | ||
| 26 : | <blockquote> | ||
| 27 : | <p>Code dealing with bootstrapping the system, the extension registry and | ||
| 28 : | concurrency models, as well as utility classes.</p> | ||
| 29 : | <p>The <code>org.eclipse.core.boot </code>project contains the bootstrap code | ||
| 30 : | needed to get the platform up and running. It calls the EclipseStarter in | ||
| 31 : | OSGi which starts the framework. It is currently being investigated as to | ||
| 32 : | whether or not this code can be merged into the Main.java class and this | ||
| 33 : | project be removed from the SDK.</p> | ||
| 34 : | <p>The <code>org.eclipse.core.runtime </code>project contains the runtime | ||
| 35 : | APIs. This includes the job manager, util classes (IPath, IProgressMonitor, | ||
| 36 : | CoreException, etc), the new extension registry.</p> | ||
| 37 : | <p>The <code>org.eclipse.core.runtime.compatibility </code>project exists | ||
| 38 : | for backwards compatibility purposes only. It contains deprecated APIs. | ||
| 39 : | (mostly dealing with the old plug-in registry)</p> | ||
| 40 : | <p>The <code>Main.java </code>class in the <code>org.eclipse.platform </code>project | ||
| 41 : | contains the code for the <code>startup.jar</code>. This code finds the | ||
| 42 : | bootloader and allows Eclipse to start. This project also contains the files | ||
| 43 : | which are found in the root of the Eclipse install.</p> | ||
| 44 : | <p>The <code>platform-launcher </code>project contains the C code for the | ||
| 45 : | Eclipse executable. It is owned by Platform/Core but was written and generously | ||
| 46 : | maintained by Platform/SWT since they have more experience in writing C | ||
| 47 : | code. The executable handles special return codes from the application indicating | ||
| 48 : | whether to restart, print out a message saying that there is info in the | ||
| 49 : | .log file, etc. </p> | ||
| 50 : | <p>Note that there are problems running Eclipse with an IBM 1.4 JRE and plug-ins | ||
| 51 : | having a requirement on the <code>org.apache.xerces</code> plug-in. Therefore, | ||
| 52 : | there is currently a request into the Eclipse PMC to remove this plug-in | ||
| 53 : | from the Eclipse SDK distribution. As an alternative, plug-in developers | ||
| 54 : | are encouraged to code using the JAXP APIs available in the 1.4 JDK.</p> | ||
| 55 : | </blockquote> | ||
| 56 : | <h4>Projects</h4> | ||
| 57 : | <ul> | ||
| 58 : | <li>org.apache.xerces</li> | ||
| 59 : | <li>org.eclipse.core.boot</li> | ||
| 60 : | <li>org.eclipse.core.runtime</li> | ||
| 61 : | <li>org.eclipse.core.runtime.compatibility</li> | ||
| 62 : | <li>org.eclipse.core.tests.runtime</li> | ||
| 63 : | <li>org.eclipse.platform</li> | ||
| 64 : | <li>platform-launcher</li> | ||
| 65 : | </ul> | ||
| 66 : | </blockquote> | ||
| 67 : | <h3>Resources</h3> | ||
| 68 : | <blockquote> | ||
| 69 : | <h4>Description</h4> | ||
| 70 : | <blockquote> | ||
| 71 : | <p>The workspace APIs which includes everthing dealing with workspaces, resources, | ||
| 72 : | markers, properties, and local history.</p> | ||
| 73 : | <p>Core Resources also contributes a library with filesystem calls. Although | ||
| 74 : | not necessary for Eclipse to run, running with the appropriate resources | ||
| 75 : | library will yield peformance enhancements as well as minor functionality | ||
| 76 : | benefits. Currently the library is available for 5 different OSes (windows, | ||
| 77 : | linux, hp-ux, macosx, and qnx) and it:</p> | ||
| 78 : | <ul> | ||
| 79 : | <li>bundles multiple OS calls into one function call</li> | ||
| 80 : | <li>implements #setReadOnly (java.io.File#setReadOnly is a no-op)</li> | ||
| 81 : | <li>improves timestamp granularity on some VMs</li> | ||
| 82 : | </ul> | ||
| 83 : | </blockquote> | ||
| 84 : | <h4>Projects</h4> | ||
| 85 : | <ul> | ||
| 86 : | <li>org.eclipse.core.resources</li> | ||
| 87 : | <li>org.eclipse.core.resources.linux</li> | ||
| 88 : | <li>org.eclipse.core.resources.win32</li> | ||
| 89 : | <li>org.eclipse.core.resources.hpux</li> | ||
| 90 : | <li>org.eclipse.core.resources.macosx</li> | ||
| 91 : | <li>org.eclipse.core.resources.qnx</li> | ||
| 92 : | <li>org.eclipse.core.tests.resources</li> | ||
| 93 : | <li>org.eclipse.core.tests.resources.saveparticipant</li> | ||
| 94 : | <li>org.eclipse.core.tests.resources.saveparticipant1</li> | ||
| 95 : | <li>org.eclipse.core.tests.resources.saveparticipant2</li> | ||
| 96 : | <li>org.eclipse.core.tests.resources.saveparticipant3</li> | ||
| 97 : | </ul> | ||
| 98 : | </blockquote> | ||
| 99 : | <h3>PDE-Build</h3> | ||
| 100 : | <blockquote> | ||
| 101 : | <h4>Description</h4> | ||
| 102 : | <blockquote> | ||
| 103 : | <p>Used to generate the build.xml Ant files for the builder.</p> | ||
| 104 : | </blockquote> | ||
| 105 : | <h4>Projects</h4> | ||
| 106 : | <ul> | ||
| 107 : | <li>org.eclipse.pde.build</li> | ||
| 108 : | </ul> | ||
| 109 : | </blockquote> | ||
| 110 : | <h3 align="left">WebDAV</h3> | ||
| 111 : | <blockquote> | ||
| 112 : | <h4>Description</h4> | ||
| 113 : | <blockquote> | ||
| 114 : | <p>Provides WebDAV support and is available as a separate download on the | ||
| 115 : | Eclipse/downloads web page. This used to be a part of the Eclipse SDK proper | ||
| 116 : | but was removed a while ago. (after release 1.0?) Note that the WebDAV plug-in | ||
| 117 : | has NO dependancy on the Eclipse Runtime.</p> | ||
| 118 : | <p>Why does Core own this? For legacy reasons. In early releases of Eclipse | ||
| 119 : | the VCM code was integrated tightly with Core and was done by the same team. | ||
| 120 : | As Eclipse matured, the code was refactored and split apart.</p> | ||
| 121 : | </blockquote> | ||
| 122 : | <h4>Projects</h4> | ||
| 123 : | <ul> | ||
| 124 : | <li>org.eclipse.webdav</li> | ||
| 125 : | </ul> | ||
| 126 : | </blockquote> | ||
| 127 : | <h3>Misc</h3> | ||
| 128 : | <blockquote> | ||
| 129 : | <h4>Description</h4> | ||
| 130 : | <blockquote> | ||
| 131 : | <p>The <code>org.eclipse.core.tests.harness</code> project contains helper | ||
| 132 : | classes for the Core test suites. All Core test classes sub-class <code>EclipseWorkspaceTest</code>.</p> | ||
| 133 : | </blockquote> | ||
| 134 : | <h4>Projects</h4> | ||
| 135 : | <ul> | ||
| 136 : | <li>org.eclipse.core.tests.harness</li> | ||
| 137 : | </ul> | ||
| 138 : | </blockquote> | ||
| 139 : | <h2><a name="builds"></a>The Build</h2> | ||
| 140 : | <p>The builder needs a couple of pieces of information (version, repository, username, | ||
| 141 : | password) in order to include the correct versions of projects in a build. This | ||
| 142 : | information is put into what we call a <code>map</code> file. Look in the <code>maps/</code> | ||
| 143 : | folder of the <code>org.eclipse.releng</code> project to see the map files that | ||
| 144 : | the builder uses to create the Eclipse integration builds. Here are some sample | ||
| 145 : | lines from this file: </p> | ||
| 146 : | <blockquote> | ||
| 147 : | <p><code>plugin@org.eclipse.core.resources=v20031201,:pserver:anonymous@dev.eclipse.org:/home/eclipse<br> | ||
| 148 : | fragment@org.eclipse.core.resources.win32=v20031111,:pserver:anonymous@dev.eclipse.org:/home/eclipse,</code></p> | ||
| 149 : | </blockquote> | ||
| 150 : | <h3>Project Tag Naming Conventions</h3> | ||
| 151 : | <p>Customary naming convention is the date. (e.g. <code>v20031129</code> for a | ||
| 152 : | build on November 29, 2003) If there is a second (or third, etc) build on the | ||
| 153 : | same day, then we just append a letter to the end of the previous tag. (e.g. | ||
| 154 : | <code>v20031129a</code>)</p> | ||
| 155 : | <p>For maintenance builds we use an indicator for the build, along with the date. | ||
| 156 : | (e.g. <code>r21x_v20031124</code> for a maintenance build for Eclipse 2.1.1, | ||
| 157 : | 2.1.2, etc on November 24, 2003)</p> | ||
| 158 : | <h3>Process</h3> | ||
| 159 : | <ul> | ||
| 160 : | <li>test and release code changes</li> | ||
| 161 : | <li>version project in repository</li> | ||
| 162 : | <li>change line in map file to match project version</li> | ||
| 163 : | <li>release change to map file to HEAD</li> | ||
| 164 : | <li>the builder will automatically version the map file before beginning the | ||
| 165 : | integration build</li> | ||
| 166 : | </ul> | ||
| 167 : | <h3>Build Tool</h3> | ||
| 168 : | <p>The Release Engineering team has a build tool available on <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-releng-home/main.html">their | ||
| 169 : | web page</a> and it will help you with the above process. The tool adds a <code>Team | ||
| 170 : | -> Release</code> item to the context menu for projects. It tags the project | ||
| 171 : | and updates the line in the map file for you. Note that you still have to manually | ||
| 172 : | commit the changes to the map file to the repository yourself but the tool will | ||
| 173 : | bring up the <code>Sychronize</code> view for you.</p> | ||
| 174 : | <h3>Build Schedule</h3> | ||
| 175 : | <p>The build schedule found on the <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-releng-home/main.html">Release | ||
| 176 : | Engineering</a> team page on <a href="http://eclipse.org">Eclipse.org</a>.</p> | ||
| 177 : | <h2><a name="bugs"></a>Bug Reports</h2> | ||
| 178 : | <h3>Bug Lifecycle</h3> | ||
| 179 : | <blockquote> | ||
| 180 : | <p>For illustrated purposes I will use Platform/Core as an example.</p> | ||
| 181 : | <table width="87%" border="1"> | ||
| 182 : | <tr> | ||
| 183 : | <td width="22%"><div align="center"><strong>Owner</strong></div></td> | ||
| 184 : | <td width="23%"><div align="center"><strong>Status</strong></div></td> | ||
| 185 : | <td width="55%"><div align="center"><strong>Note</strong></div></td> | ||
| 186 : | </tr> | ||
| 187 : | <tr> | ||
| 188 : | <td>platform-core-inbox</td> | ||
| 189 : | <td>NEW</td> | ||
| 190 : | <td>Bug is entered by user.</td> | ||
| 191 : | </tr> | ||
| 192 : | <tr> | ||
| 193 : | <td>platform-core-inbox</td> | ||
| 194 : | <td>ASSIGNED</td> | ||
| 195 : | <td>More information is gathered (build id, steps to reproduce) and it is | ||
| 196 : | determined that the bug report is real. This state is referred to as "Open | ||
| 197 : | Bugs" and can best be described as bugs which are real but no one | ||
| 198 : | is currently working on.</td> | ||
| 199 : | </tr> | ||
| 200 : | <tr> | ||
| 201 : | <td>team member</td> | ||
| 202 : | <td>NEW/ASSIGNED</td> | ||
| 203 : | <td>Bug is assigned to team member to address or the team member takes an | ||
| 204 : | "Open" bug and assigns it to themselves.</td> | ||
| 205 : | </tr> | ||
| 206 : | <tr> | ||
| 207 : | <td>team member</td> | ||
| 208 : | <td>RESOLVED/FIXED</td> | ||
| 209 : | <td>Bug is fixed. Target milestone is added to report if none already exists.</td> | ||
| 210 : | </tr> | ||
| 211 : | </table> | ||
| 212 : | <p> </p> | ||
| 213 : | </blockquote> | ||
| 214 : | <h3>Component Breakdown</h3> | ||
| 215 : | <blockquote> | ||
| 216 : | <table width="86%" border="1"> | ||
| 217 : | <tr> | ||
| 218 : | <td width="15%"><div align="center"><strong>Product</strong></div></td> | ||
| 219 : | <td width="21%"><div align="center"><strong>Component</strong></div></td> | ||
| 220 : | <td width="64%"><div align="center"><strong>Note</strong></div></td> | ||
| 221 : | </tr> | ||
| 222 : | <tr> | ||
| 223 : | <td>Equinox</td> | ||
| 224 : | <td>General</td> | ||
| 225 : | <td>Bugs reports against the new runtime and the OSGi projects.</td> | ||
| 226 : | </tr> | ||
| 227 : | <tr> | ||
| 228 : | <td>Platform</td> | ||
| 229 : | <td>Core</td> | ||
| 230 : | <td>Bugs against the old runtime APIs (JobManager, IPath, etc) and the Workspace | ||
| 231 : | APIs.</td> | ||
| 232 : | </tr> | ||
| 233 : | <tr> | ||
| 234 : | <td>Platform</td> | ||
| 235 : | <td>WebDAV</td> | ||
| 236 : | <td>Bug reports against the <code>org.eclipse.webdav </code>project.</td> | ||
| 237 : | </tr> | ||
| 238 : | <tr> | ||
| 239 : | <td>PDE</td> | ||
| 240 : | <td>Build</td> | ||
| 241 : | <td>Bug reports against the <code>org.eclipse.pde.build </code>project.</td> | ||
| 242 : | </tr> | ||
| 243 : | </table> | ||
| 244 : | </blockquote> | ||
| 245 : | <p> </p></body></html> |
| help@eclipse.org | ViewVC Help |
| Powered by ViewVC 1.0.3 |
