You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ke...@apache.org on 2006/12/19 21:55:45 UTC

svn commit: r488809 - in /geronimo/private: PROPOSAL.txt docs_nopublish/ docs_nopublish/JBoss_20031031.html

Author: kevan
Date: Tue Dec 19 12:55:45 2006
New Revision: 488809

URL: http://svn.apache.org/viewvc?view=rev&rev=488809
Log:
move old documents out of trunk into geronimo/private

Added:
    geronimo/private/PROPOSAL.txt   (with props)
    geronimo/private/docs_nopublish/
    geronimo/private/docs_nopublish/JBoss_20031031.html   (with props)

Added: geronimo/private/PROPOSAL.txt
URL: http://svn.apache.org/viewvc/geronimo/private/PROPOSAL.txt?view=auto&rev=488809
==============================================================================
--- geronimo/private/PROPOSAL.txt (added)
+++ geronimo/private/PROPOSAL.txt Tue Dec 19 12:55:45 2006
@@ -0,0 +1,210 @@
+#=====================================================================
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#  contributor license agreements.  See the NOTICE file distributed with
+#  this work for additional information regarding copyright ownership.
+#  The ASF licenses this file to You under the Apache License, Version 2.0
+#  (the "License"); you may not use this file except in compliance with
+#  the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#=====================================================================
+
+From: "Geir Magnusson Jr." <ge...@optonline.net>
+Date: Tue Aug 5, 2003  11:41:18 AM America/New_York
+To: general@incubator.apache.org
+Subject: [PROPOSAL]  An Apache J2EE server project
+Reply-To: general@incubator.apache.org
+
+Proposal for an Apache J2EE server project
+==========================================
+
+05 Aug 2003 : Geir Magnusson Jr., James Strachan and Richard Monson-Haefel
+
+Section 0 : Rationale
+---------------------
+
+The Java 2, Enterprise Edition (J2EE) platform is employed widely by
+organizations implementing enterprise applications. It is commonly used in
+business-to-consumer and most recently in Web service deployments.  Most of
+the largest business organizations today have deployed applications on a
+J2EE platform.
+
+While the J2EE specification is implemented by a number of large and small
+vendors, there is no open source J2EE container available with a BSD or
+BSD-derived licence nor is there an open source project today that provides
+a fully compliant implementation.  Verifiable compliance with the J2EE
+specification is important to business because it ensures that applications
+deployed by developers are portable and interoperable across J2EE providers.
+As a result organizations large and small have felt compelled to pay
+thousands of dollars to commercial vendors in order to deploy applications
+based on J2EE compliant servers.
+
+The Apache foundation supports several projects that implement pieces of the
+J2EE platform such as Servlets, JSP, Tag Libraries, and a Web services
+stack. However, Apache does not currently support a J2EE project.
+
+The aim of the project is to produce a large and healthy community of J2EE
+developers tasked with the development of an open source, certified J2EE
+server which is ASF licensed and passes Sun's TCK reusing the best ASF/BSD
+licensed code available today and adding new code to complete the J2EE
+stack.
+
+
+Section 0.1 : criteria
+----------------------
+
+We feel that this project has a good chance for success as the following
+project aspects are carefully considered :
+
+a) Meritocracy: The project will be meritocratic - the usual Apache
+meritocracy rules would apply.
+
+b) Community: The user community for this project is potentially massive.
+The initial developer community for this project consists of developers from
+Apache,  Castor, JBoss, mx4j, and OpenEJB projects. The aim is for this
+community to grow considerably once this project goes public.
+
+c) Core Developers: The initial developers are listed below and consist of
+some existing Apache committers together with committers from Castor,
+JBoss, mx4j  and OpenEJB.  We believe that as the project grows, the modular
+nature of the J2EE stack will require steady expansion of the committer
+group that is considered 'core' - thus providing a healthier, more robust
+developer community.
+
+d) Alignment: There is clear alignment with many existing Apache projects.
+From Jakarta projects such as Tomcat, James and log4j initially as well as
+possibly others along the way. J2EE now includes a web services stack and so
+there will be some alignment with the WS project, Axis in particular, along
+with the reuse of several XML projects. In addition the J2EE Server project
+may reuse other ASF/BSD licensed code which is not currently hosted in
+source form at Apache such as (at time of writing) mx4j, openjms and tyrex.
+
+However we see the J2EE Server project as a separate project to existing
+Apache projects, serving two primary roles
+
+* integration of various existing and new code bases into a J2EE stack,
+with those codebases existing both inside and outside of the project
+* certification of the J2EE stack
+
+Note that the J2EE server project can happily support competition within the
+J2EE services stack (for example, offering choices for elements such as the
+servlet engine like Tomcat or Jetty, or some new JTA implementation versus
+Tyrex or some new JMS implementation versus OpenJMS etc).
+
+
+Section 0.2 :  warning signs
+----------------------------
+We feel that this project has a good chance for success as the following
+warning signs do not apply to the project we are proposing :
+
+a) Orphaned products: This project is starting with a new code base together
+with reusing lots of the currently available high quality J2EE open source
+code out there which is ASF/BSD licensed.
+
+b) Inexperience with open source: The initial community is made up of
+existing Apache, Castor, JBoss, mx4j , and OpenEJB committers.
+
+c) Homogeneous developers: The current list of committers represents
+developers from various backgrounds and open source projects, employed by
+various companies and based around the globe in the US, Europe, Asia and
+Australia.  There will be no majority bloc, at least from the start.
+
+d) Reliance on salaried developers: None of the initial developers are
+currently paid to work on the J2EE project.
+
+e) No ties to other Apache products: The J2EE Server project is
+complementary to existing technologies at Apache. Indeed it will integrate
+many of those technologies in an effort to provide a code base that can be
+J2EE certified according to the JCP process.
+
+f) A fascination with the Apache brand: The committers are interested in
+developing a healthy open source community around an ASF/BSD licensed J2EE
+certified server, whether Apache is the right place or not.  The aspects of
+Apache that attract this effort are the experienced stewardship of open
+source projects by the ASF, the non-profit status of the ASF for TCK
+certification, and the existing Java community that has been a longstanding
+part of the ASF.
+
+
+Section 1 : scope of the project
+--------------------------------
+
+There are two main aspects to this Apache project :
+
+* a complete J2EE certified server which is fully ASF/BSD licensed and
+backed by a healthy open source community.
+
+* to create a fully modular J2EE stack so that the Apache community can use
+whichever parts of the J2EE stack they require separate from the J2EE server
+project.
+
+
+Section 2 : initial source from which the project is to be populated
+--------------------------------------------------------------------
+
+There are several potential initial contributions. Upon formation of the
+project our first action will be an open, public call for contribution and
+comment from the J2EE community.  Because of recent circumstances in the
+J2EE OSS community, all code proposed for inclusion must be publicly
+reviewed and open to public comment.
+
+
+Section 3: identify the ASF resources to be created
+----------------------------------------------------
+
+Section 3.1 : mailing lists
+
+* geronimo-dev
+* geronimo-user
+
+
+Section 3.2: CVS repositories
+
+* geronimo
+
+
+Section 3.3: Bugzilla
+
+* geronimo
+
+Though would there be an issue with using JIRA?
+
+
+Section 4: identify the initial set of committers
+-------------------------------------------------
+
+The committers are listed below, along with the open source project(s) where
+they also have commit privileges.
+
+* Bruce Snyder (Castor JDO)
+* Dain Sundstrom (JBoss)
+* David Blevins (OpenEJB)
+* David Jencks (JBoss)
+* Geir Magnusson Jr. (Apache)
+* Greg Wilkins (JBoss/Jetty)
+* James Strachan (Apache)
+* Jan Bartel (JBoss/Jetty)
+* Jason Dillon (JBoss)
+* Jeremy Boynes (JBoss)
+* Jim Jagielski (Apache)
+* Jules Golsnell (JBoss/Jetty)
+* Richard Monson-Haefel (OpenEJB)
+* Remigio Chirino  (JBoss)
+* Simone Bordet (mx4j)
+
+
+Section 5: identify apache sponsoring individual
+------------------------------------------------
+
+* Ceki Gülcü
+* Geir Magnusson Jr.
+* James Strachan
+* Jim Jagielski
+
+

