org.jgroups.util
Class Util

java.lang.Object
  extended by org.jgroups.util.Util

public class Util
extends java.lang.Object

Collection of various utility routines that can not be assigned to other classes.

Version:
$Id: Util.java,v 1.137.2.10 2009/02/06 16:53:46 vlada Exp $
Author:
Bela Ban

Field Summary
static int MAX_PORT
           
 
Constructor Summary
Util()
           
 
Method Summary
static java.lang.String activeThreads()
           
static boolean all(java.util.Collection c, java.lang.Object obj)
          Returns true if all elements of c match obj
static java.lang.String array2String(boolean[] array)
           
static java.lang.String array2String(int[] array)
           
static java.lang.String array2String(long[] array)
           
static java.lang.String array2String(java.lang.Object[] array)
           
static java.lang.String array2String(short[] array)
           
static Message byteBufferToMessage(byte[] buffer, int offset, int length)
           
static java.util.List<Message> byteBufferToMessageList(byte[] buffer, int offset, int length)
           
static void checkBufferSize(java.lang.String buf_name, long val)
          Verifies that val is <= max memory
static boolean checkForLinux()
           
static boolean checkForSolaris()
           
static boolean checkForWindows()
           
static void close(Channel... channels)
           
static void close(Channel ch)
           
static void close(java.net.DatagramSocket my_sock)
           
static void close(java.io.InputStream inp)
           
static void close(java.io.OutputStream out)
           
static void close(java.net.Socket s)
           
static byte[] collectionToByteBuffer(java.util.Collection c)
           
static java.util.List computeFragOffsets(byte[] buf, int frag_size)
           
static java.util.List computeFragOffsets(int offset, int length, int frag_size)
          Given a buffer and a fragmentation size, compute a list of fragmentation offset/length pairs, and return them in a list.
static void crash()
           
static java.net.DatagramSocket createDatagramSocket(java.net.InetAddress addr, int port)
          Creates a DatagramSocket bound to addr.
static java.net.MulticastSocket createMulticastSocket(java.net.InetAddress mcast_addr, int port, org.apache.commons.logging.Log log)
           
static java.net.MulticastSocket createMulticastSocket(int port)
           
static java.net.ServerSocket createServerSocket(java.net.InetAddress bind_addr, int start_port)
           
static java.net.ServerSocket createServerSocket(int start_port)
          Finds first available port starting at start_port and returns server socket
static byte[] defragmentBuffer(byte[][] fragments)
          Concatenates smaller fragments into entire buffers.
static java.util.Vector<Address> determineLeftMembers(java.util.Vector<Address> old_mbrs, java.util.Vector<Address> new_mbrs)
          Returns all members that left between 2 views.
static void doubleWrite(byte[] buf, int offset, int length, java.io.OutputStream out)
          Makes sure that we detect when a peer connection is in the closed state (not closed while we send data, but before we send data).
static void doubleWrite(byte[] buf, java.io.OutputStream out)
          Makes sure that we detect when a peer connection is in the closed state (not closed while we send data, but before we send data).
static java.lang.String dumpQueue(Queue q)
          Debugging method used to dump the content of a protocol queue in a condensed form.
static void dumpStack(boolean exit)
           
static java.lang.String dumpThreads()
           
static boolean fileExists(java.lang.String fname)
           
static byte[][] fragmentBuffer(byte[] buf, int frag_size)
           
static byte[][] fragmentBuffer(byte[] buf, int frag_size, int length)
          Fragments a byte buffer into smaller fragments of (max.) frag_size.
static java.lang.String generateList(java.util.Collection c, java.lang.String separator)
           
static java.util.List<java.net.NetworkInterface> getAllAvailableInterfaces()
           
static java.net.InetAddress getBindAddress(java.util.Properties props)
          Returns the address of the interface to use defined by bind_addr and bind_interface
static java.net.InetAddress getFirstNonLoopbackAddress()
           
static java.net.InetAddress getFirstNonLoopbackIPv6Address()
           
static java.lang.ThreadGroup getGlobalThreadGroup()
           
static java.lang.String getHostname()
           
static int getJavaVersion()
           
