harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From George Harley <george.c.har...@googlemail.com>
Subject Re: svn commit: r417385 - in /incubator/harmony/enhanced/classlib/trunk/modules/nio: ./ make/ src/main/java/org/apache/harmony/nio/ src/main/java/org/apache/harmony/nio/internal/ src/main/native/ src/main/native/nio/ src/main/native/nio/linux/ src/main/nat...
Date Tue, 27 Jun 2006 09:58:10 GMT
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



tellison@apache.org 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: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org


Mime
View raw message