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