static javax.management.MBeanServer getMBeanServer()
           
static java.lang.String getProperty(Protocol prot, java.lang.String prop_name)
           
static java.lang.String getProperty(java.lang.String[] system_props, java.util.Properties props, java.lang.String prop_name, boolean ignore_sysprops, java.lang.String default_value)
          Returns a value associated wither with one or more system properties, or found in the props map
static java.io.InputStream getResourceAsStream(java.lang.String name, java.lang.Class clazz)
           
static java.lang.String getStackTrace(java.lang.Throwable t)
           
static boolean interruptAndWaitToDie(java.lang.Thread t)
           
static boolean interruptAndWaitToDie(java.lang.Thread t, long timeout)
           
static boolean isBindAddressPropertyIgnored()
           
static int keyPress(java.lang.String msg)
           
static java.lang.Class loadClass(java.lang.String classname, java.lang.Class clazz)
          Tries to load the class from the current thread's context class loader.
static void main(java.lang.String[] args)
           
static java.lang.String mapToString(java.util.Map<? extends java.lang.Object,? extends java.lang.Object> map)
           
static boolean match(long[] a1, long[] a2)
           
static boolean match(java.lang.Object obj1, java.lang.Object obj2)
           
static java.lang.String md5(java.lang.String source)
          Converts a java.lang.String in to a MD5 hashed String
static java.lang.String memStats(boolean gc)
           
static Buffer messageToByteBuffer(Message msg)
           
static Buffer msgListToByteBuffer(java.util.List<Message> xmit_list)
          Marshalls a list of messages.
static java.lang.Object objectFromByteBuffer(byte[] buffer)
          Creates an object from a byte buffer
static java.lang.Object objectFromByteBuffer(byte[] buffer, int offset, int length)
           
static byte[] objectToByteBuffer(java.lang.Object obj)
          Serializes/Streams an object into a byte buffer.
static java.lang.Object oldObjectFromByteBuffer(byte[] buffer)
          For backward compatibility in JBoss 4.0.2
static java.lang.Object oldObjectFromByteBuffer(byte[] buffer, int offset, int length)
           
static byte[] oldObjectToByteBuffer(java.lang.Object obj)
          Serializes/Streams an object into a byte buffer.
static java.net.InetAddress parseBindAddress(java.util.Properties props, java.lang.String property)
           
static boolean parseBoolean(java.util.Properties props, java.lang.String property, boolean defaultValue)
           
static long[] parseCommaDelimitedLongs(java.lang.String s)
          Parses comma-delimited longs; e.g., 2000,4000,8000.
static java.util.List<java.lang.String> parseCommaDelimitedStrings(java.lang.String l)
          e.g.
static int parseInt(java.util.Properties props, java.lang.String property, int defaultValue)
           
static java.util.List<java.net.NetworkInterface> parseInterfaceList(java.lang.String s)
           
static long parseLong(java.util.Properties props, java.lang.String property, long defaultValue)
           
static java.util.List<java.lang.String> parseStringList(java.lang.String l, java.lang.String separator)
           
static java.lang.Object pickRandomElement(java.util.List list)
           
static java.lang.Object pickRandomElement(java.lang.Object[] array)
           
static java.util.Vector pickSubset(java.util.Vector members, double subset_percentage)
          Selects a random subset of members according to subset_percentage and returns them.
static java.lang.String print(java.util.List<java.net.NetworkInterface> interfaces)
           
static java.lang.String print(java.lang.Throwable t)
           
static java.lang.String printBytes(double bytes)
           
static java.lang.String printBytes(long bytes)
           
static java.lang.String printEvent(Event evt)
           
static void printFragments(byte[][] frags)
           
static
<T> java.lang.String
printListWithDelimiter(java.util.Collection<T> list, java.lang.String delimiter)
           
static java.lang.String printMembers(java.util.Vector v)
           
static java.lang.String printMessage(Message msg)
          Tries to read an object from the message's buffer and prints it
static java.lang.String printMethodCall(Message msg)
          Tries to read a MethodCall object from the message's buffer and prints it.
static java.lang.String printPingRsps(java.util.List<PingRsp> rsps)
           
