Hi Tim,

Fixed by your revision 417397 change. Looks like I just chose a bad time to update from the repository.

Thanks,
George



George Harley wrote:
Hi Tim,

I have started to see test errors in my local Windows XP sandbox since this commit. In particular there are three tests in the new org.apache.harmony.tests.nio.AddressUtilTest class that throw java.lang.UnsatisfiedLinkError on account of not being able to locate the native implementation of AddressUtil.getFDAddress(FileDescriptor).

Will look at this a bit closer now - maybe it's a screw up in my environment - but thought you should know sooner rather than...

Best regards,
George



[EMAIL PROTECTED] wrote:
Author: tellison
Date: Tue Jun 27 02:28:15 2006
New Revision: 417385

URL: http://svn.apache.org/viewvc?rev=417385&view=rev
Log:
Apply patch HARMONY-578 ([classlib][nio] NIO should provide some utility classes for the JNI 1.4 enhancement)

Added:
incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/org/apache/harmony/nio/AddressUtil.java (with props) incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/linux/ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/linux/libhynio.exp incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/linux/makefile incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/shared/ (with props) incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/shared/AddressUtil.c (with props) incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/shared/AddressUtil.h incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/shared/DirectBufferUtil.c (with props) incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/windows/ (with props) incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/windows/hynio.def incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/windows/hynio.rc incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/windows/makefile incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/nio/AddressUtilTest.java (with props)
Modified:
    incubator/harmony/enhanced/classlib/trunk/modules/nio/build.xml
incubator/harmony/enhanced/classlib/trunk/modules/nio/make/hyproperties.xml incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/org/apache/harmony/nio/internal/FileChannelImpl.java

Modified: incubator/harmony/enhanced/classlib/trunk/modules/nio/build.xml URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/nio/build.xml?rev=417385&r1=417384&r2=417385&view=diff ============================================================================== --- incubator/harmony/enhanced/classlib/trunk/modules/nio/build.xml (original) +++ incubator/harmony/enhanced/classlib/trunk/modules/nio/build.xml Tue Jun 27 02:28:15 2006
@@ -39,12 +39,39 @@
<target name="test" depends="build, compile.tests, run.tests" /> + <!-- Build natives.-->
+     <target name="build.native">
+ <exec failonerror="true" + executable="${make.command}" + dir="${hy.nio.src.main.native}/nio/${hy.os}">
+             <env key="HY_HDK" value="${hy.hdk}" />
+         </exec>
+ +     <!-- Copy the built shared libs over to the jre/bin dir -->
+     <copy todir="${hy.jdk}/jre/bin" overwrite="yes">
+             <fileset dir="${hy.nio.src.main.native}/nio">
+                 <patternset includes="*${shlib.suffix}*" />
+             </fileset>
+         </copy>
+     </target>
+
     <target name="clean">
         <delete includeemptydirs="true" failonerror="false">
             <fileset refid="classes" />
             <fileset dir="${hy.nio.bin.test}" />
         </delete>
     </target>
+
+     <!-- Clean natives. -->
+     <target name="clean.native">
+ <exec failonerror="true" + executable="${make.command}" + dir="${hy.nio.src.main.native}/nio/${hy.os}">
+             <env key="HY_HDK" value="${hy.hdk}" />
+         <arg line="clean" />
+         </exec>
+     </target>
+
<target name="compile.java">
         <echo message="Compiling NIO classes" />

Modified: incubator/harmony/enhanced/classlib/trunk/modules/nio/make/hyproperties.xml URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/nio/make/hyproperties.xml?rev=417385&r1=417384&r2=417385&view=diff ============================================================================== --- incubator/harmony/enhanced/classlib/trunk/modules/nio/make/hyproperties.xml (original) +++ incubator/harmony/enhanced/classlib/trunk/modules/nio/make/hyproperties.xml Tue Jun 27 02:28:15 2006
@@ -21,6 +21,7 @@
          <main>
             <java location="src/main/java" />
             <resources location="src/main/resources" />
+            <native location="src/main/native" />
          </main>
          <test>
             <java location="src/test/java" />

