xref: /aosp_15_r20/external/apache-commons-bcel/src/site/xdoc/index.xml (revision 0c56280ab0842982c46a149f7b9eaa497e31e292)
1*0c56280aSSorin Basca<?xml version="1.0"?>
2*0c56280aSSorin Basca<!--
3*0c56280aSSorin Basca    * Licensed to the Apache Software Foundation (ASF) under one
4*0c56280aSSorin Basca    * or more contributor license agreements.  See the NOTICE file
5*0c56280aSSorin Basca    * distributed with this work for additional information
6*0c56280aSSorin Basca    * regarding copyright ownership.  The ASF licenses this file
7*0c56280aSSorin Basca    * to you under the Apache License, Version 2.0 (the
8*0c56280aSSorin Basca    * "License"); you may not use this file except in compliance
9*0c56280aSSorin Basca    * with the License.  You may obtain a copy of the License at
10*0c56280aSSorin Basca    *
11*0c56280aSSorin Basca    *   http://www.apache.org/licenses/LICENSE-2.0
12*0c56280aSSorin Basca    *
13*0c56280aSSorin Basca    * Unless required by applicable law or agreed to in writing,
14*0c56280aSSorin Basca    * software distributed under the License is distributed on an
15*0c56280aSSorin Basca    * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*0c56280aSSorin Basca    * KIND, either express or implied.  See the License for the
17*0c56280aSSorin Basca    * specific language governing permissions and limitations
18*0c56280aSSorin Basca    * under the License.
19*0c56280aSSorin Basca-->
20*0c56280aSSorin Basca
21*0c56280aSSorin Basca<document>
22*0c56280aSSorin Basca  <properties>
23*0c56280aSSorin Basca    <title>Home</title>
24*0c56280aSSorin Basca    <author email="[email protected]">Commons Documentation Team</author>
25*0c56280aSSorin Basca  </properties>
26*0c56280aSSorin Basca  <body>
27*0c56280aSSorin Basca
28*0c56280aSSorin Basca    <section name="Commons BCEL">
29*0c56280aSSorin Basca      <p>
30*0c56280aSSorin Basca        The Byte Code Engineering Library (Apache Commons BCEL&#x2122;) is intended to give users a
31*0c56280aSSorin Basca        convenient way to analyze, create, and manipulate (binary)
32*0c56280aSSorin Basca        Java class files (those ending with .class). Classes are
33*0c56280aSSorin Basca        represented by objects which contain all the symbolic information
34*0c56280aSSorin Basca        of the given class: methods, fields and byte code instructions, in
35*0c56280aSSorin Basca        particular.
36*0c56280aSSorin Basca      </p>
37*0c56280aSSorin Basca
38*0c56280aSSorin Basca      <p>
39*0c56280aSSorin Basca        Such objects can be read from an existing file, be transformed
40*0c56280aSSorin Basca        by a program (e.g. a class loader at run-time) and written to a file again.
41*0c56280aSSorin Basca        An even more interesting application is the creation of classes from scratch
42*0c56280aSSorin Basca        at run-time. The Byte Code Engineering Library (BCEL) may be also useful
43*0c56280aSSorin Basca        if you want to learn about the Java Virtual Machine (JVM) and the format of
44*0c56280aSSorin Basca        Java .class files.
45*0c56280aSSorin Basca      </p>
46*0c56280aSSorin Basca
47*0c56280aSSorin Basca      <p>
48*0c56280aSSorin Basca        BCEL contains a byte code verifier named JustIce, which usually
49*0c56280aSSorin Basca        gives you much better information about what's wrong with your
50*0c56280aSSorin Basca        code than the standard JVM message.
51*0c56280aSSorin Basca      </p>
52*0c56280aSSorin Basca
53*0c56280aSSorin Basca      <p>
54*0c56280aSSorin Basca        BCEL is already being used successfully in several projects such
55*0c56280aSSorin Basca        as compilers, optimizers, obsfuscators, code generators
56*0c56280aSSorin Basca        and analysis tools. Unfortunately there hasn't been much development
57*0c56280aSSorin Basca        going on over the past few years. Feel free to help out or you
58*0c56280aSSorin Basca        might want to have a look into the ASM project at objectweb.
59*0c56280aSSorin Basca      </p>
60*0c56280aSSorin Basca    </section>
61*0c56280aSSorin Basca
62*0c56280aSSorin Basca    <section name="Documentation">
63*0c56280aSSorin Basca      <p>
64*0c56280aSSorin Basca        The package descriptions in the <a href="javadocs/api-release/index.html">Javadoc</a> give an overview of the available features
65*0c56280aSSorin Basca        and various <a href="project-reports.html">project reports</a> are provided.
66*0c56280aSSorin Basca      </p>
67*0c56280aSSorin Basca      <p>
68*0c56280aSSorin Basca        The Javadoc API documents are available online:
69*0c56280aSSorin Basca      </p>
70*0c56280aSSorin Basca      <ul>
71*0c56280aSSorin Basca        <li>The <a href="apidocs/index.html">current stable release</a></li>
72*0c56280aSSorin Basca      </ul>
73*0c56280aSSorin Basca      <p>
74*0c56280aSSorin Basca        The <a href="source-repository.html">svn repository</a> can be
75*0c56280aSSorin Basca        <a href="http://svn.apache.org/viewvc/commons/proper/bcel/trunk">browsed</a>, or you can browse/contribute via <a href="https://github.com/apache/commons-bcel">GitHub</a>.
76*0c56280aSSorin Basca      </p>
77*0c56280aSSorin Basca    </section>
78*0c56280aSSorin Basca    <!-- ================================================== -->
79*0c56280aSSorin Basca    <section name="Release Information">
80*0c56280aSSorin Basca      <p>The latest stable release of BCEL is here, you may: </p>
81*0c56280aSSorin Basca      <ul>
82*0c56280aSSorin Basca        <li><a href="https://commons.apache.org/proper/commons-bcel/download_bcel.cgi">Download</a></li>
83*0c56280aSSorin Basca	    <li>Read the <a href="https://www.apache.org/dist/commons/bcel/RELEASE-NOTES.txt">release notes</a></li>
84*0c56280aSSorin Basca        <li>Inspect the <a href="bcel5-bcel6-clirr-report.html">extended Clirr report</a> comparing 5.2 with 6.x</li>
85*0c56280aSSorin Basca      </ul>
86*0c56280aSSorin Basca      <p>
87*0c56280aSSorin Basca        Alternatively you can pull it from the central Maven repositories:
88*0c56280aSSorin Basca        <pre>
89*0c56280aSSorin Basca&lt;dependency&gt;
90*0c56280aSSorin Basca    &lt;groupId&gt;org.apache.bcel&lt;/groupId&gt;
91*0c56280aSSorin Basca    &lt;artifactId&gt;bcel&lt;/artifactId&gt;
92*0c56280aSSorin Basca    &lt;version&gt;6.3&lt;/version&gt;
93*0c56280aSSorin Basca&lt;/dependency&gt;
94*0c56280aSSorin Basca        </pre>
95*0c56280aSSorin Basca      </p>
96*0c56280aSSorin Basca
97*0c56280aSSorin Basca    </section>
98*0c56280aSSorin Basca    <!-- ================================================== -->
99*0c56280aSSorin Basca    <section name="Getting Involved">
100*0c56280aSSorin Basca      <p>
101*0c56280aSSorin Basca        The <a href="mail-lists.html">commons developer mailing list</a> is the main channel of communication for contributors. Please remember that the lists are shared between all commons components, so prefix your email by [bcel]. </p>
102*0c56280aSSorin Basca      <p>You can also visit the #apache-commons IRC channel on irc.freenode.net or peruse <a href="issue-tracking.html">JIRA</a>.</p>
103*0c56280aSSorin Basca      <p>Alternatively you can go through the <em>Needs Work</em> tags in the <a href="taglist.html">TagList report</a>.</p>
104*0c56280aSSorin Basca      <p>If you'd like to offer up pull requests via GitHub rather than applying patches to JIRA, we have a <a href="https://github.com/apache/commons-bcel/">GitHub mirror</a>. </p>
105*0c56280aSSorin Basca    </section>
106*0c56280aSSorin Basca  </body>
107*0c56280aSSorin Basca</document>
108