static java.lang.String printStackTrace(java.lang.Throwable t)
          Use with caution: lots of overhead
static void printThreads()
           
static void prompt(java.lang.String s)
           
static long random(long range)
          Returns a random value in the range [1 - range]
static Address readAddress(java.io.DataInputStream in)
           
static java.util.Collection<Address> readAddresses(java.io.DataInputStream in, java.lang.Class cl)
           
static AuthToken readAuthToken(java.io.DataInputStream in)
           
static byte[] readByteBuffer(java.io.DataInputStream in)
           
static Streamable readGenericStreamable(java.io.DataInputStream in)
           
static java.lang.Object readObject(java.io.DataInputStream in)
           
static Streamable readStreamable(java.lang.Class clazz, java.io.DataInputStream in)
           
static java.lang.String readString(java.io.DataInputStream in)
           
static boolean sameHost(Address one, Address two)
          Checks whether 2 Addresses are on the same host
static java.lang.String sha(java.lang.String source)
          Converts a java.lang.String in to a SHA hashed String
static java.lang.String shortName(java.net.InetAddress hostname)
           
static java.lang.String shortName(java.lang.String hostname)
           
static int size(Address addr)
           
static long size(java.util.Collection addrs)
          Returns the marshalled size of a Collection of Addresses.
static long sizeOf(java.lang.Object inst)
           
static int sizeOf(Streamable inst)
           
static long sizeOf(java.lang.String classname)
           
static void sleep(long timeout)
          Sleep for timeout msecs.
static void sleep(long msecs, boolean busy_sleep)
          On most UNIX systems, the minimum sleep time is 10-20ms.
static void sleep(long timeout, int nanos)
           
static void sleepRandom(long timeout)
          Sleeps between 1 and timeout milliseconds, chosen randomly.
static Streamable streamableFromByteBuffer(java.lang.Class cl, byte[] buffer)
           
static Streamable streamableFromByteBuffer(java.lang.Class cl, byte[] buffer, int offset, int length)
           
static byte[] streamableToByteBuffer(Streamable obj)
           
static java.lang.String substituteVariable(java.lang.String val)
          Replaces variables of ${var:default} with System.getProperty(var, default).
static boolean tossWeightedCoin(double probability)
          Tosses a coin weighted with probability and returns true or false.
static
<T> java.util.Vector<T>
unmodifiableVector(java.util.Vector<? extends T> v)
           
static void writeAddress(Address addr, java.io.DataOutputStream out)
           
static void writeAddresses(java.util.Collection v, java.io.DataOutputStream out)
          Writes a Vector of Addresses.
static void writeAuthToken(AuthToken token, java.io.DataOutputStream out)
           
static void writeByteBuffer(byte[] buf, java.io.DataOutputStream out)
           
static void writeFully(java.nio.ByteBuffer buf, java.nio.channels.WritableByteChannel out)
          if we were to register for OP_WRITE and send the remaining data on readyOps for this channel we have to either block the caller thread or queue the message buffers that may arrive while waiting for OP_WRITE.
static void writeGenericStreamable(Streamable obj, java.io.DataOutputStream out)
           
static void writeObject(java.lang.Object obj, java.io.DataOutputStream out)
           
static void writeStreamable(Streamable obj, java.io.DataOutputStream out)
           
static void writeString(java.lang.String s, java.io.DataOutputStream out)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MAX_PORT

public static final int MAX_PORT
See Also:
Constant Field Values
Constructor Detail

Util

public Util()
Method Detail

getGlobalThreadGroup

public static java.lang.ThreadGroup getGlobalThreadGroup()

checkBufferSize

public static void checkBufferSize(java.lang.String buf_name,
                                   long val)
Verifies that val is <= max memory

Parameters:
buf_name -
val -

keyPress

public static int keyPress(java.lang.String msg)

close

public static void close(java.io.InputStream inp)

close

public static void close(java.io.OutputStream out)

close

public static void close(java.net.Socket s)

close

public static void close(java.net.DatagramSocket my_sock)

close

public static void close(Channel ch)

close

public static void close(Channel... channels)

objectFromByteBuffer