Added: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/org/apache/harmony/nio/AddressUtil.java URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/org/apache/harmony/nio/AddressUtil.java?rev=417385&view=auto ============================================================================== --- incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/org/apache/harmony/nio/AddressUtil.java (added) +++ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/org/apache/harmony/nio/AddressUtil.java Tue Jun 27 02:28:15 2006
@@ -0,0 +1,68 @@
+/* Copyright 2006 The Apache Software Foundation or its licensors, as applicable
+ * + * Licensed 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.
+ */
+
+package org.apache.harmony.nio;
+
+import java.io.FileDescriptor;
+import java.nio.Buffer;
+import java.nio.channels.Channel;
+
+import org.apache.harmony.luni.platform.FileDescriptorHandler;
+import org.apache.harmony.nio.internal.DirectBuffer;
+import org.apache.harmony.nio.internal.FileChannelImpl;
+
+public class AddressUtil {
+
+    /**
+     * Gets the address of a direct buffer.
+     * +     * @param buf
+     *            the direct buffer whose address shall be return
+     * @return the address of the buffer given
+     */
+    public static long getDirectBufferAddress(Buffer buf) {
+        if (!(buf instanceof DirectBuffer)) {
+            return 0;
+        }
+        return ((DirectBuffer) buf).getBaseAddress().toLong();
+    }
+    +    /**
+ * Gets the address of native resource held by the given channel, if has any. + * + * For network related channel, including SocketChannel, ServerSocketChannel + * and DatagramChannel, this method returns a int of Socket handler in Linux + * while returns a SOCKET (UINT_PTR) in windows. + * + * For FileChannel, this method returns the native file descriptor. + * + * For other channels, this method return 0, which means unsupported operation.
+     * +     * @param channel
+ * the given channel which may holds a native resource address + * @return the address of native resource held by the given channel, if any, + * otherwise return 0
+     */
+    public static long getChannelAddress(Channel channel){
+        if(channel instanceof FileDescriptorHandler){
+ return getFDAddress(((FileDescriptorHandler) channel).getFD()); + }else if(channel instanceof FileChannelImpl){ + return ((FileChannelImpl) channel).getHandle(); + }
+        return 0;
+    }
+
+    private static native long getFDAddress(FileDescriptor fd);
+}
\ No newline at end of file

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/org/apache/harmony/nio/AddressUtil.java ------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/org/apache/harmony/nio/internal/FileChannelImpl.java URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/org/apache/harmony/nio/internal/FileChannelImpl.java?rev=417385&r1=417384&r2=417385&view=diff ============================================================================== --- incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/org/apache/harmony/nio/internal/FileChannelImpl.java (original) +++ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/org/apache/harmony/nio/internal/FileChannelImpl.java Tue Jun 27 02:28:15 2006
@@ -596,4 +596,8 @@
         }
         return bytesWritten;
     }
+    +    public long getHandle(){
+        return handle;
+    }
 }

Added: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/linux/libhynio.exp URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/linux/libhynio.exp?rev=417385&view=auto ============================================================================== --- incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/linux/libhynio.exp (added) +++ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/linux/libhynio.exp Tue Jun 27 02:28:15 2006
@@ -0,0 +1,8 @@
+HYNIO_0.1 {
+    global :
+        NewDirectByteBuffer;
+        GetDirectBufferAddress;
+        GetDirectBufferCapacity;
+        Java_org_apache_harmony_nio_AddressUtil_getFDAddress;
+    local : *;
+};

Added: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/linux/makefile URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/linux/makefile?rev=417385&view=auto ============================================================================== --- incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/linux/makefile (added) +++ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/linux/makefile Tue Jun 27 02:28:15 2006
@@ -0,0 +1,32 @@
+# Copyright 2006 The Apache Software Foundation or its licensors, as applicable
+# +# Licensed 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.
+
+#
+# Makefile for module 'nio'
+#
+
+include $(HY_HDK)/build/make/makefile.include
+
+CFLAGS += -fpic -I$(SHARED)common -I$(SHARED)fdlibm
+
+BUILDFILES = \
+    ../shared/DirectBufferUtil.o ../shared/AddressUtil.o +
+MDLLIBFILES = \
+    $(LIBPATH)libhycommon.a $(LIBPATH)libhyzip.a \
+    $(LIBPATH)libhypool.a $(LIBPATH)libhyfdlibm.a
+
+DLLNAME = ../libhynio.so
+
+include $(HY_HDK)/build/make/rules.mk

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/shared/ ------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue Jun 27 02:28:15 2006
@@ -0,0 +1 @@
+*.obj

