You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ak...@apache.org on 2004/03/15 23:34:30 UTC
svn commit: rev 9498 - in incubator/directory/snickers/branches/refactoring: . src src/docbook src/images xdocs xdocs/ber-codec xdocs/stub-compiler
Author: akarasulu
Date: Mon Mar 15 14:34:30 2004
New Revision: 9498
Added:
incubator/directory/snickers/branches/refactoring/maven.xml
incubator/directory/snickers/branches/refactoring/project.properties
incubator/directory/snickers/branches/refactoring/src/
incubator/directory/snickers/branches/refactoring/src/docbook/
incubator/directory/snickers/branches/refactoring/src/images/
incubator/directory/snickers/branches/refactoring/xdocs/
incubator/directory/snickers/branches/refactoring/xdocs/ber-codec/
incubator/directory/snickers/branches/refactoring/xdocs/index.xml
incubator/directory/snickers/branches/refactoring/xdocs/navigation.xml
incubator/directory/snickers/branches/refactoring/xdocs/stub-compiler/
Modified:
incubator/directory/snickers/branches/refactoring/project.xml
Log:
o Basically broke down the BERDecoder into separate stateful decoders which
are used by the BERDecoder when it switches its state from reading a tag,
length and on to a value. The code is much easier to handle and several
old bugs are no longer present. The decoder overall works like a champion.
o Clover shows green all over and the code has been cleaned up along with
internal documentation - javadocs.
o Added equals comparison functionality to TLV TupleNodes.
We're ready to merge back this code now to the main trunk.
Added: incubator/directory/snickers/branches/refactoring/maven.xml
==============================================================================
--- (empty file)
+++ incubator/directory/snickers/branches/refactoring/maven.xml Mon Mar 15 14:34:30 2004
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<project
+ default="buildall"
+ xmlns:j="jelly:core"
+ xmlns:u="jelly:util"
+ xmlns:ant="jelly:ant"
+ xmlns:maven="jelly:maven"
+ xmlns:m="maven"
+ xmlns:deploy="deploy"
+ >
+
+ <preGoal name="site">
+ <attainGoal name="docbook:transform"/>
+ </preGoal>
+
+ <postGoal name="site">
+ <attainGoal name="server:copy-images"/>
+ <attainGoal name="subproject:collectdocs"/>
+ </postGoal>
+
+ <goal name="subproject:collectdocs">
+ <ant:copy
+ toDir="../../sitedocs/trunk/sitedocs/target/docs/subprojects/snickers">
+
+ <ant:fileSet dir="${basedir}/target/docs">
+ <ant:include name="**"/>
+ </ant:fileSet>
+ </ant:copy>
+ </goal>
+
+ <goal name="server:copy-images">
+ <copy toDir="target/docs/images">
+ <fileSet dir="${basedir}/src/images">
+ <include name="*.gif"/>
+ </fileSet>
+ </copy>
+ </goal>
+
+ <goal name="buildall" description="Build All Jar Files And Intall">
+ <ant:delete dir="${basedir}/target/classes"/>
+ <maven:reactor basedir="${basedir}" postProcessing="true"
+ includes="**/project.xml" excludes="./project.xml" goals="jar:install"
+ banner="Building" ignoreFailures="false"/>
+ </goal>
+
+ <goal name="deployall" description="Deploy All Jar Files And Intall">
+ <maven:reactor basedir="${basedir}" postProcessing="true"
+ includes="**/project.xml" excludes="./project.xml" goals="jar:deploy"
+ banner="Deploying" ignoreFailures="false"/>
+ </goal>
+
+ <goal name="sitedocs" description="Builds the entire site documentation">
+ <maven:reactor basedir="${basedir}" postProcessing="true"
+ includes="**/project.xml" excludes="./project.xml" goals="site"
+ banner="site" ignoreFailures="false"/>
+ </goal>
+
+ <goal name="clean-all" description="Clean all sandbox projects">
+ <maven:reactor basedir="${basedir}" postProcessing="true"
+ includes="**/project.xml" excludes="./project.xml" goals="cleanall"
+ banner="Clean All"
+ ignoreFailures="true"/>
+ <attainGoal name="clean"/>
+ <delete dir="home"/>
+ </goal>
+
+ <goal name="eclipseall"
+ description="Generate eclipse descriptors for all projects">
+ <maven:reactor basedir="${basedir}" postProcessing="true"
+ includes="*/project.xml" goals="clean" banner="Clean All"
+ ignoreFailures="true"/>
+ </goal>
+
+ <goal name="eclipse-all" description="Create all eclipse projects">
+ <maven:reactor basedir="${basedir}" postProcessing="true"
+ includes="*/project.xml" goals="eclipse" banner="Eclipse Project"
+ ignoreFailures="true"/>
+ </goal>
+
+ <!-- ========================================================================
+ Experimentation section starts here!
+ ======================================================================= -->
+
+ <goal name="components">
+ <j:import inherit="true" uri="components.xml"/>
+ </goal>
+
+</project>
Added: incubator/directory/snickers/branches/refactoring/project.properties
==============================================================================
--- (empty file)
+++ incubator/directory/snickers/branches/refactoring/project.properties Mon Mar 15 14:34:30 2004
@@ -0,0 +1,23 @@
+maven.javadoc.private=true
+maven.javadoc.customtags=tag1 tag2
+
+tag1.name=todo
+tag1.description=To Do:
+tag1.enabled=true
+tag1.scope=all
+
+tag2.name=task
+tag2.description=Task:
+tag2.enabled=false
+tag2.scope=all
+
+maven.license.licenseFile=../../../LICENSE.txt
+#maven.clover.instrument.tests=true
+maven.junit.fork=true
+maven.changelog.factory=org.apache.maven.svnlib.SvnChangeLogFactory
+maven.license.licenseFile=../../../LICENSE.txt
+maven.xdoc.date=left
+maven.ui.banner.background=#FFFFFF
+maven.xdoc.includeProjectDocumentation=no
+maven.xdoc.poweredby.image=
+maven.xdoc.jsl = file:/${basedir}/../../../sitedocs/trunk/sitedocs/src/etc/site.jsl
Modified: incubator/directory/snickers/branches/refactoring/project.xml
==============================================================================
--- incubator/directory/snickers/branches/refactoring/project.xml (original)
+++ incubator/directory/snickers/branches/refactoring/project.xml Mon Mar 15 14:34:30 2004
@@ -1,17 +1,26 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<project>
- <groupId>directory</groupId>
- <id>snickers</id>
+ <groupId>incubator-directory</groupId>
<name>Snickers ASN.1 Tools</name>
<package>org.apache.snickers</package>
+ <organization>
+ <name>The Apache Incubator</name>
+ <url>http://incubator.apache.org</url>
+ <logo>/images/apache-incubator-logo.png</logo>
+ </organization>
+
<inceptionYear>2003</inceptionYear>
- <url>http://directory.apache.org/snickers</url>
+ <package>org.apache.eve</package>
+
+ <logo>/images/apache-directory-logo.png</logo>
+ <url>http://incubator.apache.org/directory</url>
+
<issueTrackingUrl>
- http://nagoya.apache.org/scarab/servlet/scarab
+ http://nagoya.apache.org/jira/secure/BrowseProject.jspa?id=10400
</issueTrackingUrl>
- <siteAddress>directory.apache.org</siteAddress>
+ <siteAddress>incubator.apache.org</siteAddress>
<siteDirectory>/home/akarasulu/public_html</siteDirectory>
<distributionDirectory>
/home/akarasulu/public_html/dist
@@ -19,15 +28,15 @@
<repository>
<connection>
- scm:svn:http://cvs.apache.org/repos/asf/incubator/directory/snickers/trunk
+ scm:svn:http://cvs.apache.org/repos/asf/incubator/directory/snickers/trunk/${module.path}
</connection>
<url>
- http://cvs.apache.org/viewcvs.cgi/incubator/directory/snickers/trunk?root=Apache-SVN
+ http://cvs.apache.org/viewcvs.cgi/incubator/directory/snickers/trunk/${module.path}/?root=Apache-SVN
</url>
<developerConnection>
- http://cvs.apache.org/repos/asf/incubator/directory/snickers/trunk
+ http://cvs.apache.org/repos/asf/incubator/directory/snickers/trunk/${module.path}
</developerConnection>
</repository>
@@ -119,9 +128,9 @@
<licenses>
<license>
- <name>Apache 1.1 License</name>
+ <name>Apache 2.0 License</name>
<url>
-http://cvs.apache.org/viewcvs.cgi/incubator/directory/LICENSE.txt?rev=1369&root=Apache-SVN&view=markup
+ http://cvs.apache.org/viewcvs.cgi/incubator/directory/LICENSE.txt?rev=1369&root=Apache-SVN&view=markup
</url>
<distribution>repo</distribution>
</license>
Added: incubator/directory/snickers/branches/refactoring/xdocs/index.xml
==============================================================================
--- (empty file)
+++ incubator/directory/snickers/branches/refactoring/xdocs/index.xml Mon Mar 15 14:34:30 2004
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document>
+ <properties>
+ <author email="akarasulu@apache.org">Alex Karasulu</author>
+ <title>Snickers Subproject</title>
+ </properties>
+
+ <body>
+ <section name="Introduction">
+ <p>
+ While writing a SEDA based LDAP server in Java using NIO selectable
+ channels it occurred to us that blocking until a full message is
+ decoded was a big waste. It undermines the benefits of using selectors,
+ uses extra threads and requires much more memory. Actually if we have
+ to collect all of a message before we can decode it with a blocking
+ decoder then we're in trouble. A little over twice the memory footprint
+ of each message must be used to decode BER encoded PDUs. Similar yet
+ different inefficiencies exist with the other direction as well.
+ </p>
+
+ <p>
+ Looking at the ASN.1 landscape there really aren't that many free open
+ source ASN.1 BER codecs out there written for Java. Actually there are
+ none with our performance requirements. So we started to build one
+ while weaning ourselves off of Snacc4J which was mysteriously removed
+ from the Open Source world by IBM.
+ </p>
+
+ <p>
+ Snickers hence is a high performance replacement optimized for use with
+ selectable channels and non blocking IO. It is composed of several
+ runtime APIs and will eventually provide tools to generate Java stubs
+ for various ASN.1 type definitions. In a sense Snickers is a Snacc4J
+ replacement with a lot more to keep ASN.1 based server implementors
+ satisfied.
+ </p>
+ </section>
+
+ <section name="Overview">
+ <p>
+ There are a few sub subprojects associated with snickers. Some have
+ yet to begin and others may exist in a form that satisfies up until now
+ the needs of the Eve directory server. As time passes these holes will
+ be filled in.
+ </p>
+
+ <table>
+ <tr><th>Subproject</th><th>Description</th></tr>
+
+ <tr>
+ <td><a href="ber-codec/index.html">BER Codec</a></td>
+ <td>
+ ASN.1 data structures are encoded onto and decoded off of the wire
+ using these codecs. They deal with simple Tag Value Length or TLV
+ tuples which is the lowest means to interpret BER encoded data.
+ Other more complex codec implementations are also present within
+ this project. They build on top of the simple BER/TLV codecs to
+ decode and populate Java ASN.1 stubs or encode and serialize them
+ onto BER streams.
+ </td>
+ </tr>
+
+ <tr>
+ <td><a href="stub-compiler/index.html">Java Stub Compiler</a></td>
+ <td>
+ Java interfaces and implementations are generated to represent
+ complex ASN.1 data types according to an ASN.1 specification for
+ the datatype. Factory classes for each data type are also generated
+ as peer classes to encode and decode entire interfaces. The
+ Snickers BER Codec runtime uses these factories, and interfaces to
+ encode and decode protocol data types on the wire. As a matter of
+ fact these factories really are designed as higher level Stateful
+ decoder's and encoders.
+ </td>
+ </tr>
+ </table>
+ </section>
+ </body>
+</document>
Added: incubator/directory/snickers/branches/refactoring/xdocs/navigation.xml
==============================================================================
--- (empty file)
+++ incubator/directory/snickers/branches/refactoring/xdocs/navigation.xml Mon Mar 15 14:34:30 2004
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project>
+
+ <title>Apache Directory Project</title>
+
+ <body>
+
+ <links>
+ <item name="Apache" href="http://apache.org/"/>
+ <item name="Directory" href="/index.html"/>
+ <item name="Eve" href="/subprojects/eve/index.html"/>
+ <item name="LDAP" href="/subprojects/ldap/index.html"/>
+ <item name="Naming" href="/subprojects/naming/index.html"/>
+ <item name="Janus" href="/subprojects/janus/index.html"/>
+ <item name="Snickers" href="/subprojects/snickers/index.html"/>
+ <item name="Sitedocs" href="/subprojects/sitedocs/index.html"/>
+ </links>
+
+ <menu name="About Directory">
+ <item name="Overview" href="/index.html"/>
+ <item name="Community" href="/community/index.html"/>
+ <item name="Latest News" href="/news.html"/>
+ <item name="Subprojects" href="/subprojects/index.html">
+ <item name="Eve" href="/subprojects/eve/index.html"/>
+ <item name="LDAP" href="/subprojects/ldap/index.html"/>
+ <item name="Janus" href="/subprojects/janus/index.html"/>
+ <item name="Naming" href="/subprojects/naming/index.html"/>
+ <item name="Snickers" href="/subprojects/snickers/index.html"/>
+ <item name="Sitedocs" href="/subprojects/sitedocs/index.html"/>
+ </item>
+ <item name="Documentation" href="/doc/index.html"/>
+ </menu>
+
+ <menu name="Resources">
+ <item name="IRC" href="/irc.html"/>
+ <item name="Jira" href=
+ "http://nagoya.apache.org/jira/secure/BrowseProject.jspa?id=10400"/>
+ <item name="Wiki" href="http://wiki.apache.org/directory"/>
+ <item name="Lists" href="/mailing-lists.html"/>
+ <item name="License" href="/license.html"/>
+ <item name="Sandbox" href="/sandbox/index.html"/>
+ <item name="Downloads" href="/download.cgi"/>
+ <item name="Subversion" href="/svn.html"/>
+ <item name="Related Projects" href="/related/index.html"/>
+ </menu>
+ </body>
+
+</project>