public static java.lang.Object objectFromByteBuffer(byte[] buffer)
                                             throws java.lang.Exception
Creates an object from a byte buffer

Throws:
java.lang.Exception

objectFromByteBuffer

public static java.lang.Object objectFromByteBuffer(byte[] buffer,
                                                    int offset,
                                                    int length)
                                             throws java.lang.Exception
Throws:
java.lang.Exception

objectToByteBuffer

public static byte[] objectToByteBuffer(java.lang.Object obj)
                                 throws java.lang.Exception
Serializes/Streams an object into a byte buffer. The object has to implement interface Serializable or Externalizable or Streamable. Only Streamable objects are interoperable w/ jgroups-me

Throws:
java.lang.Exception

oldObjectFromByteBuffer

public static java.lang.Object oldObjectFromByteBuffer(byte[] buffer)
                                                throws java.lang.Exception
For backward compatibility in JBoss 4.0.2

Throws:
java.lang.Exception

oldObjectFromByteBuffer

public static java.lang.Object oldObjectFromByteBuffer(byte[] buffer,
                                                       int offset,
                                                       int length)
                                                throws java.lang.Exception
Throws:
java.lang.Exception

oldObjectToByteBuffer

public static byte[] oldObjectToByteBuffer(java.lang.Object obj)
                                    throws java.lang.Exception
Serializes/Streams an object into a byte buffer. The object has to implement interface Serializable or Externalizable or Streamable. Only Streamable objects are interoperable w/ jgroups-me

Throws:
java.lang.Exception

streamableFromByteBuffer

public static Streamable streamableFromByteBuffer(java.lang.Class cl,
                                                  byte[] buffer)
                                           throws java.lang.Exception
Throws:
java.lang.Exception

streamableFromByteBuffer

public static Streamable streamableFromByteBuffer(java.lang.Class cl,
                                                  byte[] buffer,
                                                  int offset,
                                                  int length)
                                           throws java.lang.Exception
Throws:
java.lang.Exception

streamableToByteBuffer

public static byte[] streamableToByteBuffer(Streamable obj)
                                     throws java.lang.Exception
Throws:
java.lang.Exception

collectionToByteBuffer

public static byte[] collectionToByteBuffer(java.util.Collection c)
                                     throws java.lang.Exception
Throws:
java.lang.Exception

size

public static int size(Address addr)

writeAuthToken

public static void writeAuthToken(AuthToken token,
                                  java.io.DataOutputStream out)
                           throws java.io.IOException
Throws:
java.io.IOException

readAuthToken

public static AuthToken readAuthToken(java.io.DataInputStream in)
                               throws java.io.IOException,
                                      java.lang.IllegalAccessException,
                                      java.lang.InstantiationException
Throws:
java.io.IOException
java.lang.IllegalAccessException
java.lang.InstantiationException

writeAddress

public static void writeAddress(Address addr,
                                java.io.DataOutputStream out)
                         throws java.io.IOException
Throws:
java.io.IOException

readAddress

public static Address readAddress(java.io.DataInputStream in)
                           throws java.io.IOException,
                                  java.lang.IllegalAccessException,
                                  java.lang.InstantiationException
Throws:
java.io.IOException
java.lang.IllegalAccessException
java.lang.InstantiationException

writeAddresses

public static void writeAddresses(java.util.Collection v,
                                  java.io.DataOutputStream out)
                           throws java.io.IOException
Writes a Vector of Addresses. Can contain 65K addresses at most

Parameters:
v - A Collection
out -
Throws:
java.io.IOException

readAddresses

public static java.util.Collection<Address> readAddresses(java.io.DataInputStream in,
                                                          java.lang.Class cl)
                                                   throws java.io.IOException,
                                                          java.lang.IllegalAccessException,
                                                          java.lang.InstantiationException
Parameters:
in -
cl - The type of Collection, e.g. Vector.class
Returns:
Collection of Address objects
Throws:
java.io.IOException
java.lang.IllegalAccessException
java.lang.InstantiationException

size

public static long size(java.util.Collection addrs)
Returns the marshalled size of a Collection of Addresses. Assumes elements are of the same type !

Parameters:
addrs - Collection
Returns:
long size

writeStreamable