Added: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/shared/AddressUtil.c URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/shared/AddressUtil.c?rev=417385&view=auto ============================================================================== --- incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/shared/AddressUtil.c (added) +++ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/shared/AddressUtil.c Tue Jun 27 02:28:15 2006
@@ -0,0 +1,43 @@
+/* Copyright 2006 The Apache Software Foundation or its licensors, as applicable
+ * + * Licensed 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.
+ */
+
+#include "hysock.h"
+#include "AddressUtil.h"
+
+/*
+ * Class:     org_apache_harmony_nio_AddressUtil
+ * Method:    getFDAddress
+ * Signature: (Ljava/io/FileDescriptor;)J
+ */
+JNIEXPORT jlong JNICALL Java_org_apache_harmony_nio_AddressUtil_getFDAddress
+  (JNIEnv * env, jclass clz, jobject fd){
+    jclass descriptorCLS;
+    jfieldID descriptorFID;
+    hysocket_t hysocketP;
+    //TODO add to cache
+    descriptorCLS = (*env)->FindClass (env, "java/io/FileDescriptor");
+    if (NULL == descriptorCLS){
+        return 0;
+    }
+ descriptorFID = (*env)->GetFieldID (env, descriptorCLS, "descriptor", "J");
+    if (NULL == descriptorFID){
+        return 0;
+    }
+ hysocketP = (hysocket_t) ((*env)->GetLongField (env, fd, descriptorFID));
+    return SOCKET_CAST(hysocketP);
+}
+
+
+

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/shared/AddressUtil.c ------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/shared/AddressUtil.h URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/shared/AddressUtil.h?rev=417385&view=auto ============================================================================== --- incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/shared/AddressUtil.h (added) +++ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/shared/AddressUtil.h Tue Jun 27 02:28:15 2006
@@ -0,0 +1,36 @@
+/* Copyright 2006 The Apache Software Foundation or its licensors, as applicable
+ * + * Licensed 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.
+ */
+
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class org_apache_harmony_nio_AddressUtil */
+
+#ifndef _Included_org_apache_harmony_nio_AddressUtil
+#define _Included_org_apache_harmony_nio_AddressUtil
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class:     org_apache_harmony_nio_AddressUtil
+ * Method:    getFDAddress
+ * Signature: (Ljava/io/FileDescriptor;)J
+ */
+JNIEXPORT jlong JNICALL Java_org_apache_harmony_nio_AddressUtil_getFDAddress
+  (JNIEnv *, jclass, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif

Added: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/shared/DirectBufferUtil.c URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/shared/DirectBufferUtil.c?rev=417385&view=auto ============================================================================== --- incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/shared/DirectBufferUtil.c (added) +++ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/shared/DirectBufferUtil.c Tue Jun 27 02:28:15 2006
@@ -0,0 +1,119 @@
+/* Copyright 2006 The Apache Software Foundation or its licensors, as applicable
+ * + * Licensed 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.
+ */
+
+#include <jni.h>
+
+/*
+ * For JNI
+ * Method:    NewDirectByteBuffer
+ * Signature: (JJ)Ljava/nio/ByteBuffer;
+ */
+jobject NewDirectByteBuffer
+  (JNIEnv * env, jlong address, jlong capacity){
+      jmethodID newBufferMethod;
+      jclass directBufferClass;
+      jclass platformaddressClass;
+      jobject platformaddress;
+      jmethodID onMethod;
+ directBufferClass = (*env)->FindClass (env, "java/nio/ReadWriteDirectByteBuffer");
+      if (!directBufferClass){
+                return NULL;
+      }
+ newBufferMethod = (*env)->GetMethodID (env, directBufferClass, "<init>", + "(Lorg/apache/harmony/luni/platform/PlatformAddress;II)V");
+      if (!newBufferMethod){
+                return NULL;
+      }
+ platformaddressClass = (*env)->FindClass (env, "org/apache/harmony/luni/platform/PlatformAddress");
+      if (!platformaddressClass){
+                return NULL;
+      }
+ onMethod = (*env)->GetStaticMethodID (env, platformaddressClass, "on",
+             "(J)Lorg/apache/harmony/luni/platform/PlatformAddress;");
+      if (!onMethod){
+                return NULL;
+      }
+ platformaddress = (*env)->CallStaticObjectMethod(env, platformaddressClass, onMethod, address); + return (*env)->NewObject(env, directBufferClass, newBufferMethod, platformaddress, capacity, 0);
+  }
+
+/*
+ * For JNI
+ * Method:    GetDirectBufferAddress
+ * Signature: (Ljava/nio/Buffer;)J
+ */
+jlong GetDirectBufferAddress
+  (JNIEnv * env, jobject buf){
+      jmethodID tempMethod;
+      jclass tempClass;
+      jobject platformAddr;
+      jclass platformAddrClass;
+      jmethodID toLongMethod;
+ + tempClass = (*env)->FindClass (env, "org/apache/harmony/nio/internal/DirectBuffer");
+      if (!tempClass){
+                return 0;
+      }
+      if (JNI_FALSE == (*env)->IsInstanceOf(env, buf, tempClass)){
+          return 0;
+ } + tempMethod = (*env)->GetMethodID (env, tempClass, "getBaseAddress", + "()Lorg/apache/harmony/luni/platform/PlatformAddress;"); + if (!tempMethod){
+                return 0;
+ } + platformAddr = (*env)->CallObjectMethod(env, buf, tempMethod); + platformAddrClass = (*env)->FindClass (env, "org/apache/harmony/luni/platform/PlatformAddress");
+      if (!platformAddrClass){
+                return 0;
+      }
+ toLongMethod = (*env)->GetMethodID (env, platformAddrClass, "toLong",
+             "()J");
+      if (!toLongMethod){
+                return 0;
+      }
+ return (*env)->CallLongMethod(env, platformAddr, toLongMethod); + }
+
+/*
+ * For JNI
+ * Method:    GetDirectBufferCapacity
+ * Signature: (Ljava/nio/Buffer;)J
+ */
+jlong GetDirectBufferCapacity
+  (JNIEnv * env, jobject buf){
+      jfieldID fieldCapacity;
+      jclass directBufferClass;
+      jclass bufferClass;
+ directBufferClass = (*env)->FindClass (env, "org/apache/harmony/nio/internal/DirectBuffer");
+      if (!directBufferClass){
+                return -1;
+      }
+ if (JNI_FALSE == (*env)->IsInstanceOf(env, buf, directBufferClass)){
+          return -1;
+      }
+      bufferClass = (*env)->FindClass (env, "java/nio/Buffer");
+      if (!bufferClass){
+                return -1;
+      }
+      fieldCapacity = (*env)->GetFieldID (env, bufferClass, "capacity",
+             "I");
+      if (!fieldCapacity){
+                return -1;
+      }
+      return (*env)->GetIntField(env, buf, fieldCapacity);
+  }
+
+

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/shared/DirectBufferUtil.c ------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/windows/ ------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue Jun 27 02:28:15 2006
@@ -0,0 +1,2 @@
+*.RES
+*.pdb

Added: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/windows/hynio.def URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/windows/hynio.def?rev=417385&view=auto ============================================================================== --- incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/windows/hynio.def (added) +++ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/windows/hynio.def Tue Jun 27 02:28:15 2006
@@ -0,0 +1,12 @@
+LIBRARY    HYNIO
+
+SECTIONS
+    .data    READ WRITE
+    .text    EXECUTE READ
+
+EXPORTS
+    Java_org_apache_harmony_nio_AddressUtil_getFDAddress
+    NewDirectByteBuffer
+    GetDirectBufferAddress
+    GetDirectBufferCapacity
+

Added: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/windows/hynio.rc URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/windows/hynio.rc?rev=417385&view=auto ============================================================================== --- incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/windows/hynio.rc (added) +++ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/windows/hynio.rc Tue Jun 27 02:28:15 2006
@@ -0,0 +1,47 @@
+;
+; Copyright 2006 The Apache Software Foundation or its licensors, as applicable
+; +; Licensed 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.
+;
+
+#include <windows.h>
+#include <winver.h>
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 0,1,0,0
+ PRODUCTVERSION 0,1,0,0
+ FILEFLAGSMASK 0x3fL
+ FILEFLAGS 0x0L
+ FILEOS VOS_NT_WINDOWS32
+ FILETYPE VFT_DLL
+ FILESUBTYPE 0x0L
+BEGIN
+    BLOCK "StringFileInfo"
+    BEGIN
+        BLOCK "040904b0"
+        BEGIN
+            VALUE "CompanyName", "The Apache Software Foundation.\0"
+            VALUE "FileDescription", "NIO native code\0"
+            VALUE "FileVersion", "0.1\0"
+            VALUE "InternalName", "nio\0"
+ VALUE "LegalCopyright", "(c) Copyright 1991, 2005 The Apache Software Foundation or its licensors, as applicable.\0"
+            VALUE "OriginalFilename", "hynio.dll\0"
+            VALUE "ProductName", "Apache Harmony\0"
+            VALUE "ProductVersion", "0.1\0"
+        END
+    END
+    BLOCK "VarFileInfo"
+    BEGIN
+        VALUE "Translation", 0x0409, 1200
+    END
+END

Added: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/windows/makefile URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/windows/makefile?rev=417385&view=auto ============================================================================== --- incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/windows/makefile (added) +++ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/native/nio/windows/makefile Tue Jun 27 02:28:15 2006
@@ -0,0 +1,41 @@
+# Copyright 2006 The Apache Software Foundation or its licensors, as applicable
+# +# Licensed 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.
+
+#
+# Makefile for module 'nio'
+#
+
+!include <$(HY_HDK)\build\make\defines.mak>
+
+SHAREDSUB=..\shared\# comment to avoid \ being treated as continuation
+LIBBASE=hynio
+DLLNAME=$(DLLPATH)$(LIBBASE).dll
+LIBNAME=$(LIBPATH)$(LIBBASE).lib
+HYCFLAGS = $(HYCFLAGS) /I$(SHAREDSUB) /I$(SHARED)common /I$(SHARED)fdlibm
+HYLDFLAGS = $(HYLDFLAGS) -def:$(LIBBASE).def
+
+BUILDFILES = \
+  $(SHAREDSUB)DirectBufferUtil.obj $(SHAREDSUB)AddressUtil.obj
+VIRTFILES = hynio.res
+
+SYSLIBFILES = ws2_32.lib Iphlpapi.lib
+
+MDLLIBFILES = \
+ $(LIBPATH)hycommon.lib $(LIBPATH)hysig.lib $(LIBPATH)hyzip.lib $(LIBPATH)hyzlib.lib \ + $(LIBPATH)hypool.lib $(LIBPATH)hyfdlibm.lib $(LIBPATH)hythr.lib $(LIBPATH)vmi.lib
+  +DLLBASE=0x13200000
+COMMENT=/comment:"nio component native code. (c) Copyright 1991, 2005 The Apache Software Foundation or its licensors, as applicable."
+
+!include <$(HY_HDK)\build\make\rules.mak>

Added: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/nio/AddressUtilTest.java URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/nio/AddressUtilTest.java?rev=417385&view=auto ============================================================================== --- incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/nio/AddressUtilTest.java (added) +++ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/nio/AddressUtilTest.java Tue Jun 27 02:28:15 2006
@@ -0,0 +1,89 @@
+/* Copyright 2006 The Apache Software Foundation or its licensors, as applicable
+ * + * Licensed 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.
+ */
+
+package org.apache.harmony.tests.nio;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.nio.channels.Channel;
+import java.nio.channels.DatagramChannel;
+import java.nio.channels.FileChannel;
+import java.nio.channels.ServerSocketChannel;
+import java.nio.channels.SocketChannel;
+
+import junit.framework.TestCase;
+
+import org.apache.harmony.nio.AddressUtil;
+
+public class AddressUtilTest extends TestCase {
+    +    /**
+     * @tests AddressUtil#getDirectBufferAddress
+     */
+    public void test_getDirectBufferAddress() throws Exception {
+        ByteBuffer buf = ByteBuffer.allocateDirect(10);
+        assertTrue(AddressUtil.getDirectBufferAddress(buf) != 0);
+    }
+    +    /**
+     * @tests AddressUtil#getChannelAddress
+     */
+    public void test_getFileChannelAddress() throws Exception {
+// FileChannel fc = new FileInputStream("src/main/java/org/apache/harmony/nio/AddressUtil.java").getChannel();
+//        assertTrue(AddressUtil.getChannelAddress(fc) > 0);
+    }
+    +    /**
+     * @tests AddressUtil#getChannelAddress
+     */
+    public void test_getSocketChannelAddress() throws Exception {
+        SocketChannel sc = SocketChannel.open();
+        assertTrue(AddressUtil.getChannelAddress(sc)>0);
+    }
+    +    /**
+     * @tests AddressUtil#getChannelAddress
+     */
+    public void test_getDatagramChannelAddress() throws Exception {
+        DatagramChannel dc = DatagramChannel.open();
+        assertTrue(AddressUtil.getChannelAddress(dc)>0);
+    }
+    +    /**
+     * @tests AddressUtil#getChannelAddress
+     */
+    public void test_getServerSocketChannelAddress() throws Exception {
+        ServerSocketChannel ssc = ServerSocketChannel.open();
+        assertTrue(AddressUtil.getChannelAddress(ssc)>0);
+    }  +    +    /**
+     * @tests AddressUtil#getChannelAddress
+     */
+    public void test_getNonNativeChannelAddress() throws Exception{
+        Channel channel = new MockChannel();
+        assertEquals(0, AddressUtil.getChannelAddress(channel));
+    }
+    +    private static class MockChannel implements Channel{
+        public boolean isOpen() {
+            return false;
+        }
+        public void close() throws IOException {
+        }
+    }
+}
+ Propchange: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/org/apache/harmony/tests/nio/AddressUtilTest.java ------------------------------------------------------------------------------
    svn:eol-style = native







---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to