Propchange: geronimo/private/PROPOSAL.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/private/PROPOSAL.txt
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/private/PROPOSAL.txt
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/private/docs_nopublish/JBoss_20031031.html
URL: http://svn.apache.org/viewvc/geronimo/private/docs_nopublish/JBoss_20031031.html?view=auto&rev=488809
==============================================================================
--- geronimo/private/docs_nopublish/JBoss_20031031.html (added)
+++ geronimo/private/docs_nopublish/JBoss_20031031.html Tue Dec 19 12:55:45 2006
@@ -0,0 +1,387 @@
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+  
+       http://www.apache.org/licenses/LICENSE-2.0
+  
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+  
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <meta content="text/html; charset=ISO-8859-1"
+ http-equiv="content-type">
+  <title>JBoss 20031031</title>
+</head>
+<body>
+<h3>Summary of Investigation</h3>
+This document summarizes the results of the investigation into the
+allegations of similarity between JBoss code and Geronimo
+code.&nbsp;&nbsp; The original allegations are detailed in the <a
+ href="http://incubator.apache.org/projects/geronimo/20031031_jboss.pdf">letter</a>
+dated October 31, 2003.<br>
+<br>
+This document attempts to describe and characterize the technical
+issues surrounding the allegations.&nbsp; This is not a formal response
+by the Apache Software Foundation.<br>
+<br>
+In the letter there are three named exhibits, A, B and C, and a fourth
+similarity that for the purposes of this discussion we will refer to as
+Assertion D.<br>
+<br>
+Specifically, the exhibits :<br>
+<ul>
+  <li>Exhibit A :&nbsp; The source file
+org.apache.geronimo.core.log.XLevel has a "very high degree of
+similarity" to
+org.jboss.logging.XLevel, and suggest that the Geronimo file is
+"derived from the JBoss file".<br>
+  </li>
+  <li>Exhibit B : The source file
+org.apache.geronimo.core.log.PatternParser "appears to be nearly
+identical" to
+org.jboss.logging.layout.PatternParserX<br>
+  </li>
+  <li>Exhibit C : The source file
+org.apache.geronimo.common.InvocationType is "nearly identical" to
+org.jboss.invocation.InvocationType.<br>
+  </li>
+  <li>"Assertion D", following Exhibit C : The source files
+org.jboss.invocation.Invocation
+and org.apache.geronimo.common.Invocation are similar.&nbsp; Further,
+the architectural concepts of "AsIs", "Transient" and "Marshalled" are
+present because of copying of the JBoss code,&nbsp; and that these
+concepts are central to the architecture of both JBoss and Geronimo.</li>
+</ul>
+<h3>Notes</h3>
+<ol>
+  <li>The source code for Apache Geronimo is accessible via CVS at <a
+ href="http://cvs.apache.org/viewcvs/incubator-geronimo/">http://cvs.apache.org/view.cvs/incubator-geronimo/</a>&nbsp;
+and all Geronimo code references are relative to this root.</li>
+  <li>The source code for JBoss is accessible via CVS at <a
+ href="http://cvs.sourceforge.net/viewcvs.py/jboss/jboss/src/main/">http://cvs.sourceforge.net/viewcvs.py/jboss/jboss/src/main/</a>
+and all JBoss code references are relative to this root.</li>
+  <li>The <a href="http://www.apache.org/licenses/LICENSE">Apache
+Software License</a> is a business-friendly license that allows others
+to take our software and use it as they please, as long as they respect
+the terms of our license.&nbsp; This will be important for Exhibits A
+and B - the license clearly states that <br>
+  </li>
+</ol>
+<div style="margin-left: 80px;">&nbsp;* 1. Redistributions of source
+code must retain the above copyright<br>
+&nbsp;*&nbsp;&nbsp;&nbsp; notice, this list of conditions and the
+following disclaimer.<br>
+</div>
+&nbsp; <br>
+<br>
+<h3>Summary for Exhibit A</h3>
+Exhibit A is concerned with similarity between <a
+ href="http://cvs.apache.org/viewcvs/incubator-geronimo/modules/core/src/java/org/apache/geronimo/core/log/Attic/XLevel.java">org.apache.geronimo.core.log.XLevel</a>
+and <a
+ href="http://cvs.sourceforge.net/viewcvs.py/jboss/jboss-common/src/main/org/jboss/logging/XLevel.java">org.jboss.logging.XLevel</a>
+rev 1.3.2.1.<br>
+<br>
+This issue has been <a href="http://www.qos.ch/logging/jboss.html">exhaustively
+researched</a> (http://www.qos.ch/logging/jboss.html) by the founder of
+the log4j project, Ceki G&uuml;lc&uuml;.&nbsp; His summary :<br>
+<br>
+<div style="margin-left: 40px;">"In summary, the source code
+incriminated by Exhibit A existed at the Apache Software Foundation at
+least 6 months before it made its first appearance at JBoss. Thus, in
+relation to this exhibit, I cannot see how JBoss LLC has any valid
+claims against the ASF for this particular code. In fact, it appears
+that by neglecting to attribute the code and follow the Apache License
+for this example, the violation of copyright would be the exact
+reverse. "<br>
+</div>
+<br>
+Ceki has traced back the history of the XLevel class, and thus we
+claim that the XLevel code originated at the ASF as part of the log4j
+project. Thus, we believe that Exhibit A is invalid due to the fact
+that the original source of the code in question is copyrighted by the
+ASF. <br>
+<br>
+<h3>Summary for Exhibit B</h3>
+Exhibit B in concerned with similarity between <a
+ href="http://cvs.apache.org/viewcvs/incubator-geronimo/modules/core/src/java/org/apache/geronimo/core/log/Attic/PatternParser.java?rev=1.1&amp;content-type=text/vnd.viewcvs-markup">org.apache.geronimo.core.log.PatternParser</a>
+and&nbsp; <a
+ href="http://cvs.sourceforge.net/viewcvs.py/jboss/jboss-common/src/main/org/jboss/logging/layout/PatternParserEx.java?rev=1.1.2.1&amp;view=markup">org.jboss.logging.layout.PatternParserEx</a><br>
+<br>
+According to the same research for Exhibit A by Ceki G&uuml;lc&uuml; :<br>
+<br>
+<div style="margin-left: 40px;">"The PatternParserEx class, cited in
+Mr. David J. Byer's letter to the ASF, very closely follows the pattern
+established MyPatternParser and AppServerPatternParser classes. The
+earliest record of this class in JBoss source code repository dates to
+September 15th, 2002. Unless JBoss LLC claims that PatternParserEx
+predates MyPatternParser or AppServerPatternParser classes found in
+log4j, it looks like the JBoss LLC removed the existing Apache
+copyright when it based PatternParserEx class on modified versions of
+MyPatternParser and AppServerPatternParser. This is prohibited by the
+first clause of the Apache Software License.<br>
+</div>
+<br>
+We believe that the claims in Exhibit B are invalid owing to the fact
+that the code in
+question was based on code in the Apache log4j codebase.<br>
+<h3>Summary for Exhibit C</h3>
+Exhibit C is concerned with the similarity between
+org.apache.geronimo.common.InvocationType and
+org.jboss.invocation.InvocationType.&nbsp; The following summary is
+based on discussion from the geronimo-dev list.<br>
+<br>
+The initial version of org.jboss.invocation.InvocationType in the JBoss
+CVS repository can be found at the following location:<br>
+<br>
+<a
+ href="http://cvs.sourceforge.net/viewcvs.py/jboss/jboss/src/main/org/jboss/invocation/InvocationType.java?rev=1.1&amp;view=markup">http://cvs.sourceforge.net/viewcvs.py/jboss/jboss/src/main/org/jboss/invocation/InvocationType.java?rev=1.1&amp;view=markup</a><br>
+<br>
+This contains a very similar code excerpt to that cited in the letter
+from JBoss Group LLC:<br>
+<br>
+&nbsp;&nbsp; public static final InvocationType REMOTE =<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new
+InvocationType("REMOTE");<br>
+&nbsp;&nbsp; public static final InvocationType LOCAL =<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new
+InvocationType("LOCAL");<br>
+&nbsp;&nbsp; public static final InvocationType HOME =<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new
+InvocationType("HOME");<br>
+&nbsp;&nbsp; public static final InvocationType LOCALHOME =<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new
+InvocationType("LOCALHOME");<br>
+<br>
+This code was contributed to the JBoss project by dsundstrom (Dain
+Sundstrom) on 7/14/2002. As the original copyright holder, Dain would
+be free to contribute this code to Geronimo as well.<br>
+<br>
+The JBoss version of this code was modified exclusively by dsundstrom
+up to and including the 1.3 revision (dated 10/30/2002) in the JBoss
+CVS, where the code had evolved to the following:<br>
+<br>
+&nbsp;&nbsp; public static final InvocationType REMOTE =<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new
+InvocationType("REMOTE", false, false);<br>
+&nbsp;&nbsp; public static final InvocationType LOCAL =<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new
+InvocationType("LOCAL", false, true);<br>
+&nbsp;&nbsp; public static final InvocationType HOME =<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new
+InvocationType("HOME", true, false);<br>
+&nbsp;&nbsp; public static final InvocationType LOCALHOME =<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new
+InvocationType("LOCALHOME", true, true);<br>
+<br>
+<br>
+Dain had the right to contribute to Geronimo the code up to (but not
+including) the changes made by Scott or anyone else<br>
+<br>
+Dain's last rev is<br>
+<br>
+<a
+ href="http://cvs.sourceforge.net/viewcvs.py/*checkout*/jboss/jboss/src/main/org/jboss/invocation/InvocationType.java?content-type=text%2Fplain&amp;rev=1.3">http://cvs.sourceforge.net/viewcvs.py/*checkout*/jboss/jboss/src/main/org/jboss/invocation/InvocationType.java?content-type=text%2Fplain&amp;rev=1.3</a><br>
+<br>
+The latest rev in JBoss is v 1.5, so we need to figure out what
+happened between v1.3, which Dain had the right to contribute to the ASF<br>
+<br>
+JBoss 1.3 :<br>
+&nbsp;&nbsp;&nbsp; committed by Dain, for which he has the rights to
+contribute and re-license here in Geronimo under the ASL<br>
+<br>
+JBoss v1.3 -&gt; v1.4 :<br>
+&nbsp;&nbsp;&nbsp; a) Switched from using a static int to a final
+static int as the max value for the InvocationType array.&nbsp; We see
+the same in the Geronimo code. This is common, accepted practice for
+creating constants in Java, and would be suggested by any code
+inspector (like Idea or Eclipse).&nbsp; In my opinion, Dain should have
+his hand slapped for not doing it this way in the first place.<br>
+&nbsp;&nbsp;&nbsp; b) Switched to a statically allocated array []
+rather than an ArrayList for holding the invocationType objects.&nbsp;
+This change is in the Geronimo code.<br>
+&nbsp;&nbsp;&nbsp; c) Changed the signature of the InvocationType from
+the Dain way (new InvocationType("LOCAL", false, true)) that is in
+Geronimo now, to a different way ( new InvocationType("HOME",
+2)).&nbsp; Clearly the Geronimo code didn't copy this change.<br>
+&nbsp;&nbsp;&nbsp; d) Removed&nbsp; two booleans isLocal and isHome,
+present in the Dain-contributed 1.3.&nbsp; These variables persist in
+the Geronimo version as local and home.&nbsp; This change was not
+adopted by Dain for Geronimo.<br>
+<br>
+Jboss v1.4 -&gt; v1.5 :<br>
+&nbsp;&nbsp; Added a new invocation type 'SERVICE_ENDPOINT', which is
+not present in the Geronimo code.&nbsp; I conclude that any changes
+between v1.4 and 1.5 of the JBoss code were not co-opted into the
+geronimo codebase.<br>
+<br>
+<br>
+Here's my conclusion.&nbsp; I would appreciate commentary :<br>
+<br>
+Conclusion<br>
+==========<br>
+<br>
+Dain contributed the same code to Geronimo that he contributed to JBoss.<br>
+<br>
+The only difference between his JBoss contributions, for which he has
+complete rights to contribute and relicense elsewhere, is that he
+changed the Geronimo implementation to use an array of rather than an
+ArrayList to hold the InvocationType objects, and a static final int
+'constant' to keep the size of that array rather than a static int
+field.<br>
+<br>
+<h3>Summary of Assertion D</h3>
+Assertion D is concerned with the similarity between
+org.apache.geronimo.common.Invocation and
+org.jboss.invocation.Invocation.&nbsp; Further, the claim is that both
+files contain "AsIs", "Transient" and "Marshalled", which are believed
+to be JBoss-specific payloads, and thus could only be there via
+copying. Further, the Invocation file is central to the JBoss
+architecture, and thus copying could have great impact throughout
+Geronimo.<br>
+<br>
+The file org.apache.geronimo.core.service.Invocation currently is a
+riff on java.util.Map, namely :<br>
+<br>
+public interface Invocation {<br>
+<br>
+&nbsp;&nbsp;&nbsp; Object get(InvocationKey key);<br>
+&nbsp;&nbsp;&nbsp; void put(InvocationKey key, Object value);<br>
+}<br>
+<br>
+Clearly this can't be what the lawyers are talking about.&nbsp;
+However, it used to be, when the code first placed into Geronimo,
+slightly different :<br>
+<br>
+<a
+ href="http://cvs.apache.org/viewcvs/incubator-geronimo/modules/core/src/java/org/apache/geronimo/common/Attic/Invocation.java?rev=1.1&amp;content-type=text/vnd.viewcvs-markup">http://cvs.apache.org/viewcvs/incubator-geronimo/modules/core/src/java/org/apache/geronimo/common/Attic/Invocation.java?rev=1.1&amp;content-type=text/vnd.viewcvs-markup</a><br>
+<br>
+public interface Invocation {<br>
+&nbsp;&nbsp;&nbsp; Object getMarshal(Object key);<br>
+<br>
+&nbsp;&nbsp;&nbsp; void putMarshal(Object key, Object value);<br>
+<br>
+&nbsp;&nbsp;&nbsp; Object getAsIs(Object key);<br>
+<br>
+&nbsp;&nbsp;&nbsp; void putAsIs(Object key, Object value);<br>
+<br>
+&nbsp;&nbsp;&nbsp; Object getTransient(Object key);<br>
+<br>
+&nbsp;&nbsp;&nbsp; void putTransient(Object key, Object value);<br>
+}<br>
+<br>
+This is still an interface, but dealing with the three notions of
+'Marshal', 'AsIs', and 'Transient'.&nbsp; This is what the JBoss Group
+LLCs lawyers are referring to.&nbsp; Now, looking at the Invocation
+class in JBoss, and looking at the version in their CVS at the time of
+the import into Geronimo, 1.10.2.6, there is an implementation of the
+same notion in a method - following snipped out for brevity :<br>
+<br>
+/**<br>
+&nbsp;&nbsp;&nbsp; * Advanced store<br>
+&nbsp;&nbsp;&nbsp; * Here you can pass a TYPE that indicates where to
+put the value.<br>
+&nbsp;&nbsp;&nbsp; * TRANSIENT: the value is put in a map that WON'T be
+passed<br>
+&nbsp;&nbsp;&nbsp; * AS_IS: no need to marshall the value when passed
+(use for all JDK<br>
+&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp; java types)<br>
+&nbsp;&nbsp;&nbsp; * PAYLOAD: we need to marshall the value as its type
+is application specific<br>
+&nbsp;&nbsp;&nbsp; */<br>
+&nbsp;&nbsp; public void setValue(Object key, Object value, PayloadKey
+type)<br>
+&nbsp;&nbsp; {<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(type == PayloadKey.TRANSIENT)<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+transient_payload.put(key,value);<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if(type == PayloadKey.AS_IS)<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+as_is_payload.put(key,value);<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if(type == PayloadKey.PAYLOAD)<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+payload.put(key,value);<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new
+IllegalArgumentException("Unknown PayloadKey: " + type);<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
+&nbsp;&nbsp; }<br>
+<br>
+It appears that this is a storage class for moving bits through their
+invocation/interceptor mechanism, and that they are doing what appears
+to be an early optimization by having the caller define via the keytype
+if a) the data doesn't need to be marshalled as it's staying put on
+this side of the wire (TRANSIENT), b) the data doesn't need to have any
+special care and feeding as it's a JDK data type (ASIS), or c) it will
+need to be marshalled (PAYLOAD).<br>
+<br>
+So it's clear to me that the code originally in Geronimo (and now in
+the Attic) implemented this *idea* in their interface, moving it
+outside of the Invocation implementation and into the interface.&nbsp;
+This is an implementation of the idea.<br>
+<br>
+Now, I guess we have to come back to the code as it exists today in the
+o.a.g.core.service package.&nbsp; Repeating for Invocation.java, it is
+now much simpler - the Geronimo developers got rid of the 'Asis',
+'Marshal' and 'Transient' 'modifiers' on the methods and reduced it to<br>
+<br>
+public interface Invocation {<br>
+<br>
+&nbsp;&nbsp;&nbsp; Object get(InvocationKey key);<br>
+&nbsp;&nbsp;&nbsp; void put(InvocationKey key, Object value);<br>
+}<br>
+<br>
+where<br>
+<br>
+public interface InvocationKey {<br>
+<br>
+&nbsp;&nbsp;&nbsp; boolean isTransient();<br>
+}<br>
+<br>
+so now the idea of declaring something as not going over the wire (my
+assumption) is taken care of in the key itself into this map, letting
+(I assume again) the endpoint doing the serialization decide if the
+element in the map needs to go based on the isTransient() method, and
+how marshalled based on the class. <br>
+<br>
+Summary so far : the original code had an expression of the idea of
+'Marshall', 'AsIs' and 'Transient'.&nbsp; Most of the idea was
+dropped.&nbsp; All that remains of the idea is letting the caller
+declare the data as transient.<br>
+<br>
+While the JBoss lawyers assert that "the Invocation file is central to
+the architecture of both JBoss and Geronimo", we believe that this
+claim is invalid&nbsp; because if this notion of AsIs,
+Transient and Marshalled was 'central to the architecture', it couldn't
+be dropped to the degree that the Geronimo developers did.&nbsp; IOW,
+the notions of AsIs and Marshalled are NOT central to the architecture
+at all - they don't exist anymore.&nbsp; So to summarize :<br>
+<br>
+1) The original code in Geronimo (w/ getAsIs()) is not a copy of JBoss
+code&nbsp; - it's a different implementation of an idea in the JBoss
+implementation.<br>
+<br>
+2) The current code has thrown out all but the idea that the user of an
+Invocation implementation declare that data placed into that
+implementation is transient.<br>
+<br>
+<br>
+</body>
+</html>

Propchange: geronimo/private/docs_nopublish/JBoss_20031031.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/private/docs_nopublish/JBoss_20031031.html
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/private/docs_nopublish/JBoss_20031031.html
------------------------------------------------------------------------------
    svn:mime-type = text/html