public static void writeStreamable(Streamable obj,
                                   java.io.DataOutputStream out)
                            throws java.io.IOException
Throws:
java.io.IOException

readStreamable

public static Streamable readStreamable(java.lang.Class clazz,
                                        java.io.DataInputStream in)
                                 throws java.io.IOException,
                                        java.lang.IllegalAccessException,
                                        java.lang.InstantiationException
Throws:
java.io.IOException
java.lang.IllegalAccessException
java.lang.InstantiationException

writeGenericStreamable

public static void writeGenericStreamable(Streamable obj,
                                          java.io.DataOutputStream out)
                                   throws java.io.IOException
Throws:
java.io.IOException

readGenericStreamable

public static Streamable readGenericStreamable(java.io.DataInputStream in)
                                        throws java.io.IOException
Throws:
java.io.IOException

writeObject

public static void writeObject(java.lang.Object obj,
                               java.io.DataOutputStream out)
                        throws java.lang.Exception
Throws:
java.lang.Exception

readObject

public static java.lang.Object readObject(java.io.DataInputStream in)
                                   throws java.lang.Exception
Throws:
java.lang.Exception

writeString

public static void writeString(java.lang.String s,
                               java.io.DataOutputStream out)
                        throws java.io.IOException
Throws:
java.io.IOException

readString

public static java.lang.String readString(java.io.DataInputStream in)
                                   throws java.io.IOException
Throws:
java.io.IOException

writeByteBuffer

public static void writeByteBuffer(byte[] buf,
                                   java.io.DataOutputStream out)
                            throws java.io.IOException
Throws:
java.io.IOException

readByteBuffer

public static byte[] readByteBuffer(java.io.DataInputStream in)
                             throws java.io.IOException
Throws:
java.io.IOException

messageToByteBuffer

public static Buffer messageToByteBuffer(Message msg)
                                  throws java.io.IOException
Throws:
java.io.IOException

byteBufferToMessage

public static Message byteBufferToMessage(byte[] buffer,
                                          int offset,
                                          int length)
                                   throws java.lang.Exception
Throws:
java.lang.Exception

msgListToByteBuffer

public static Buffer msgListToByteBuffer(java.util.List<Message> xmit_list)
                                  throws java.io.IOException
Marshalls a list of messages.

Parameters:
xmit_list - LinkedList
Returns:
Buffer
Throws:
java.io.IOException

byteBufferToMessageList

public static java.util.List<Message> byteBufferToMessageList(byte[] buffer,
                                                              int offset,
                                                              int length)
                                                       throws java.lang.Exception
Throws:
java.lang.Exception

match

public static boolean match(java.lang.Object obj1,
                            java.lang.Object obj2)

match

public static boolean match(long[] a1,
                            long[] a2)

sleep

public static void sleep(long timeout)
Sleep for timeout msecs. Returns when timeout has elapsed or thread was interrupted


sleep

public static void sleep(long timeout,
                         int nanos)

sleep

public static void sleep(long msecs,
                         boolean busy_sleep)
On most UNIX systems, the minimum sleep time is 10-20ms. Even if we specify sleep(1), the thread will sleep for at least 10-20ms. On Windows, sleep() seems to be implemented as a busy sleep, that is the thread never relinquishes control and therefore the sleep(x) is exactly x ms long.


random

public static long random(long range)
Returns a random value in the range [1 - range]


sleepRandom

public static void sleepRandom(long timeout)
Sleeps between 1 and timeout milliseconds, chosen randomly. Timeout must be > 1


tossWeightedCoin

public static boolean tossWeightedCoin(double probability)
Tosses a coin weighted with probability and returns true or false. Example: if probability=0.8, chances are that in 80% of all cases, true will be returned and false in 20%.


getHostname

public static java.lang.String getHostname()

dumpStack

public static void dumpStack(boolean exit)

dumpThreads

public static java.lang.String dumpThreads()

interruptAndWaitToDie

public static boolean interruptAndWaitToDie(java.lang.Thread t)

interruptAndWaitToDie

public static boolean interruptAndWaitToDie(java.lang.Thread t,
                                            long timeout)

dumpQueue

