Return-Path: Delivered-To: apmail-incubator-harmony-dev-archive@www.apache.org Received: (qmail 9077 invoked from network); 12 Jul 2006 04:49:40 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 12 Jul 2006 04:49:40 -0000 Received: (qmail 87534 invoked by uid 500); 12 Jul 2006 04:49:33 -0000 Delivered-To: apmail-incubator-harmony-dev-archive@incubator.apache.org Received: (qmail 87491 invoked by uid 500); 12 Jul 2006 04:49:33 -0000 Mailing-List: contact harmony-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: harmony-dev@incubator.apache.org Delivered-To: mailing list harmony-dev@incubator.apache.org Received: (qmail 87480 invoked by uid 99); 12 Jul 2006 04:49:33 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Jul 2006 21:49:33 -0700 X-ASF-Spam-Status: No, hits=0.9 required=10.0 tests=DNS_FROM_RFC_WHOIS,HTML_MESSAGE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: domain of nbeyer@kc.rr.com designates 24.94.166.115 as permitted sender) Received: from [24.94.166.115] (HELO ms-smtp-01.rdc-kc.rr.com) (24.94.166.115) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Jul 2006 21:49:31 -0700 Received: from LITTLEGUY (CPE-24-31-248-236.kc.res.rr.com [24.31.248.236]) by ms-smtp-01.rdc-kc.rr.com (8.13.6/8.13.6) with ESMTP id k6C4n3Rl011898 for ; Tue, 11 Jul 2006 23:49:08 -0500 (CDT) From: "Nathan Beyer" To: Subject: [classlib][concurrent] java.util.concurrent module proposal Date: Tue, 11 Jul 2006 23:48:47 -0500 Message-ID: <005401c6a56e$79234ce0$0c01a8c0@LITTLEGUY> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0055_01C6A544.904D44E0" X-Mailer: Microsoft Office Outlook 11 X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2900.2869 Thread-index: AcalbnYlGSe4tJ/3T8e8XJPA2SHQgw== X-Virus-Scanned: Symantec AntiVirus Scan Engine X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N ------=_NextPart_000_0055_01C6A544.904D44E0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit I've checked in my proposal for the java.util.concurrent module at https://svn.apache.org/repos/asf/incubator/harmony/enhanced/classlib/trunk/s andbox/juc-proposal. The README gives a high level overview of the content. I've generated some documentation and published it here for easier browsing: http://people.apache.org/~ndbeyer/concurrent/project-reports.html. Design - Most of the code is straight from Doug Lea and the JSR group. The only piece I've added are the service interfaces that the VM must implement and I've uplifted the original code, where necessary to utilize these VM service interfaces. org.apache.harmony.concurrent.AtomicSupport [1] - The service interface for 'java.util.concurrent.atomic' features such as CAS (compare and swap) and volatile read/writes. org.apache.harmony.concurrent.LocksSupport [2] - The service interface for 'java.util.concurrent.locks' support. This is similar to the java.util.concurrent.locks.LockSupport contract. These service interfaces would need to be implemented by a VM provider and their implementations are registered using Service Provider configuration files, as defined by the JAR specification [3]. The rationale for the design of the support classes was to preserve as much of the original code as possible, so as to facilitate future maintenance and isolate the external variability with well-defined service contracts. If you wan to see what source code changed, then extract the 'concurrent.tar.gz' and compare the 'concurrent' folder from there to the 'concurrent/src/main/java/java/util/concurrent' folder. TODOs - * Implement the service interfaces by a VM!! * Setup the build scripts (trivial) - currently there's a 'pom.xml' that's in the project, which can be used with Maven to run a build and generate documentation (mvn package site). It was just quicker for me to do this while I as hacking. * Consider and possible implement base/default service providers for win32 and linux that VMs can use if they like. * Determine the best place to integrate the TCK source, which is also available at Doug Lea's site. * There are a LOT of changes, fixes and enhancements to the code at Doug Lea's site; consider what code we should additional take. Let the discussions begin. -Nathan [1] http://people.apache.org/~ndbeyer/concurrent/apidocs/org/apache/harmony/conc urrent/AtomicSupport.html [2] http://people.apache.org/~ndbeyer/concurrent/apidocs/org/apache/harmony/conc urrent/LocksSupport.html [3] http://java.sun.com/j2se/1.5.0/docs/guide/jar/jar.html#Service%20Provider ------=_NextPart_000_0055_01C6A544.904D44E0--