public static java.lang.String dumpQueue(Queue q)
Debugging method used to dump the content of a protocol queue in a condensed form. Useful to follow the evolution of the queue's content in time.


printStackTrace

public static java.lang.String printStackTrace(java.lang.Throwable t)
Use with caution: lots of overhead


getStackTrace

public static java.lang.String getStackTrace(java.lang.Throwable t)

print

public static java.lang.String print(java.lang.Throwable t)

crash

public static void crash()

printEvent

public static java.lang.String printEvent(Event evt)

printMessage

public static java.lang.String printMessage(Message msg)
Tries to read an object from the message's buffer and prints it


mapToString

public static java.lang.String mapToString(java.util.Map<? extends java.lang.Object,? extends java.lang.Object> map)

printMethodCall

public static java.lang.String printMethodCall(Message msg)
Tries to read a MethodCall object from the message's buffer and prints it. Returns empty string if object is not a method call


printThreads

public static void printThreads()

activeThreads

public static java.lang.String activeThreads()

printBytes

public static java.lang.String printBytes(long bytes)

printBytes

public static java.lang.String printBytes(double bytes)

fragmentBuffer

public static byte[][] fragmentBuffer(byte[] buf,
                                      int frag_size,
                                      int length)
Fragments a byte buffer into smaller fragments of (max.) frag_size. Example: a byte buffer of 1024 bytes and a frag_size of 248 gives 4 fragments of 248 bytes each and 1 fragment of 32 bytes.

Returns:
An array of byte buffers (byte[]).

fragmentBuffer

public static byte[][] fragmentBuffer(byte[] buf,
                                      int frag_size)

computeFragOffsets

public static java.util.List computeFragOffsets(int offset,
                                                int length,
                                                int frag_size)
Given a buffer and a fragmentation size, compute a list of fragmentation offset/length pairs, and return them in a list. Example:
Buffer is 10 bytes, frag_size is 4 bytes. Return value will be ({0,4}, {4,4}, {8,2}). This is a total of 3 fragments: the first fragment starts at 0, and has a length of 4 bytes, the second fragment starts at offset 4 and has a length of 4 bytes, and the last fragment starts at offset 8 and has a length of 2 bytes.

Parameters:
frag_size -
Returns:
List. A List of offset/length pairs

computeFragOffsets

public static java.util.List computeFragOffsets(byte[] buf,
                                                int frag_size)

defragmentBuffer

public static byte[] defragmentBuffer(byte[][] fragments)
Concatenates smaller fragments into entire buffers.

Parameters:
fragments - An array of byte buffers (byte[])
Returns:
A byte buffer

printFragments

public static void printFragments(byte[][] frags)

printListWithDelimiter

public static <T> java.lang.String printListWithDelimiter(java.util.Collection<T> list,
                                                          java.lang.String delimiter)

array2String

public static java.lang.String array2String(long[] array)

array2String

public static java.lang.String array2String(short[] array)

array2String

public static java.lang.String array2String(int[] array)

array2String

public static java.lang.String array2String(boolean[] array)

array2String

public static java.lang.String array2String(java.lang.Object[] array)

all

public static boolean all(java.util.Collection c,
                          java.lang.Object obj)
Returns true if all elements of c match obj


pickSubset

public static java.util.Vector pickSubset(java.util.Vector members,
                                          double subset_percentage)
Selects a random subset of members according to subset_percentage and returns them. Picks no member twice from the same membership. If the percentage is smaller than 1 -> picks 1 member.


pickRandomElement

public static java.lang.Object pickRandomElement(java.util.List list)

pickRandomElement

public static java.lang.Object pickRandomElement(java.lang.Object[] array)

determineLeftMembers

public static java.util.Vector<Address> determineLeftMembers(java.util.Vector<Address> old_mbrs,
                                                             java.util.Vector<Address> new_mbrs)
Returns all members that left between 2 views. All members that are element of old_mbrs but not element of new_mbrs are returned.


printMembers

public static java.lang.String printMembers(java.util.Vector v)

printPingRsps

public static java.lang.String printPingRsps(java.util.List<PingRsp> rsps)

doubleWrite

public static void doubleWrite(byte[] buf,
                               java.io.OutputStream out)
                        throws java.lang.Exception
Makes sure that we detect when a peer connection is in the closed state (not closed while we send data, but before we send data). Two writes ensure that, if the peer closed the connection, the first write will send the peer from FIN to RST state, and the second will cause a signal (IOException).

Throws:
java.lang.Exception

doubleWrite

public static void doubleWrite(byte[] buf,
                               int offset,
                               int length,
                               java.io.OutputStream out)
                        throws java.lang.Exception
Makes sure that we detect when a peer connection is in the closed state (not closed while we send data, but before we send data). Two writes ensure that, if the peer closed the connection, the first write will send the peer from FIN to RST state, and the second will cause a signal (IOException).

Throws:
java.lang.Exception

writeFully

public static void writeFully(java.nio.ByteBuffer buf,
                              java.nio.channels.WritableByteChannel out)
                       throws java.io.IOException
if we were to register for OP_WRITE and send the remaining data on readyOps for this channel we have to either block the caller thread or queue the message buffers that may arrive while waiting for OP_WRITE. Instead of the above approach this method will continuously write to the channel until the buffer sent fully.

Throws:
java.io.IOException

sizeOf

public static long sizeOf(java.lang.String classname)

sizeOf

public static long sizeOf(java.lang.Object inst)

sizeOf

public static int sizeOf(Streamable inst)

loadClass

public static java.lang.Class loadClass(java.lang.String classname,
                                        java.lang.Class clazz)
                                 throws java.lang.ClassNotFoundException
Tries to load the class from the current thread's context class loader. If not successful, tries to load the class from the current instance.

Parameters:
classname - Desired class.
clazz - Class object used to obtain a class loader if no context class loader is available.
Returns:
Class, or null on failure.
Throws:
java.lang.ClassNotFoundException

getResourceAsStream

public static java.io.InputStream getResourceAsStream(java.lang.String name,
                                                      java.lang.Class clazz)

sameHost

public static boolean sameHost(Address one,
                               Address two)
Checks whether 2 Addresses are on the same host


fileExists

public static boolean fileExists(java.lang.String fname)

parseCommaDelimitedLongs

public static long[] parseCommaDelimitedLongs(java.lang.String s)
Parses comma-delimited longs; e.g., 2000,4000,8000. Returns array of long, or null.


parseCommaDelimitedStrings

public static java.util.List<java.lang.String> parseCommaDelimitedStrings(java.lang.String l)
e.g. "bela,jeannette,michelle" --> List{"bela", "jeannette", "michelle"}


parseStringList

public static java.util.List<java.lang.String> parseStringList(java.lang.String l,
                                                               java.lang.String separator)

parseInt

public static int parseInt(java.util.Properties props,
                           java.lang.String property,
                           int defaultValue)

parseLong

public static long parseLong(java.util.Properties props,
                             java.lang.String property,
                             long defaultValue)

parseBoolean

public static boolean parseBoolean(java.util.Properties props,
                                   java.lang.String property,
                                   boolean defaultValue)

parseBindAddress

public static java.net.InetAddress parseBindAddress(java.util.Properties props,
                                                    java.lang.String property)
                                             throws java.net.UnknownHostException
Throws:
java.net.UnknownHostException

parseInterfaceList

public static java.util.List<java.net.NetworkInterface> parseInterfaceList(java.lang.String s)
                                                                    throws java.lang.Exception
Parameters:
s -
Returns:
List
Throws:
java.lang.Exception

print

public static java.lang.String print(java.util.List<java.net.NetworkInterface> interfaces)

shortName

public static java.lang.String shortName(java.lang.String hostname)

shortName

public static java.lang.String shortName(java.net.InetAddress hostname)

createServerSocket

public static java.net.ServerSocket createServerSocket(int start_port)
                                                throws java.io.IOException
Finds first available port starting at start_port and returns server socket

Throws:
java.io.IOException

createServerSocket

public static java.net.ServerSocket createServerSocket(java.net.InetAddress bind_addr,
                                                       int start_port)
                                                throws java.io.IOException
Throws:
java.io.IOException

createDatagramSocket

public static java.net.DatagramSocket createDatagramSocket(java.net.InetAddress addr,
                                                           int port)
                                                    throws java.lang.Exception
Creates a DatagramSocket bound to addr. If addr is null, socket won't be bound. If address is already in use, start_port will be incremented until a socket can be created.

Parameters:
addr - The InetAddress to which the socket should be bound. If null, the socket will not be bound.
port - The port which the socket should use. If 0, a random port will be used. If > 0, but port is already in use, it will be incremented until an unused port is found, or until MAX_PORT is reached.
Throws:
java.lang.Exception

createMulticastSocket

public static java.net.MulticastSocket createMulticastSocket(int port)
                                                      throws java.io.IOException
Throws:
java.io.IOException

createMulticastSocket

public static java.net.MulticastSocket createMulticastSocket(java.net.InetAddress mcast_addr,
                                                             int port,
                                                             org.apache.commons.logging.Log log)
                                                      throws java.io.IOException
Throws:
java.io.IOException

getBindAddress

public static java.net.InetAddress getBindAddress(java.util.Properties props)
                                           throws java.net.UnknownHostException,
                                                  java.net.SocketException
Returns the address of the interface to use defined by bind_addr and bind_interface

Parameters:
props -
Returns:
Throws:
java.net.UnknownHostException
java.net.SocketException

checkForLinux

public static boolean checkForLinux()

checkForSolaris

public static boolean checkForSolaris()

checkForWindows

public static boolean checkForWindows()

prompt

public static void prompt(java.lang.String s)

getJavaVersion

public static int getJavaVersion()

unmodifiableVector

public static <T> java.util.Vector<T> unmodifiableVector(java.util.Vector<? extends T> v)

memStats

public static java.lang.String memStats(boolean gc)

getFirstNonLoopbackAddress

public static java.net.InetAddress getFirstNonLoopbackAddress()
                                                       throws java.net.SocketException
Throws:
java.net.SocketException

getFirstNonLoopbackIPv6Address

public static java.net.InetAddress getFirstNonLoopbackIPv6Address()
                                                           throws java.net.SocketException
Throws:
java.net.SocketException

getAllAvailableInterfaces

public static java.util.List<java.net.NetworkInterface> getAllAvailableInterfaces()
                                                                           throws java.net.SocketException
Throws:
java.net.SocketException

getProperty

public static java.lang.String getProperty(java.lang.String[] system_props,
                                           java.util.Properties props,
                                           java.lang.String prop_name,
                                           boolean ignore_sysprops,
                                           java.lang.String default_value)
Returns a value associated wither with one or more system properties, or found in the props map

Parameters:
system_props -
props - List of properties read from the configuration file
prop_name - The name of the property, will be removed from props if found
ignore_sysprops - If true, system properties are not used and the values will only be retrieved from props (not system_props)
default_value - Used to return a default value if the properties or system properties didn't have the value
Returns:
The value, or null if not found

isBindAddressPropertyIgnored

public static boolean isBindAddressPropertyIgnored()

getMBeanServer

public static javax.management.MBeanServer getMBeanServer()

getProperty

public static java.lang.String getProperty(Protocol prot,
                                           java.lang.String prop_name)

main

public static void main(java.lang.String[] args)
                 throws java.lang.Exception
Throws:
java.lang.Exception

generateList

public static java.lang.String generateList(java.util.Collection c,
                                            java.lang.String separator)

substituteVariable

public static java.lang.String substituteVariable(java.lang.String val)
Replaces variables of ${var:default} with System.getProperty(var, default). If no variables are found, returns the same string, otherwise a copy of the string with variables substituted

Parameters:
val -
Returns:
A string with vars replaced, or the same string if no vars found

md5

public static java.lang.String md5(java.lang.String source)
Converts a java.lang.String in to a MD5 hashed String

Parameters:
source - the source String
Returns:
the MD5 hashed version of the string

sha

public static java.lang.String sha(java.lang.String source)
Converts a java.lang.String in to a SHA hashed String

Parameters:
source - the source String
Returns:
the MD5 hashed version of the string


Copyright © 1998-2008 Bela Ban. All Rights Reserved.