[Arakhnę-Dev] [322] * Move the Locale utility class from the SFC library to Arakhn?\195? \170 VMutil.

[ Thread Index | Date Index | More arakhne.org/dev Archives ]


Revision: 322
Author:   galland
Date:     2012-01-28 15:04:42 +0100 (Sat, 28 Jan 2012)
Log Message:
-----------
* Move the Locale utility class from the SFC library to Arakhn?\195?\170 VMutil.

Modified Paths:
--------------
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/AbstractOperatingSystemWrapper.java
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/Caller.java
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/ClassLoaderFinder.java
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/ClasspathUtil.java
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/DynamicURLClassLoader.java
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/ExternalizableResource.java
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/FileSystem.java
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/LibraryLoader.java
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/MACNumber.java
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/OperatingSystem.java
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/OperatingSystemDiskUtilWrapper.java
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/OperatingSystemIdentificationType.java
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/OperatingSystemInfo.java
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/OperatingSystemNativeWrapper.java
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/OperatingSystemUDevWrapper.java
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/OperatingSystemWrapper.java
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/ReflectionUtil.java
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/ResourceNotFoundException.java
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/Resources.java
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/ThreadServiceFinder.java
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/ThreadServiceProvider.java
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/URISchemeType.java
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/URLHandlerUtil.java
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/VMCommandLine.java
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/file/Handler.java
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/file/HandlerFactory.java
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/file/URLConnection.java
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/resource/Handler.java
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/resource/HandlerFactory.java
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/resource/URLConnection.java
    trunk/arakhneVmutils/java/src/main/resources/org/arakhne/vmutil/OperatingSystem.properties
    trunk/arakhneVmutils/java/src/main/resources/org/arakhne/vmutil/OperatingSystem_fr.properties
    trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/CallerTest.java
    trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/ClasspathUtilTest.java
    trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/FileSystemTest.java
    trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/ResourcesTest.java
    trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/VMCommandLineTest.java
    trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/file/URLConnectionTest.java
    trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/resource/URLConnectionTest.java
    trunk/pom.xml

Added Paths:
-----------
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/locale/
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/locale/Locale.java
    trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/locale/LocaleMessageFormat.java
    trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/locale/
    trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/locale/LocaleStub.java
    trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/locale/LocaleTest.java
    trunk/arakhneVmutils/java/src/test/resources/org/arakhne/vmutil/locale/
    trunk/arakhneVmutils/java/src/test/resources/org/arakhne/vmutil/locale/LocaleStub.properties
    trunk/arakhneVmutils/java/src/test/resources/org/arakhne/vmutil/locale/LocaleTest.properties

Modified: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/AbstractOperatingSystemWrapper.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/AbstractOperatingSystemWrapper.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/AbstractOperatingSystemWrapper.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
   * $Id$
  * 
- * Copyright (C) 2004-2009 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2004-2009 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/Caller.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/Caller.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/Caller.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
  * $Id$
  * 
- * Copyright (C) 2004-2008 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2004-2008 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/ClassLoaderFinder.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/ClassLoaderFinder.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/ClassLoaderFinder.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
  * $Id$
  * 
- * Copyright (C) 2004-2008 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2004-2008 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/ClasspathUtil.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/ClasspathUtil.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/ClasspathUtil.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
  * $Id$
  * 
- * Copyright (C) 2005-2010 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2005-2010 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/DynamicURLClassLoader.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/DynamicURLClassLoader.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/DynamicURLClassLoader.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
  * $Id$
  * 
- * Copyright (C) 2004-2008 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2004-2008 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/ExternalizableResource.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/ExternalizableResource.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/ExternalizableResource.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
  * $Id$
  * 
- * Copyright (C) 2005-2010 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2005-2010 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/FileSystem.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/FileSystem.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/FileSystem.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
  * $Id$
  * 
- * Copyright (C) 2004-2009 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2004-2009 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/LibraryLoader.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/LibraryLoader.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/LibraryLoader.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
  * $Id$
  * 
- * Copyright (C) 2004-2009 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2004-2009 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/MACNumber.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/MACNumber.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/MACNumber.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
  * $Id$
  * 
- * Copyright (C) 2005-2010 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2005-2010 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/OperatingSystem.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/OperatingSystem.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/OperatingSystem.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
   * $Id$
  * 
- * Copyright (C) 2004-2011 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2004-2012 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.
@@ -19,7 +21,7 @@
 
 package org.arakhne.vmutil;
 
-import java.util.ResourceBundle;
+import org.arakhne.vmutil.locale.Locale;
 
 /**
  * This is a list of supported operating system.  
@@ -328,8 +330,7 @@
 		
 		if (nativeWrapper==null) {
 			try {
-				ResourceBundle bundle = ResourceBundle.getBundle(OperatingSystem.class.getCanonicalName());
-				String errorMsg = bundle.getString("NATIVE_NOT_SUPPORTED"); //$NON-NLS-1$
+				String errorMsg = Locale.getString("NATIVE_NOT_SUPPORTED"); //$NON-NLS-1$
 				if (errorMsg!=null && !"".equals(errorMsg)) { //$NON-NLS-1$
 					System.err.println(errorMsg);
 				}

Modified: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/OperatingSystemDiskUtilWrapper.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/OperatingSystemDiskUtilWrapper.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/OperatingSystemDiskUtilWrapper.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
   * $Id$
  * 
- * Copyright (C) 2004-2009 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2004-2009 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/OperatingSystemIdentificationType.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/OperatingSystemIdentificationType.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/OperatingSystemIdentificationType.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
   * $Id$
  * 
- * Copyright (C) 2004-2011 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2004-2011 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/OperatingSystemInfo.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/OperatingSystemInfo.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/OperatingSystemInfo.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
  * $Id$
  * 
- * Copyright (C) 2009 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2009 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/OperatingSystemNativeWrapper.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/OperatingSystemNativeWrapper.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/OperatingSystemNativeWrapper.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
   * $Id$
  * 
- * Copyright (C) 2004-2009 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2004-2009 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/OperatingSystemUDevWrapper.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/OperatingSystemUDevWrapper.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/OperatingSystemUDevWrapper.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
   * $Id$
  * 
- * Copyright (C) 2004-2009 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2004-2009 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/OperatingSystemWrapper.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/OperatingSystemWrapper.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/OperatingSystemWrapper.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
   * $Id$
  * 
- * Copyright (C) 2004-2009 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2004-2009 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/ReflectionUtil.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/ReflectionUtil.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/ReflectionUtil.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
  * $Id$
  * 
- * Copyright (C) 2004-2009 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2004-2009 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/ResourceNotFoundException.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/ResourceNotFoundException.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/ResourceNotFoundException.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
  * $Id$
  * 
- * Copyright (C) 2010 Alexandre WILLAUME, Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2010 Alexandre WILLAUME, Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/Resources.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/Resources.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/Resources.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
  * $Id$
  * 
- * Copyright (C) 2004-2009 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2004-2009 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/ThreadServiceFinder.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/ThreadServiceFinder.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/ThreadServiceFinder.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
  * $Id$
  * 
- * Copyright (C) 2005-2010 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2005-2010 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/ThreadServiceProvider.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/ThreadServiceProvider.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/ThreadServiceProvider.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
  * $Id$
  * 
- * Copyright (C) 2005-2010 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2005-2010 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/URISchemeType.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/URISchemeType.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/URISchemeType.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
  * $Id$
  * 
- * Copyright (C) 2004-2009 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2004-2009 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/URLHandlerUtil.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/URLHandlerUtil.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/URLHandlerUtil.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
  * $Id$
  * 
- * Copyright (C) 2004-2009 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2004-2009 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/VMCommandLine.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/VMCommandLine.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/VMCommandLine.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
  * $Id$
  * 
- * Copyright (C) 2004-2009 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2004-2009 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/file/Handler.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/file/Handler.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/file/Handler.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
  * $Id$
  * 
- * Copyright (C) 2010 Alexandre WILLAUME, Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2010 Alexandre WILLAUME, Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/file/HandlerFactory.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/file/HandlerFactory.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/file/HandlerFactory.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
  * $Id$
  * 
- * Copyright (C) 2010 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2010 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/file/URLConnection.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/file/URLConnection.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/file/URLConnection.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
  * $Id$
  * 
- * Copyright (C) 2010 Alexandre WILLAUME, Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2010 Alexandre WILLAUME, Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Added: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/locale/Locale.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/locale/Locale.java	                        (rev 0)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/locale/Locale.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -0,0 +1,578 @@
+/* 
+ * $Id$
+ * 
+ * Copyright (c) 2005-10, Multiagent Team,
+ * Laboratoire Systemes et Transports,
+ * Universite de Technologie de Belfort-Montbeliard.
+ * All rights reserved.
+ *
+ * Copyright (C) 2012 Stephane GALLAND, Olivier LAMOTTE.
+ * 
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * 
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ * This program is free software; you can redistribute it and/or modify
+ */
+
+package org.arakhne.vmutil.locale;
+
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.nio.ByteBuffer;
+import java.nio.CharBuffer;
+import java.nio.charset.CharacterCodingException;
+import java.nio.charset.Charset;
+import java.nio.charset.CharsetDecoder;
+import java.util.List;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+import java.util.Map.Entry;
+
+import org.arakhne.vmutil.Caller;
+import org.arakhne.vmutil.ClassLoaderFinder;
+
+/**
+ * This utility class permits a easier use of localized strings.
+ * <code>Locale</code> provides a means to retreive
+ * messages in the default language. Use this to construct messages
+ * displayed for end users.
+ * <p>
+ * <code>Locale</code> takes a string from a properties resource, 
+ * then inserts the parameter strings into the extracted strings
+ * at the appropriate places.
+ * The pattern matching is proceeded with {@link LocaleMessageFormat}
+ * formatter. Note that <code>''</code> may represent a single quote
+ * in strings (see {@link LocaleMessageFormat} for details).
+ * 
+ * FIXME: Does java.text.Normalizer may replace decodeString functions?
+ *
+ * @author $Author: galland$
+ * @author $Author: lamotte$
+ * @version $FullVersion$
+ * @mavengroupid $GroupId$
+ * @mavenartifactid $ArtifactId$
+ * @since 6.4
+ */
+public class Locale {
+	
+	private static Class<?> detectResourceClass(Class<?> resource) {
+    	if (resource==null) {
+        	// Parameter value:
+        	// 0: is always Locale.class (ie. the caller of this PRIVATE function)
+        	// 1: is the third top of the trace stack ie, the first caller outside Locale.class
+    		return Caller.getCallerClass(1);
+    	}
+    	return resource;
+	}
+    
+    /**
+     * Replies the text that corresponds to the specified resource.
+     * <p>
+     * The <code>resourcePath</code> argument should be a fully 
+     * qualified class name. However, for compatibility with earlier 
+     * versions, Sun's Java SE Runtime Environments do not verify this,
+     * and so it is possible to access <code>PropertyResourceBundle</code>s
+     * by specifying a path name (using "/") instead of a fully 
+     * qualified class name (using ".").
+     * 
+     * @param resourcePath is the name (path) of the resource file, a fully qualified class name
+     * @param key is the name of the resource into the specified file
+     * @param defaultValue is the default value to replies if the resource does not contain the specified key. 
+     * @param params is the the list of parameters which will
+     * replaces the <code>#1</code>, <code>#2</code>... into the string.
+     * @return the text that corresponds to the specified resource
+     */
+    public static String getStringWithDefaultFrom(String resourcePath, String key, String defaultValue, Object... params) {
+        // This method try to use the plugin manager class loader
+        // if it exists, otherwhise, it use the default class loader        
+    	return getStringWithDefaultFrom(
+    			ClassLoaderFinder.findClassLoader(),
+    			resourcePath, key, defaultValue, params);
+    }
+
+    /**
+     * Replies the text that corresponds to the specified resource.
+     * <p>
+     * The <code>resourcePath</code> argument should be a fully 
+     * qualified class name. However, for compatibility with earlier 
+     * versions, Sun's Java SE Runtime Environments do not verify this,
+     * and so it is possible to access <code>PropertyResourceBundle</code>s
+     * by specifying a path name (using "/") instead of a fully 
+     * qualified class name (using ".").
+     * 
+     * @param classLoader is the class loader to use, a fully qualified class name
+     * @param resourcePath is the name (path) of the resource file
+     * @param key is the name of the resource into the specified file
+     * @param defaultValue is the default value to replies if the resource does not contain the specified key. 
+     * @param params is the the list of parameters which will
+     * replaces the <code>#1</code>, <code>#2</code>... into the string.
+     * @return the text that corresponds to the specified resource
+     */
+    public static String getStringWithDefaultFrom(ClassLoader classLoader, String resourcePath, String key, String defaultValue, Object... params) {
+
+        if (resourcePath == null) return defaultValue;
+        
+        // Get the resource file
+        ResourceBundle resource = null;
+        try {
+            resource = ResourceBundle.getBundle(resourcePath,
+            				java.util.Locale.getDefault(),
+            				classLoader);
+        }
+        catch (MissingResourceException exep) {
+            return defaultValue;
+        }
+        
+        // get the resource string
+        String result;
+        
+        try {
+            result = resource.getString(key);
+        }
+        catch (Exception e) {
+            return defaultValue;
+        }
+
+        // replace the \n and \r by a real new line character
+        result = result.replaceAll("[\\n\\r]","\n"); //$NON-NLS-1$ //$NON-NLS-2$
+        result = result.replaceAll("\\t","\t"); //$NON-NLS-1$ //$NON-NLS-2$
+        
+        // replace the parameter values
+        assert(params!=null);
+ 		return LocaleMessageFormat.format(result, params);
+    }
+
+    /**
+     * Replies the text that corresponds to the specified resource.
+     * <p>
+     * The <code>resourcePath</code> argument should be a fully 
+     * qualified class name. However, for compatibility with earlier 
+     * versions, Sun's Java SE Runtime Environments do not verify this,
+     * and so it is possible to access <code>PropertyResourceBundle</code>s
+     * by specifying a path name (using "/") instead of a fully 
+     * qualified class name (using ".").
+     * 
+     * @param resourcePath is the name (path) of the resource file, a fully qualified class name
+     * @param key is the name of the resource into the specified file
+     * @param params is the the list of parameters which will
+     * replaces the <code>#1</code>, <code>#2</code>... into the string.
+     * @return the text that corresponds to the specified resource
+     */
+    public static String getStringFrom(String resourcePath, String key, Object... params) {
+    	return getStringWithDefaultFrom(resourcePath, key, key, params);
+    }
+    
+    /**
+     * Replies the text that corresponds to the specified resource.
+     * <p>
+     * The <code>resourcePath</code> argument should be a fully 
+     * qualified class name. However, for compatibility with earlier 
+     * versions, Sun's Java SE Runtime Environments do not verify this,
+     * and so it is possible to access <code>PropertyResourceBundle</code>s
+     * by specifying a path name (using "/") instead of a fully 
+     * qualified class name (using ".").
+     *  
+     * @param classLoader is the classLoader to use.
+     * @param resourcePath is the name (path) of the resource file, a fully qualified class name
+     * @param key is the name of the resource into the specified file
+     * @param params is the the list of parameters which will
+     * replaces the <code>#1</code>, <code>#2</code>... into the string.
+     * @return the text that corresponds to the specified resource
+     */
+    public static String getStringFrom(ClassLoader classLoader, String resourcePath, String key, Object... params) {
+    	return getStringWithDefaultFrom(classLoader,resourcePath, key, key, params);
+    }
+
+    /**
+     * Replies the text that corresponds to the specified resource.
+     * 
+     * @param resource is the name of the resource file
+     * @param key is the name of the resource into the specified file
+     * @param params is the the list of parameters which will
+     * replaces the <code>#1</code>, <code>#2</code>... into the string.
+     * @return the text that corresponds to the specified resource
+     */
+    public static String getString(Class<?> resource, String key, Object... params) {
+    	Class<?> res = detectResourceClass(resource);
+    	return getString(ClassLoaderFinder.findClassLoader(),res,key,params);
+    }
+    
+    /**
+     * Replies the text that corresponds to the specified resource.
+     * 
+     * @param classLoader is the class loader to use.
+     * @param resource is the name of the resource file
+     * @param key is the name of the resource into the specified file
+     * @param params is the the list of parameters which will
+     * replaces the <code>#1</code>, <code>#2</code>... into the string.
+     * @return the text that corresponds to the specified resource
+     */
+    public static String getString(ClassLoader classLoader, Class<?> resource, String key, Object... params) {
+    	Class<?> res = detectResourceClass(resource);
+    	if (res==null) return key;
+    	String val = getStringWithDefaultFrom(classLoader,res.getCanonicalName(),key,null,params);
+    	while ((res!=null)&&(val==null)) {
+    		res = res.getSuperclass();
+    		if (res!=null) {
+    			val = getStringWithDefaultFrom(classLoader,res.getCanonicalName(),key,null,params);
+    		}
+    	}    	
+    	if (val==null) return key;
+    	return val;
+    }
+
+    /**
+     * Replies the text that corresponds to the specified resource.
+     * 
+     * @param resource is the name of the resource file
+     * @param key is the name of the resource into the specified file
+     * @param defaultValue is the default value to replies if the resource does not contain the specified key. 
+     * @param params is the the list of parameters which will
+     * replaces the <code>#1</code>, <code>#2</code>... into the string.
+     * @return the text that corresponds to the specified resource
+     */
+    public static String getStringWithDefault(Class<?> resource, String key, String defaultValue, Object... params) {
+    	Class<? >res = detectResourceClass(resource);
+    	return getStringWithDefault(ClassLoaderFinder.findClassLoader(),res,key,defaultValue,params);
+    }
+
+    /**
+     * Replies the text that corresponds to the specified resource.
+     * 
+     * @param classLoader is the class loader to use.
+     * @param resource is the name of the resource file
+     * @param key is the name of the resource into the specified file
+     * @param defaultValue is the default value to replies if the resource does not contain the specified key. 
+     * @param params is the the list of parameters which will
+     * replaces the <code>#1</code>, <code>#2</code>... into the string.
+     * @return the text that corresponds to the specified resource
+     */
+    public static String getStringWithDefault(ClassLoader classLoader, Class<?> resource, String key, String defaultValue, Object... params) {
+    	Class<?> res = detectResourceClass(resource);
+    	if (res==null) return defaultValue;
+    	String val = getStringWithDefaultFrom(classLoader,res.getCanonicalName(),key,null,params);
+    	while ((res!=null)&&(val==null)) {
+    		res = res.getSuperclass();
+    		if (res!=null) {
+    			val = getStringWithDefaultFrom(classLoader,res.getCanonicalName(),key,null,params);
+    		}
+    	}    	
+    	if (val==null) return defaultValue;
+    	return val;
+    }
+
+    /**
+     * Replies the text that corresponds to the specified resource.
+     * <p>
+     * This function assumes the classname of the caller as the
+     * resource provider. 
+     * 
+     * @param key is the name of the resource into the specified file
+     * @param params is the the list of parameters which will
+     * replaces the <code>#1</code>, <code>#2</code>... into the string.
+     * @return the text that corresponds to the specified resource
+     */
+    public static String getString(String key, Object... params) {
+    	Class<?> resource = detectResourceClass(null);
+    	return getString(ClassLoaderFinder.findClassLoader(),resource,key,params);
+    }
+    
+    /**
+     * Replies the text that corresponds to the specified resource.
+     * <p>
+     * This function assumes the classname of the caller as the
+     * resource provider. 
+     * 
+     * @param classLoader is the classLoader to use.
+     * @param key is the name of the resource into the specified file
+     * @param params is the the list of parameters which will
+     * replaces the <code>#1</code>, <code>#2</code>... into the string.
+     * @return the text that corresponds to the specified resource
+     */
+    public static String getString(ClassLoader classLoader, String key, Object... params) {
+    	Class<?> resource = detectResourceClass(null);
+    	return getString(classLoader,resource,key,params);
+    }
+
+    /**
+     * Replies the text that corresponds to the specified resource.
+     * 
+     * @param key is the name of the resource into the specified file
+     * @param defaultValue is the default value to replies if the resource does not contain the specified key. 
+     * @param params is the the list of parameters which will
+     * replaces the <code>#1</code>, <code>#2</code>... into the string.
+     * @return the text that corresponds to the specified resource
+     */
+    public static String getStringWithDefault(String key, String defaultValue, Object... params) {
+    	Class<?> resource = detectResourceClass(null);
+    	return getStringWithDefault(ClassLoaderFinder.findClassLoader(),resource,key,defaultValue,params);
+    }
+
+    /**
+     * Replies the text that corresponds to the specified resource.
+     * 
+     * @param classLoader is the class loader to use.
+     * @param key is the name of the resource into the specified file
+     * @param defaultValue is the default value to replies if the resource does not contain the specified key. 
+     * @param params is the the list of parameters which will
+     * replaces the <code>#1</code>, <code>#2</code>... into the string.
+     * @return the text that corresponds to the specified resource
+     */
+    public static String getStringWithDefault(ClassLoader classLoader, String key, String defaultValue, Object... params) {
+    	Class<?> resource = detectResourceClass(null);
+    	return getStringWithDefault(classLoader,resource,key,defaultValue,params);
+    }
+
+    /** Decode the specified array of bytes according to
+     * a charset selection. This function tries
+     * to decode a string from the given byte array
+     * with the following charsets (in preferred order):
+     * <ul>
+     * <li>the current charset returned by {@link Charset#defaultCharset()},</li>
+     * <li>OEM United States: IBM437,</li>
+     * <li>West European: ISO-8859-1,</li>
+     * <li>one of the charst returned by {@link Charset#availableCharsets()}.</li>
+     * </ul>
+     * <p>
+     * The IBM437 charset was added to support several specific files (Dbase files)
+     * generated from a GIS.
+     * 
+     * @param bytes is the array of bytes to decode.
+     * @return the decoded string with the appropriate charset set.
+     */
+    public static String decodeString(byte[] bytes) {
+    	Charset default_charset = Charset.defaultCharset();
+    	Charset west_european = Charset.forName("ISO-8859-1"); //$NON-NLS-1$
+    	Charset utf = Charset.forName("UTF-8"); //$NON-NLS-1$
+    	
+    	String refBuffer = new String(bytes);
+    	
+		CharBuffer buffer = decodeString(bytes,default_charset,refBuffer.length());
+
+		if ((buffer==null)&&(!default_charset.equals(west_european))) {
+			buffer = decodeString(bytes,west_european,refBuffer.length());
+		}
+    	
+		if ((buffer==null)&&(!default_charset.equals(utf))) {
+			buffer = decodeString(bytes,utf,refBuffer.length());
+		}
+
+		if (buffer==null) {
+    		// Decode until one of the available charset replied a value
+	    	for (Charset charset : Charset.availableCharsets().values()) {
+				buffer = decodeString(bytes,charset,refBuffer.length());
+				if (buffer!=null) break;
+	    	}
+    	}
+    	// Use the default encoding
+    	if (buffer==null) return refBuffer;
+    	return buffer.toString();
+    }
+   
+    /** Decode the specified array of bytes with the specified charset.
+     * 
+     * @param bytes is the array of bytes to decode.
+     * @param charset is the charset to use for decoding
+     * @param referenceLength is the length of the attempted result. If negative, this parameter is ignored.
+     * @return the decoded string with the appropriate charset set,
+     * or <code>null</code> if the specified charset cannot be
+     * used to decode all the characters inside the byte array.
+     */
+    private static CharBuffer decodeString(byte[] bytes, Charset charset, int referenceLength) {
+    	try {
+    		Charset autodetected_charset = charset;
+        	CharsetDecoder decoder = charset.newDecoder();
+			CharBuffer buffer = decoder.decode(ByteBuffer.wrap(bytes));
+			if ((decoder.isAutoDetecting())&&
+				(decoder.isCharsetDetected())) {
+				autodetected_charset = decoder.detectedCharset();
+				if (charset.contains(autodetected_charset)) {
+					buffer.position(0);
+					if ((referenceLength>=0)&&(buffer.remaining()==referenceLength))
+						return buffer;
+					return null;
+				}
+			}
+			// Apply a proprietaty detection
+			buffer.position(0);
+			char c;
+			int type;
+			while (buffer.hasRemaining()) {
+				c = buffer.get();
+				type = Character.getType(c);
+	        	switch(type) {
+	        	case Character.UNASSIGNED:
+	        	case Character.CONTROL:
+	        	case Character.FORMAT:
+	        	case Character.PRIVATE_USE:
+	        	case Character.SURROGATE:
+		        	// Character not supported?
+	        		return null;
+	        	default:
+	        	}
+			}
+			buffer.position(0);
+			if ((referenceLength>=0)&&(buffer.remaining()==referenceLength))
+				return buffer;
+		}
+    	catch (CharacterCodingException e) {
+			//
+		}
+    	return null;
+    }
+    
+    /** Decode the bytes from the specified input stream
+     * according to a charset selection. This function tries
+     * to decode a string from the given byte array
+     * with the following charsets (in preferred order):
+     * <ul>
+     * <li>the current charset returned by {@link Charset#defaultCharset()},</li>
+     * <li>OEM United States: IBM437,</li>
+     * <li>West European: ISO-8859-1,</li>
+     * <li>one of the charst returned by {@link Charset#availableCharsets()}.</li>
+     * </ul>
+     * <p>
+     * The IBM437 charset was added to support several specific files (Dbase files)
+     * generated from a GIS.
+     * 
+     * @param stream is the stream to decode.
+     * @return the decoded string with the appropriate charset set.
+     * @throws IOException 
+     */
+    public static String decodeString(InputStream stream) throws IOException {
+    	byte[] complete_buffer = new byte[0];
+    	byte[] buffer = new byte[2048];
+    	int red;
+    	
+    	while ((red=stream.read(buffer))>0) {
+    		byte[] tmp = new byte[complete_buffer.length+red];
+    		System.arraycopy(complete_buffer,0,tmp,0,complete_buffer.length);
+    		System.arraycopy(buffer,0,tmp,complete_buffer.length,red);
+    		complete_buffer = tmp;
+    		tmp = null;
+    	}
+    	
+    	String s = decodeString(complete_buffer);
+    	complete_buffer = null;
+    	buffer = null;
+    	return s;
+    }
+
+    /** Decode the bytes from the specified input stream
+     * according to a charset selection. This function tries
+     * to decode a string from the given byte array
+     * with the following charsets (in preferred order):
+     * <ul>
+     * <li>the current charset returned by {@link Charset#defaultCharset()},</li>
+     * <li>OEM United States: IBM437,</li>
+     * <li>West European: ISO-8859-1,</li>
+     * <li>one of the charst returned by {@link Charset#availableCharsets()}.</li>
+     * </ul>
+     * <p>
+     * The IBM437 charset was added to support several specific files (Dbase files)
+     * generated from a GIS.
+     * <p>
+     * This function read the input stream line by line.
+     * 
+     * @param stream is the stream to decode.
+     * @param lineArray is the array of lines to fill
+     * @return <code>true</code> is the decoding was successful,
+     * otherwhise <code>false</code>
+     * @throws IOException 
+     */
+    public static boolean decodeString(InputStream stream, List<String> lineArray) throws IOException {
+    	// Read the complete file
+    	byte[] complete_buffer = new byte[0];
+    	byte[] buffer = new byte[2048];
+    	int red;
+    	
+    	while ((red=stream.read(buffer))>0) {
+    		byte[] tmp = new byte[complete_buffer.length+red];
+    		System.arraycopy(complete_buffer,0,tmp,0,complete_buffer.length);
+    		System.arraycopy(buffer,0,tmp,complete_buffer.length,red);
+    		complete_buffer = tmp;
+    		tmp = null;
+    	}
+
+    	buffer = null;
+    	
+    	// Get the two default charsets
+    	//Charset oem_us = Charset.forName("IBM437"); //$NON-NLS-1$
+    	Charset west_european = Charset.forName("ISO-8859-1"); //$NON-NLS-1$
+    	Charset default_charset = Charset.defaultCharset();
+    	
+    	// Decode with the current charset
+    	boolean ok = decodeString(new ByteArrayInputStream(complete_buffer),lineArray,default_charset);
+    	
+    	// Decode with the default oem US charset
+    	/*if ((!ok)&&(!default_charset.equals(oem_us))) {
+    		ok = decodeString(new ByteArrayInputStream(complete_buffer),lineArray,oem_us); 
+    	}*/
+
+    	// Decode with the default west european charset
+    	if ((!ok)&&(!default_charset.equals(west_european))) {
+    		ok = decodeString(new ByteArrayInputStream(complete_buffer),lineArray,west_european); 
+    	}
+    	
+		// Decode until one of the available charset replied a value
+    	if (!ok) {
+	    	for (Entry<String,Charset> charset : Charset.availableCharsets().entrySet()) {
+				if (decodeString(new ByteArrayInputStream(complete_buffer),lineArray,charset.getValue())) {
+					complete_buffer = null;
+					return true;
+				}
+			}
+    	}
+
+		complete_buffer = null;
+    	return ok;
+    }
+
+    /** Decode the bytes from the specified input stream
+     * according to a charset selection. This function tries
+     * to decode a string from the given byte array
+     * with the following charsets (in preferred order):
+     * <p>
+     * This function read the input stream line by line.
+     * 
+     * @param stream is the stream to decode.
+     * @param lineArray is the array of lines to fill.
+     * @param charset is the charset to use.
+     * @return <code>true</code> is the decoding was successful,
+     * otherwhise <code>false</code>
+     * @throws IOException 
+     */
+    private static boolean decodeString(InputStream stream, List<String> lineArray, Charset charset) throws IOException {
+    	try {
+    		BufferedReader breader = new BufferedReader(
+    				new InputStreamReader(stream,charset.newDecoder()));
+    		
+    		lineArray.clear();
+    		
+    		String line;
+    		while ((line=breader.readLine())!=null) {
+    			lineArray.add(line);
+    		}
+    		
+    		return true;
+    	}
+    	catch(CharacterCodingException _) {
+    		//
+    	}
+    	return false;
+    }
+    
+}
\ No newline at end of file


Property changes on: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/locale/Locale.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/locale/LocaleMessageFormat.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/locale/LocaleMessageFormat.java	                        (rev 0)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/locale/LocaleMessageFormat.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -0,0 +1,326 @@
+/* 
+ * $Id$
+ * 
+ * Copyright (c) 2011, Multiagent Team,
+ * Laboratoire Systemes et Transports,
+ * Universite de Technologie de Belfort-Montbeliard.
+ * All rights reserved.
+ *
+ * Copyright (C) 2012 Stephane GALLAND, Olivier LAMOTTE.
+ * 
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * 
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ * This program is free software; you can redistribute it and/or modify
+ */
+
+package org.arakhne.vmutil.locale;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.math.RoundingMode;
+import java.text.DecimalFormat;
+import java.text.FieldPosition;
+import java.text.Format;
+import java.text.MessageFormat;
+import java.text.NumberFormat;
+import java.text.ParsePosition;
+import java.util.Locale;
+
+/**
+ * <code>LocaleMessageFormat</code> provides a means to produce concatenated
+ * messages in a language-neutral way in the {@link Locale}
+ * utility class.
+ * <p>
+ * <code>LocaleMessageFormat</code> takes a set of objects, formats them, then
+ * inserts the formatted strings into the pattern at the appropriate places.
+ * <p>
+ * In addition to the standard JDK {@link MessageFormat}, <code>LocaleMessageFormat</code>
+ * provides the <code>FormatStyle</code> named "raw". This new style does not try
+ * to format the given data according to the locale. It simply put the 
+ * not-formatted data in the result.
+ * 
+ * @author $Author: galland$
+ * @version $FullVersion$
+ * @mavengroupid $GroupId$
+ * @mavenartifactid $ArtifactId$
+ * @since 6.4
+ */
+public class LocaleMessageFormat extends MessageFormat {
+
+	private static final long serialVersionUID = 6637824487735941754L;
+	
+	/** String that corresponds to the raw format style.
+	 */
+	public static final String RAW_FORMAT_STYLE = "raw"; //$NON-NLS-1$
+
+	/**
+	 * Creates a LocaleMessageFormat with the given pattern and uses it
+	 * to format the given arguments. This is equivalent to
+	 * <blockquote>
+	 *     <code>(new {@link #LocaleMessageFormat(String) MessageFormat}(pattern)).{@link #format(java.lang.Object[], java.lang.StringBuffer, java.text.FieldPosition) format}(arguments, new StringBuffer(), null).toString()</code>
+	 * </blockquote>
+	 *
+	 * @exception IllegalArgumentException if the pattern is invalid,
+	 *            or if an argument in the <code>arguments</code> array
+	 *            is not of the type expected by the format element(s)
+	 *            that use it.
+	 */
+	public static String format(String pattern, Object ... arguments) {
+		LocaleMessageFormat temp = new LocaleMessageFormat(pattern);
+		return temp.format(arguments);
+	}
+
+	/**
+	 * @param pattern the pattern for this message format
+	 * @exception IllegalArgumentException if the pattern is invalid
+	 */
+	public LocaleMessageFormat(String pattern) {
+		super(pattern);
+	}
+
+	/**
+	 * @param pattern the pattern for this message format
+	 * @param locale the locale for this message format
+	 * @exception IllegalArgumentException if the pattern is invalid
+	 */
+	public LocaleMessageFormat(String pattern, Locale locale) {
+		super(pattern, locale);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public void applyPattern(String pattern) {
+		super.applyPattern(pattern);
+		Format[] formats = getFormats();
+		boolean changed = false;
+		for(int i=0; i<formats.length; ++i) {
+			if (formats[i] instanceof DecimalFormat) {
+				DecimalFormat df = (DecimalFormat)formats[i];
+				if (RAW_FORMAT_STYLE.equalsIgnoreCase(df.getPositivePrefix())) {
+					formats[i] = new RawNumberFormat(
+							pattern,
+							df.getGroupingSize(),
+							df.getMinimumIntegerDigits(),
+							df.getMaximumIntegerDigits(),
+							df.getMinimumFractionDigits(),
+							df.getMaximumFractionDigits(),
+							df.getRoundingMode());
+					changed = true;
+				}
+			}
+		}
+		if (changed) {
+			setFormats(formats);
+		}
+	}
+
+	/**
+	 * @author $Author: sgalland$
+	 * @version $FullVersion$
+	 * @mavengroupid $GroupId$
+	 * @mavenartifactid $ArtifactId$
+	 */
+	private static class RawNumberFormat extends NumberFormat {
+
+		private static final long serialVersionUID = 7091190928835741939L;
+
+		private static final char RAW_NEGATIVE_SIGN = '-';
+		private static final char RAW_DECIMAL_SEPARATOR = '.';
+		private static final char RAW_ZERO_DIGIT = '0';
+		
+		private final boolean isUnformatted;
+		private final RoundingMode roundingMode;
+		
+		/**
+		 * @param pattern
+		 * @param groupSize
+		 * @param minInt
+		 * @param maxInt
+		 * @param minFrac
+		 * @param maxFrac
+		 * @param roundingMode
+		 */
+		public RawNumberFormat(String pattern, int groupSize, int minInt, int maxInt, int minFrac, int maxFrac, RoundingMode roundingMode) {
+			super();
+			this.roundingMode = roundingMode;
+			this.isUnformatted = (groupSize==0) && (minInt==0) && (maxInt==Integer.MAX_VALUE) && (minFrac==0) && (maxFrac==0);
+			setMinimumIntegerDigits(minInt);
+			setMaximumIntegerDigits(maxInt);
+			setMinimumFractionDigits(minFrac);
+			setMaximumFractionDigits(maxFrac);
+		}
+		
+		/**
+		 * {@inheritDoc}
+		 */
+		@Override
+		public StringBuffer format(Object number, StringBuffer toAppendTo, FieldPosition pos) {
+			if (number instanceof BigInteger) {
+				return format((BigInteger)number, toAppendTo, pos);
+			}
+			if (number instanceof BigDecimal) {
+				return format((BigDecimal)number, toAppendTo, pos);
+			}
+			return super.format(number, toAppendTo, pos);
+		}
+		
+		private void formatInteger(boolean negative, String number, StringBuffer toAppendTo) {
+			assert(!this.isUnformatted);
+			
+			if (negative) toAppendTo.append(RAW_NEGATIVE_SIGN);
+			
+			for(int c=getMinimumIntegerDigits()-number.length(); c>0; --c) {
+				toAppendTo.append(RAW_ZERO_DIGIT);
+			}
+			
+			toAppendTo.append(number);
+
+			int n = getMinimumFractionDigits();
+			if (n>0) {
+				toAppendTo.append(RAW_DECIMAL_SEPARATOR);
+				for(int c=0; c<n; ++c) {
+					toAppendTo.append(RAW_ZERO_DIGIT);
+				}
+			}
+		}
+	    
+		private void formatDecimal(BigDecimal number, StringBuffer toAppendTo) {
+			assert(!this.isUnformatted);
+			
+			boolean negative = (number.compareTo(BigDecimal.ZERO)<0);
+			int minInt = getMinimumIntegerDigits();
+			int minFrac = getMinimumFractionDigits();
+			int maxFrac = getMaximumFractionDigits();
+			
+			BigDecimal n = number.setScale(maxFrac, this.roundingMode);
+			
+			String rawString = n.abs().toPlainString();
+			int decimalPos = rawString.indexOf(RAW_DECIMAL_SEPARATOR);
+			String integer, decimal;
+			if (decimalPos<0) {
+				integer = rawString;
+				decimal = ""; //$NON-NLS-1$
+			}
+			else {
+				integer = rawString.substring(0, decimalPos);
+				decimal = rawString.substring(decimalPos+1);
+			}
+			
+			if (negative) toAppendTo.append(RAW_NEGATIVE_SIGN);
+			
+			int c = minInt - integer.length();
+			while (c>0) {
+				toAppendTo.append(RAW_ZERO_DIGIT);
+				--c;
+			}
+			
+			toAppendTo.append(integer);
+			
+			if (minFrac>0 || (maxFrac>0 && decimal.length()>0)) {
+				toAppendTo.append(RAW_DECIMAL_SEPARATOR);
+				toAppendTo.append(decimal);
+				
+				c = minFrac - decimal.length();
+				while (c>0) {
+					toAppendTo.append(RAW_ZERO_DIGIT);
+					--c;
+				}
+			}
+		}
+		
+		/**
+		 * Specialization of format.
+		 * 
+		 * @param number is the number to format.
+		 * @param toAppendTo is the string buffer into which the formatting result may be appended.
+		 * @param pos is on input: an alignment field, if desired. On output: the offsets of 
+		 * 	the alignment field.
+		 * @return the value passed in as <code>toAppendTo</code>
+		 * @throws ArithmeticException if rounding is needed with rounding
+		 *                   mode being set to RoundingMode.UNNECESSARY
+		 * @see java.text.Format#format
+		 */
+		public StringBuffer format(BigInteger number, StringBuffer toAppendTo, FieldPosition pos) {
+			if (this.isUnformatted) {
+				toAppendTo.append(number.toString());
+			}
+			else {
+				formatInteger(number.signum()<0, number.abs().toString(), toAppendTo);
+			}
+			return toAppendTo;
+		}
+
+		/**
+		 * Specialization of format.
+		 * 
+		 * @param number is the number to format.
+		 * @param toAppendTo is the string buffer into which the formatting result may be appended.
+		 * @param pos is on input: an alignment field, if desired. On output: the offsets of 
+		 * 	the alignment field.
+		 * @return the value passed in as <code>toAppendTo</code>
+		 * @throws ArithmeticException if rounding is needed with rounding
+		 *                   mode being set to RoundingMode.UNNECESSARY
+		 * @see java.text.Format#format
+		 */
+		public StringBuffer format(BigDecimal number, StringBuffer toAppendTo, FieldPosition pos) {
+			if (this.isUnformatted) {
+				toAppendTo.append(number.toPlainString());
+			}
+			else {
+				formatDecimal(number, toAppendTo);
+			}
+			return toAppendTo;
+		}
+
+		/**
+		 * {@inheritDoc}
+		 */
+		@Override
+		public StringBuffer format(double number, StringBuffer toAppendTo, FieldPosition pos) {
+			if (this.isUnformatted) {
+				toAppendTo.append(Double.toString(number));
+			}
+			else {
+				formatDecimal(new BigDecimal(number), toAppendTo);
+			}
+			return toAppendTo;
+		}
+
+		/**
+		 * {@inheritDoc}
+		 */
+		@Override
+		public StringBuffer format(long number, StringBuffer toAppendTo, FieldPosition pos) {
+			if (this.isUnformatted) {
+				toAppendTo.append(Long.toString(number));
+			}
+			else {
+				formatInteger(number<0, Long.toString(Math.abs(number)), toAppendTo);
+			}
+			return toAppendTo;
+		}
+
+		/**
+		 * {@inheritDoc}
+		 */
+		@Override
+		public Number parse(String source, ParsePosition parsePosition) {
+			throw new UnsupportedOperationException();
+		}
+
+	} // class RawNumberFormat
+
+}
\ No newline at end of file


Property changes on: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/locale/LocaleMessageFormat.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Modified: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/resource/Handler.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/resource/Handler.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/resource/Handler.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
  * $Id$
  * 
- * Copyright (C) 2010 Alexandre WILLAUME, Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2010 Alexandre WILLAUME, Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/resource/HandlerFactory.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/resource/HandlerFactory.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/resource/HandlerFactory.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
  * $Id$
  * 
- * Copyright (C) 2010 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2010 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/resource/URLConnection.java
===================================================================
--- trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/resource/URLConnection.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/java/org/arakhne/vmutil/resource/URLConnection.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
  * $Id$
  * 
- * Copyright (C) 2010 Alexandre WILLAUME, Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2010 Alexandre WILLAUME, Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/main/resources/org/arakhne/vmutil/OperatingSystem.properties
===================================================================
--- trunk/arakhneVmutils/java/src/main/resources/org/arakhne/vmutil/OperatingSystem.properties	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/resources/org/arakhne/vmutil/OperatingSystem.properties	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,6 +1,8 @@
 # $Id$
 # 
-# Copyright (C) 2011 Stephane GALLANDrary is free software; you can redistribute it and/or
+# Copyright (C) 2011 Stephane GALLAND.
+#
+# This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
 # version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/main/resources/org/arakhne/vmutil/OperatingSystem_fr.properties
===================================================================
--- trunk/arakhneVmutils/java/src/main/resources/org/arakhne/vmutil/OperatingSystem_fr.properties	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/main/resources/org/arakhne/vmutil/OperatingSystem_fr.properties	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,6 +1,8 @@
 # $Id$
 # 
-# Copyright (C) 2011 Stephane GALLANDrary is free software; you can redistribute it and/or
+# Copyright (C) 2011 Stephane GALLAND.
+#
+# This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
 # version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/CallerTest.java
===================================================================
--- trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/CallerTest.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/CallerTest.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,6 +1,8 @@
 /* $Id$
  * 
- * Copyright (C) 2007-09 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2007-09 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/ClasspathUtilTest.java
===================================================================
--- trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/ClasspathUtilTest.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/ClasspathUtilTest.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,6 +1,8 @@
 /* $Id$
  * 
- * Copyright (C) 2007-09 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2007-09 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/FileSystemTest.java
===================================================================
--- trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/FileSystemTest.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/FileSystemTest.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,6 +1,8 @@
 /* $Id$
  * 
- * Copyright (C) 2007-09 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2007-09 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/ResourcesTest.java
===================================================================
--- trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/ResourcesTest.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/ResourcesTest.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,6 +1,8 @@
 /* $Id$
  * 
- * Copyright (C) 2007-09 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2007-09 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/VMCommandLineTest.java
===================================================================
--- trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/VMCommandLineTest.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/VMCommandLineTest.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,6 +1,8 @@
 /* $Id$
  * 
- * Copyright (C) 2007-09 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2007-09 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Modified: trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/file/URLConnectionTest.java
===================================================================
--- trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/file/URLConnectionTest.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/file/URLConnectionTest.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
  * $Id$
  * 
- * Copyright (C) 2010 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2010 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Added: trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/locale/LocaleStub.java
===================================================================
--- trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/locale/LocaleStub.java	                        (rev 0)
+++ trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/locale/LocaleStub.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -0,0 +1,43 @@
+/* 
+ * $Id$
+ * 
+ * Copyright (c) 2005-10, Multiagent Team,
+ * Laboratoire Systemes et Transports,
+ * Universite de Technologie de Belfort-Montbeliard.
+ * All rights reserved.
+ *
+ * Copyright (C) 2012 Stephane GALLAND, Olivier LAMOTTE.
+ * 
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * 
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ * This program is free software; you can redistribute it and/or modify
+ */
+
+package org.arakhne.vmutil.locale;
+
+/**
+ * @author $Author: galland$
+ * @version $FullVersion$
+ * @mavengroupid $GroupId$
+ * @mavenartifactid $ArtifactId$
+ */
+class LocaleStub {
+
+	/**
+	 */
+	public LocaleStub() {
+		//
+	}
+	
+}
\ No newline at end of file


Property changes on: trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/locale/LocaleStub.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/locale/LocaleTest.java
===================================================================
--- trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/locale/LocaleTest.java	                        (rev 0)
+++ trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/locale/LocaleTest.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -0,0 +1,890 @@
+/* 
+ * $Id$
+ * 
+ * Copyright (c) 2005-10, Multiagent Team,
+ * Laboratoire Systemes et Transports,
+ * Universite de Technologie de Belfort-Montbeliard.
+ * All rights reserved.
+ *
+ * Copyright (C) 2012 Stephane GALLAND, Olivier LAMOTTE.
+ * 
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * 
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ * This program is free software; you can redistribute it and/or modify
+ */
+
+package org.arakhne.vmutil.locale;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.text.MessageFormat;
+
+import junit.framework.TestCase;
+
+/**
+ * @author $Author: galland$
+ * @version $FullVersion$
+ * @mavengroupid $GroupId$
+ * @mavenartifactid $ArtifactId$
+ */
+public class LocaleTest extends TestCase {
+
+	private final LocaleStub tmp = new LocaleStub();
+	private static final String RESOURCE1 = "org/arakhne/vmutil/locale/LocaleTest"; //$NON-NLS-1$
+	private static final String RESOURCE2 = "org/arakhne/vmutil/locale/LocaleStub"; //$NON-NLS-1$
+	private static final String NOKEY = "NOKEY"; //$NON-NLS-1$
+	private static final String KEY1 = "ONE"; //$NON-NLS-1$
+	private static final String KEY2 = "TWO"; //$NON-NLS-1$
+	private static final String KEY3 = "THREE"; //$NON-NLS-1$
+	private static final String DEFAULT = "DEFAULT"; //$NON-NLS-1$
+	private static final String P1 = "P1"; //$NON-NLS-1$
+	private static final String P2 = "P2"; //$NON-NLS-1$
+	private static final String P3 = "P3"; //$NON-NLS-1$
+	
+    /**
+     */
+    public void testGetStringWithDefaultFromStringStringStringStringArray() {
+    	assert(this.tmp!=null);
+    	assertEquals(
+    			DEFAULT,
+    			Locale.getStringWithDefaultFrom(RESOURCE1,NOKEY,DEFAULT,P1,P2,P3));
+    	assertEquals(
+    			"ABC P1 'P2' {2}", //$NON-NLS-1$
+    			Locale.getStringWithDefaultFrom(RESOURCE1,KEY1,DEFAULT,P1,P2,P3));
+    	assertEquals(
+    			"ABC P3 'P1' {2}", //$NON-NLS-1$
+    			Locale.getStringWithDefaultFrom(RESOURCE1,KEY1,DEFAULT,P3,P1,P2));
+    	
+    	assertEquals(
+    			DEFAULT,
+    			Locale.getStringWithDefaultFrom(RESOURCE2,NOKEY,DEFAULT,P1,P2,P3));
+    	assertEquals(
+    			"DEF P1 'P2' {2}", //$NON-NLS-1$
+    			Locale.getStringWithDefaultFrom(RESOURCE2,KEY1,DEFAULT,P1,P2,P3));
+    	assertEquals(
+    			"DEF P3 'P1' {2}", //$NON-NLS-1$
+    			Locale.getStringWithDefaultFrom(RESOURCE2,KEY1,DEFAULT,P3,P1,P2));
+    }
+
+    /**
+     */
+    public void testGetStringWithDefaultFromClassLoaderStringStringStringStringArray() {
+    	ClassLoader l = LocaleTest.class.getClassLoader();
+    	assertEquals(
+    			DEFAULT,
+    			Locale.getStringWithDefaultFrom(l, RESOURCE1,NOKEY,DEFAULT,P1,P2,P3));
+    	assertEquals(
+    			"ABC P1 'P2' {2}", //$NON-NLS-1$
+    			Locale.getStringWithDefaultFrom(l, RESOURCE1,KEY1,DEFAULT,P1,P2,P3));
+    	assertEquals(
+    			"ABC P3 'P1' {2}", //$NON-NLS-1$
+    			Locale.getStringWithDefaultFrom(l, RESOURCE1,KEY1,DEFAULT,P3,P1,P2));
+    	
+    	assertEquals(
+    			DEFAULT,
+    			Locale.getStringWithDefaultFrom(l, RESOURCE2,NOKEY,DEFAULT,P1,P2,P3));
+    	assertEquals(
+    			"DEF P1 'P2' {2}", //$NON-NLS-1$
+    			Locale.getStringWithDefaultFrom(l, RESOURCE2,KEY1,DEFAULT,P1,P2,P3));
+    	assertEquals(
+    			"DEF P3 'P1' {2}", //$NON-NLS-1$
+    			Locale.getStringWithDefaultFrom(l, RESOURCE2,KEY1,DEFAULT,P3,P1,P2));
+    }
+
+    /**
+     */
+    public void testGetStringFromStringStringStringArray() {
+    	assertEquals(NOKEY,
+    			Locale.getStringFrom(RESOURCE1,NOKEY,P1,P2,P3));
+    	assertEquals(
+    			"ABC P1 'P2' {2}", //$NON-NLS-1$
+    			Locale.getStringFrom(RESOURCE1,KEY1,P1,P2,P3));
+    	assertEquals(
+    			"ABC P3 'P1' {2}", //$NON-NLS-1$
+    			Locale.getStringFrom(RESOURCE1,KEY1,P3,P1,P2));
+    	
+    	assertEquals(
+    			NOKEY,
+    			Locale.getStringFrom(RESOURCE2,NOKEY,P1,P2,P3));
+    	assertEquals(
+    			"DEF P1 'P2' {2}", //$NON-NLS-1$
+    			Locale.getStringFrom(RESOURCE2,KEY1,P1,P2,P3));
+    	assertEquals(
+    			"DEF P3 'P1' {2}", //$NON-NLS-1$
+    			Locale.getStringFrom(RESOURCE2,KEY1,P3,P1,P2));
+    }
+    
+    /**
+     */
+    public void testGetStringFromClassLoaderStringStringStringArray() {
+    	ClassLoader l = LocaleTest.class.getClassLoader();
+    	
+    	assertEquals(NOKEY,
+    			Locale.getStringFrom(l, RESOURCE1,NOKEY,P1,P2,P3));
+    	assertEquals(
+    			"ABC P1 'P2' {2}", //$NON-NLS-1$
+    			Locale.getStringFrom(l, RESOURCE1,KEY1,P1,P2,P3));
+    	assertEquals(
+    			"ABC P3 'P1' {2}", //$NON-NLS-1$
+    			Locale.getStringFrom(l, RESOURCE1,KEY1,P3,P1,P2));
+    	
+    	assertEquals(
+    			NOKEY,
+    			Locale.getStringFrom(l, RESOURCE2,NOKEY,P1,P2,P3));
+    	assertEquals(
+    			"DEF P1 'P2' {2}", //$NON-NLS-1$
+    			Locale.getStringFrom(l, RESOURCE2,KEY1,P1,P2,P3));
+    	assertEquals(
+    			"DEF P3 'P1' {2}", //$NON-NLS-1$
+    			Locale.getStringFrom(l, RESOURCE2,KEY1,P3,P1,P2));
+    }
+
+    /**
+     */
+    public void testGetStringClassStringStringArray() {
+    	assertEquals(NOKEY,
+    			Locale.getString(LocaleTest.class,NOKEY,P1,P2,P3));
+    	assertEquals(
+    			"ABC P1 'P2' {2}", //$NON-NLS-1$
+    			Locale.getString(LocaleTest.class,KEY1,P1,P2,P3));
+    	assertEquals(
+    			"ABC P3 'P1' {2}", //$NON-NLS-1$
+    			Locale.getString(LocaleTest.class,KEY1,P3,P1,P2));
+    	
+    	assertEquals(
+    			NOKEY,
+    			Locale.getString(LocaleStub.class,NOKEY,P1,P2,P3));
+    	assertEquals(
+    			"DEF P1 'P2' {2}", //$NON-NLS-1$
+    			Locale.getString(LocaleStub.class,KEY1,P1,P2,P3));
+    	assertEquals(
+    			"DEF P3 'P1' {2}", //$NON-NLS-1$
+    			Locale.getString(LocaleStub.class,KEY1,P3,P1,P2));
+    }
+    
+    /**
+     */
+    public void testGetStringClassLoaderClassStringStringArray() {
+    	ClassLoader l = LocaleTest.class.getClassLoader();
+    	
+    	assertEquals(NOKEY,
+    			Locale.getString(l, LocaleTest.class,NOKEY,P1,P2,P3));
+    	assertEquals(
+    			"ABC P1 'P2' {2}", //$NON-NLS-1$
+    			Locale.getString(l, LocaleTest.class,KEY1,P1,P2,P3));
+    	assertEquals(
+    			"ABC P3 'P1' {2}", //$NON-NLS-1$
+    			Locale.getString(l, LocaleTest.class,KEY1,P3,P1,P2));
+    	
+    	assertEquals(
+    			NOKEY,
+    			Locale.getString(l, LocaleStub.class,NOKEY,P1,P2,P3));
+    	assertEquals(
+    			"DEF P1 'P2' {2}", //$NON-NLS-1$
+    			Locale.getString(l, LocaleStub.class,KEY1,P1,P2,P3));
+    	assertEquals(
+    			"DEF P3 'P1' {2}", //$NON-NLS-1$
+    			Locale.getString(l, LocaleStub.class,KEY1,P3,P1,P2));
+    }
+
+    /**
+     */
+    public void testGetStringWithDefaultClassStringStringStringArray() {
+    	assertEquals(
+    			DEFAULT,
+    			Locale.getStringWithDefault(LocaleTest.class,NOKEY,DEFAULT,P1,P2,P3));
+    	assertEquals(
+    			"ABC P1 'P2' {2}", //$NON-NLS-1$
+    			Locale.getStringWithDefault(LocaleTest.class,KEY1,DEFAULT,P1,P2,P3));
+    	assertEquals(
+    			"ABC P3 'P1' {2}", //$NON-NLS-1$
+    			Locale.getStringWithDefault(LocaleTest.class,KEY1,DEFAULT,P3,P1,P2));
+    	
+    	assertEquals(
+    			DEFAULT,
+    			Locale.getStringWithDefault(LocaleStub.class,NOKEY,DEFAULT,P1,P2,P3));
+    	assertEquals(
+    			"DEF P1 'P2' {2}", //$NON-NLS-1$
+    			Locale.getStringWithDefault(LocaleStub.class,KEY1,DEFAULT,P1,P2,P3));
+    	assertEquals(
+    			"DEF P3 'P1' {2}", //$NON-NLS-1$
+    			Locale.getStringWithDefault(LocaleStub.class,KEY1,DEFAULT,P3,P1,P2));
+    }
+
+    /**
+     */
+    public void testGetStringWithDefaultClassLoaderClassStringStringStringArray() {
+    	ClassLoader l = LocaleTest.class.getClassLoader();
+    	
+    	assertEquals(
+    			DEFAULT,
+    			Locale.getStringWithDefault(l, LocaleTest.class,NOKEY,DEFAULT,P1,P2,P3));
+    	assertEquals(
+    			"ABC P1 'P2' {2}", //$NON-NLS-1$
+    			Locale.getStringWithDefault(l, LocaleTest.class,KEY1,DEFAULT,P1,P2,P3));
+    	assertEquals(
+    			"ABC P3 'P1' {2}", //$NON-NLS-1$
+    			Locale.getStringWithDefault(l, LocaleTest.class,KEY1,DEFAULT,P3,P1,P2));
+    	
+    	assertEquals(
+    			DEFAULT,
+    			Locale.getStringWithDefault(l, LocaleStub.class,NOKEY,DEFAULT,P1,P2,P3));
+    	assertEquals(
+    			"DEF P1 'P2' {2}", //$NON-NLS-1$
+    			Locale.getStringWithDefault(l, LocaleStub.class,KEY1,DEFAULT,P1,P2,P3));
+    	assertEquals(
+    			"DEF P3 'P1' {2}", //$NON-NLS-1$
+    			Locale.getStringWithDefault(l, LocaleStub.class,KEY1,DEFAULT,P3,P1,P2));
+    }
+
+    /**
+     */
+    public void testGetStringStringStringArray() {
+    	assertEquals(
+    			NOKEY,
+    			Locale.getString(NOKEY,P1,P2,P3));
+    	assertEquals(
+    			"ABC P1 'P2' {2}", //$NON-NLS-1$
+    			Locale.getString(KEY1,P1,P2,P3));
+    	assertEquals(
+    			"ABC P3 'P1' {2}", //$NON-NLS-1$
+    			Locale.getString(KEY1,P3,P1,P2));
+    	try {
+    		Locale.getString(KEY2);
+    		fail("expecting IllegalArgumentException"); //$NON-NLS-1$
+    	}
+    	catch(IllegalArgumentException _) {
+    		// expected exception
+    	}
+    	assertEquals(
+    			"(d92b87b0-efe9-4dd9-903f-7c994b8e2a9f)", //$NON-NLS-1$
+    			Locale.getString(KEY3));
+    }
+    
+    /**
+     */
+    public void testGetStringClassLoaderStringStringArray() {
+    	ClassLoader l = LocaleTest.class.getClassLoader();
+    	
+    	assertEquals(
+    			NOKEY,
+    			Locale.getString(l, NOKEY,P1,P2,P3));
+    	assertEquals(
+    			"ABC P1 'P2' {2}", //$NON-NLS-1$
+    			Locale.getString(l, KEY1,P1,P2,P3));
+    	assertEquals(
+    			"ABC P3 'P1' {2}", //$NON-NLS-1$
+    			Locale.getString(l, KEY1,P3,P1,P2));
+    	try {
+    		Locale.getString(l, KEY2);
+    		fail("expecting IllegalArgumentException"); //$NON-NLS-1$
+    	}
+    	catch(IllegalArgumentException _) {
+    		// expected exception
+    	}
+    	assertEquals(
+    			"(d92b87b0-efe9-4dd9-903f-7c994b8e2a9f)", //$NON-NLS-1$
+    			Locale.getString(l, KEY3));
+    }
+
+    /**
+     */
+    public void testGetStringWithDefaultStringStringStringArray() {
+    	assertEquals(
+    			DEFAULT,
+    			Locale.getStringWithDefault(NOKEY,DEFAULT,P1,P2,P3));
+    	assertEquals(
+    			"ABC P1 'P2' {2}", //$NON-NLS-1$
+    			Locale.getStringWithDefault(KEY1,DEFAULT,P1,P2,P3));
+    	assertEquals(
+    			"ABC P3 'P1' {2}", //$NON-NLS-1$
+    			Locale.getStringWithDefault(KEY1,DEFAULT,P3,P1,P2));
+    	try {
+    		Locale.getStringWithDefault(KEY2,DEFAULT);
+    		fail("expecting IllegalArgumentException"); //$NON-NLS-1$
+    	}
+    	catch(IllegalArgumentException _) {
+    		//expected exception
+    	}
+    	assertEquals(
+    			"(d92b87b0-efe9-4dd9-903f-7c994b8e2a9f)", //$NON-NLS-1$
+    			Locale.getStringWithDefault(KEY3,DEFAULT));
+    }
+
+    /**
+     */
+    public void testGetStringWithDefaultClassLoaderStringStringStringArray() {
+    	ClassLoader l = LocaleTest.class.getClassLoader();
+    	
+    	assertEquals(
+    			DEFAULT,
+    			Locale.getStringWithDefault(l, NOKEY,DEFAULT,P1,P2,P3));
+    	assertEquals(
+    			"ABC P1 'P2' {2}", //$NON-NLS-1$
+    			Locale.getStringWithDefault(l, KEY1,DEFAULT,P1,P2,P3));
+    	assertEquals(
+    			"ABC P3 'P1' {2}", //$NON-NLS-1$
+    			Locale.getStringWithDefault(l, KEY1,DEFAULT,P3,P1,P2));
+    	try {
+    		Locale.getStringWithDefault(l, KEY2, DEFAULT);
+    		fail("expecting IllegalArgumentException"); //$NON-NLS-1$
+    	}
+    	catch(IllegalArgumentException _) {
+    		// expected exception
+    	}
+    	assertEquals(
+    			"(d92b87b0-efe9-4dd9-903f-7c994b8e2a9f)", //$NON-NLS-1$
+    			Locale.getStringWithDefault(l, KEY3, DEFAULT));
+    }
+    
+    /**
+     */
+    public void testGetStringWithRawFormatStyle() {
+    	Number data;
+    	String raw, localized;
+    	
+    	data = Double.valueOf(123.456);
+    	raw = Double.toString(123.456);
+    	localized = MessageFormat.format("{0}", data); //$NON-NLS-1$
+    	assertEquals(
+    			localized+" "+raw, //$NON-NLS-1$
+    			Locale.getString("FOUR", data)); //$NON-NLS-1$
+
+    	data = Double.valueOf(-123.456);
+    	raw = Double.toString(-123.456);
+    	localized = MessageFormat.format("{0}", data); //$NON-NLS-1$
+    	assertEquals(
+    			localized+" "+raw, //$NON-NLS-1$
+    			Locale.getString("FOUR", data)); //$NON-NLS-1$
+
+    	data = Long.valueOf(123456);
+    	raw = Long.toString(123456);
+    	localized = MessageFormat.format("{0}", data); //$NON-NLS-1$
+    	assertEquals(
+    			localized+" "+raw, //$NON-NLS-1$
+    			Locale.getString("FOUR", data)); //$NON-NLS-1$
+
+    	data = Long.valueOf(-123456);
+    	raw = Long.toString(-123456);
+    	localized = MessageFormat.format("{0}", data); //$NON-NLS-1$
+    	assertEquals(
+    			localized+" "+raw, //$NON-NLS-1$
+    			Locale.getString("FOUR", data)); //$NON-NLS-1$
+
+    	data = Short.valueOf((short)123);
+    	raw = Short.toString((short)123);
+    	localized = MessageFormat.format("{0}", data); //$NON-NLS-1$
+    	assertEquals(
+    			localized+" "+raw, //$NON-NLS-1$
+    			Locale.getString("FOUR", data)); //$NON-NLS-1$
+
+    	data = Short.valueOf((short)-123);
+    	raw = Short.toString((short)-123);
+    	localized = MessageFormat.format("{0}", data); //$NON-NLS-1$
+    	assertEquals(
+    			localized+" "+raw, //$NON-NLS-1$
+    			Locale.getString("FOUR", data)); //$NON-NLS-1$
+
+    	raw = "123456789123456789123456789.123456789"; //$NON-NLS-1$
+    	data = new BigDecimal(raw);
+    	localized = MessageFormat.format("{0}", data); //$NON-NLS-1$
+    	assertEquals(
+    			localized+" "+raw, //$NON-NLS-1$
+    			Locale.getString("FOUR", data)); //$NON-NLS-1$
+
+    	raw = "-123456789123456789123456789.123456789"; //$NON-NLS-1$
+    	data = new BigDecimal(raw);
+    	localized = MessageFormat.format("{0}", data); //$NON-NLS-1$
+    	assertEquals(
+    			localized+" "+raw, //$NON-NLS-1$
+    			Locale.getString("FOUR", data)); //$NON-NLS-1$
+
+    	raw = "123456789123456789123456789123456789"; //$NON-NLS-1$
+    	data = new BigInteger(raw);
+    	localized = MessageFormat.format("{0}", data); //$NON-NLS-1$
+    	assertEquals(
+    			localized+" "+raw, //$NON-NLS-1$
+    			Locale.getString("FOUR", data)); //$NON-NLS-1$
+
+    	raw = "-123456789123456789123456789123456789"; //$NON-NLS-1$
+    	data = new BigInteger(raw);
+    	localized = MessageFormat.format("{0}", data); //$NON-NLS-1$
+    	assertEquals(
+    			localized+" "+raw, //$NON-NLS-1$
+    			Locale.getString("FOUR", data)); //$NON-NLS-1$
+    }
+    
+    /**
+     */
+    public void testGetStringWithRawFormatStyleWithFormat1() {
+    	Number data;
+    	
+    	data = Double.valueOf(123.456);
+    	assertEquals(
+    			"123", //$NON-NLS-1$
+    			Locale.getString("FORMAT_1", data)); //$NON-NLS-1$
+
+    	data = Double.valueOf(-123.456);
+    	assertEquals(
+    			"-123", //$NON-NLS-1$
+    			Locale.getString("FORMAT_1", data)); //$NON-NLS-1$
+
+    	data = Long.valueOf(123456);
+    	assertEquals(
+    			"123456", //$NON-NLS-1$
+    			Locale.getString("FORMAT_1", data)); //$NON-NLS-1$
+
+    	data = Long.valueOf(-123456);
+    	assertEquals(
+    			"-123456", //$NON-NLS-1$
+    			Locale.getString("FORMAT_1", data)); //$NON-NLS-1$
+
+    	data = Short.valueOf((short)123);
+    	assertEquals(
+    			"123", //$NON-NLS-1$
+    			Locale.getString("FORMAT_1", data)); //$NON-NLS-1$
+
+    	data = Short.valueOf((short)-123);
+    	assertEquals(
+    			"-123", //$NON-NLS-1$
+    			Locale.getString("FORMAT_1", data)); //$NON-NLS-1$
+
+    	data = new BigDecimal("123456789123456789123456789.123456789"); //$NON-NLS-1$
+    	assertEquals(
+    			"123456789123456789123456789", //$NON-NLS-1$
+    			Locale.getString("FORMAT_1", data)); //$NON-NLS-1$
+
+    	data = new BigDecimal("123456789123456789123456789.987654321"); //$NON-NLS-1$
+    	assertEquals(
+    			"123456789123456789123456790", //$NON-NLS-1$
+    			Locale.getString("FORMAT_1", data)); //$NON-NLS-1$
+
+    	data = new BigDecimal("-123456789123456789123456789.123456789"); //$NON-NLS-1$
+    	assertEquals(
+    			"-123456789123456789123456789", //$NON-NLS-1$
+    			Locale.getString("FORMAT_1", data)); //$NON-NLS-1$
+
+    	data = new BigDecimal("-123456789123456789123456789.987654321"); //$NON-NLS-1$
+    	assertEquals(
+    			"-123456789123456789123456790", //$NON-NLS-1$
+    			Locale.getString("FORMAT_1", data)); //$NON-NLS-1$
+
+    	data = new BigInteger("123456789123456789123456789123456789"); //$NON-NLS-1$
+    	assertEquals(
+    			"123456789123456789123456789123456789", //$NON-NLS-1$
+    			Locale.getString("FORMAT_1", data)); //$NON-NLS-1$
+
+    	data = new BigInteger("-123456789123456789123456789123456789"); //$NON-NLS-1$
+    	assertEquals(
+    			"-123456789123456789123456789123456789", //$NON-NLS-1$
+    			Locale.getString("FORMAT_1", data)); //$NON-NLS-1$
+    }
+ 
+    /**
+     */
+    public void testGetStringWithRawFormatStyleWithFormat2() {
+    	Number data;
+    	
+    	data = Double.valueOf(123.456);
+    	assertEquals(
+    			"123", //$NON-NLS-1$
+    			Locale.getString("FORMAT_2", data)); //$NON-NLS-1$
+
+    	data = Double.valueOf(-123.456);
+    	assertEquals(
+    			"-123", //$NON-NLS-1$
+    			Locale.getString("FORMAT_2", data)); //$NON-NLS-1$
+
+    	data = Long.valueOf(123456);
+    	assertEquals(
+    			"123456", //$NON-NLS-1$
+    			Locale.getString("FORMAT_2", data)); //$NON-NLS-1$
+
+    	data = Long.valueOf(-123456);
+    	assertEquals(
+    			"-123456", //$NON-NLS-1$
+    			Locale.getString("FORMAT_2", data)); //$NON-NLS-1$
+
+    	data = Short.valueOf((short)123);
+    	assertEquals(
+    			"123", //$NON-NLS-1$
+    			Locale.getString("FORMAT_2", data)); //$NON-NLS-1$
+
+    	data = Short.valueOf((short)-123);
+    	assertEquals(
+    			"-123", //$NON-NLS-1$
+    			Locale.getString("FORMAT_2", data)); //$NON-NLS-1$
+
+    	data = new BigDecimal("123456789123456789123456789.123456789"); //$NON-NLS-1$
+    	assertEquals(
+    			"123456789123456789123456789", //$NON-NLS-1$
+    			Locale.getString("FORMAT_2", data)); //$NON-NLS-1$
+
+    	data = new BigDecimal("123456789123456789123456789.987654321"); //$NON-NLS-1$
+    	assertEquals(
+    			"123456789123456789123456790", //$NON-NLS-1$
+    			Locale.getString("FORMAT_2", data)); //$NON-NLS-1$
+
+    	data = new BigDecimal("-123456789123456789123456789.123456789"); //$NON-NLS-1$
+    	assertEquals(
+    			"-123456789123456789123456789", //$NON-NLS-1$
+    			Locale.getString("FORMAT_2", data)); //$NON-NLS-1$
+
+    	data = new BigDecimal("-123456789123456789123456789.987654321"); //$NON-NLS-1$
+    	assertEquals(
+    			"-123456789123456789123456790", //$NON-NLS-1$
+    			Locale.getString("FORMAT_2", data)); //$NON-NLS-1$
+
+    	data = new BigInteger("123456789123456789123456789123456789"); //$NON-NLS-1$
+    	assertEquals(
+    			"123456789123456789123456789123456789", //$NON-NLS-1$
+    			Locale.getString("FORMAT_2", data)); //$NON-NLS-1$
+
+    	data = new BigInteger("-123456789123456789123456789123456789"); //$NON-NLS-1$
+    	assertEquals(
+    			"-123456789123456789123456789123456789", //$NON-NLS-1$
+    			Locale.getString("FORMAT_2", data)); //$NON-NLS-1$
+    }
+   
+    /**
+     */
+    public void testGetStringWithRawFormatStyleWithFormat3() {
+    	Number data;
+    	
+    	data = Double.valueOf(123.456);
+    	assertEquals(
+    			"123.5", //$NON-NLS-1$
+    			Locale.getString("FORMAT_3", data)); //$NON-NLS-1$
+
+    	data = Double.valueOf(-123.456);
+    	assertEquals(
+    			"-123.5", //$NON-NLS-1$
+    			Locale.getString("FORMAT_3", data)); //$NON-NLS-1$
+
+    	data = Long.valueOf(123456);
+    	assertEquals(
+    			"123456", //$NON-NLS-1$
+    			Locale.getString("FORMAT_3", data)); //$NON-NLS-1$
+
+    	data = Long.valueOf(-123456);
+    	assertEquals(
+    			"-123456", //$NON-NLS-1$
+    			Locale.getString("FORMAT_3", data)); //$NON-NLS-1$
+
+    	data = Short.valueOf((short)123);
+    	assertEquals(
+    			"123", //$NON-NLS-1$
+    			Locale.getString("FORMAT_3", data)); //$NON-NLS-1$
+
+    	data = Short.valueOf((short)-123);
+    	assertEquals(
+    			"-123", //$NON-NLS-1$
+    			Locale.getString("FORMAT_3", data)); //$NON-NLS-1$
+
+    	data = new BigDecimal("123456789123456789123456789.123456789"); //$NON-NLS-1$
+    	assertEquals(
+    			"123456789123456789123456789.1", //$NON-NLS-1$
+    			Locale.getString("FORMAT_3", data)); //$NON-NLS-1$
+
+    	data = new BigDecimal("123456789123456789123456789.987654321"); //$NON-NLS-1$
+    	assertEquals(
+    			"123456789123456789123456790.0", //$NON-NLS-1$
+    			Locale.getString("FORMAT_3", data)); //$NON-NLS-1$
+
+    	data = new BigDecimal("-123456789123456789123456789.123456789"); //$NON-NLS-1$
+    	assertEquals(
+    			"-123456789123456789123456789.1", //$NON-NLS-1$
+    			Locale.getString("FORMAT_3", data)); //$NON-NLS-1$
+
+    	data = new BigDecimal("-123456789123456789123456789.987654321"); //$NON-NLS-1$
+    	assertEquals(
+    			"-123456789123456789123456790.0", //$NON-NLS-1$
+    			Locale.getString("FORMAT_3", data)); //$NON-NLS-1$
+
+    	data = new BigInteger("123456789123456789123456789123456789"); //$NON-NLS-1$
+    	assertEquals(
+    			"123456789123456789123456789123456789", //$NON-NLS-1$
+    			Locale.getString("FORMAT_3", data)); //$NON-NLS-1$
+
+    	data = new BigInteger("-123456789123456789123456789123456789"); //$NON-NLS-1$
+    	assertEquals(
+    			"-123456789123456789123456789123456789", //$NON-NLS-1$
+    			Locale.getString("FORMAT_3", data)); //$NON-NLS-1$
+    }
+
+    /**
+     */
+    public void testGetStringWithRawFormatStyleWithFormat4() {
+    	Number data;
+    	
+    	data = Double.valueOf(123.456);
+    	assertEquals(
+    			"123.46", //$NON-NLS-1$
+    			Locale.getString("FORMAT_4", data)); //$NON-NLS-1$
+
+    	data = Double.valueOf(-123.456);
+    	assertEquals(
+    			"-123.46", //$NON-NLS-1$
+    			Locale.getString("FORMAT_4", data)); //$NON-NLS-1$
+
+    	data = Long.valueOf(123456);
+    	assertEquals(
+    			"123456.0", //$NON-NLS-1$
+    			Locale.getString("FORMAT_4", data)); //$NON-NLS-1$
+
+    	data = Long.valueOf(-123456);
+    	assertEquals(
+    			"-123456.0", //$NON-NLS-1$
+    			Locale.getString("FORMAT_4", data)); //$NON-NLS-1$
+
+    	data = Short.valueOf((short)123);
+    	assertEquals(
+    			"123.0", //$NON-NLS-1$
+    			Locale.getString("FORMAT_4", data)); //$NON-NLS-1$
+
+    	data = Short.valueOf((short)-123);
+    	assertEquals(
+    			"-123.0", //$NON-NLS-1$
+    			Locale.getString("FORMAT_4", data)); //$NON-NLS-1$
+
+    	data = new BigDecimal("123456789123456789123456789.123456789"); //$NON-NLS-1$
+    	assertEquals(
+    			"123456789123456789123456789.12", //$NON-NLS-1$
+    			Locale.getString("FORMAT_4", data)); //$NON-NLS-1$
+
+    	data = new BigDecimal("123456789123456789123456789.987654321"); //$NON-NLS-1$
+    	assertEquals(
+    			"123456789123456789123456789.99", //$NON-NLS-1$
+    			Locale.getString("FORMAT_4", data)); //$NON-NLS-1$
+
+    	data = new BigDecimal("-123456789123456789123456789.123456789"); //$NON-NLS-1$
+    	assertEquals(
+    			"-123456789123456789123456789.12", //$NON-NLS-1$
+    			Locale.getString("FORMAT_4", data)); //$NON-NLS-1$
+
+    	data = new BigDecimal("-123456789123456789123456789.987654321"); //$NON-NLS-1$
+    	assertEquals(
+    			"-123456789123456789123456789.99", //$NON-NLS-1$
+    			Locale.getString("FORMAT_4", data)); //$NON-NLS-1$
+
+    	data = new BigInteger("123456789123456789123456789123456789"); //$NON-NLS-1$
+    	assertEquals(
+    			"123456789123456789123456789123456789.0", //$NON-NLS-1$
+    			Locale.getString("FORMAT_4", data)); //$NON-NLS-1$
+
+    	data = new BigInteger("-123456789123456789123456789123456789"); //$NON-NLS-1$
+    	assertEquals(
+    			"-123456789123456789123456789123456789.0", //$NON-NLS-1$
+    			Locale.getString("FORMAT_4", data)); //$NON-NLS-1$
+    }
+    
+    /**
+     */
+    public void testGetStringWithRawFormatStyleWithFormat5() {
+    	Number data;
+    	
+    	data = Double.valueOf(123.456);
+    	assertEquals(
+    			"123.456", //$NON-NLS-1$
+    			Locale.getString("FORMAT_5", data)); //$NON-NLS-1$
+
+    	data = Double.valueOf(-123.456);
+    	assertEquals(
+    			"-123.456", //$NON-NLS-1$
+    			Locale.getString("FORMAT_5", data)); //$NON-NLS-1$
+
+    	data = Long.valueOf(123456);
+    	assertEquals(
+    			"123456", //$NON-NLS-1$
+    			Locale.getString("FORMAT_5", data)); //$NON-NLS-1$
+
+    	data = Long.valueOf(-123456);
+    	assertEquals(
+    			"-123456", //$NON-NLS-1$
+    			Locale.getString("FORMAT_5", data)); //$NON-NLS-1$
+
+    	data = Short.valueOf((short)123);
+    	assertEquals(
+    			"123", //$NON-NLS-1$
+    			Locale.getString("FORMAT_5", data)); //$NON-NLS-1$
+
+    	data = Short.valueOf((short)-123);
+    	assertEquals(
+    			"-123", //$NON-NLS-1$
+    			Locale.getString("FORMAT_5", data)); //$NON-NLS-1$
+
+    	data = new BigDecimal("123456789123456789123456789.123456789"); //$NON-NLS-1$
+    	assertEquals(
+    			"123456789123456789123456789.123", //$NON-NLS-1$
+    			Locale.getString("FORMAT_5", data)); //$NON-NLS-1$
+
+    	data = new BigDecimal("123456789123456789123456789.987654321"); //$NON-NLS-1$
+    	assertEquals(
+    			"123456789123456789123456789.988", //$NON-NLS-1$
+    			Locale.getString("FORMAT_5", data)); //$NON-NLS-1$
+
+    	data = new BigDecimal("-123456789123456789123456789.123456789"); //$NON-NLS-1$
+    	assertEquals(
+    			"-123456789123456789123456789.123", //$NON-NLS-1$
+    			Locale.getString("FORMAT_5", data)); //$NON-NLS-1$
+
+    	data = new BigDecimal("-123456789123456789123456789.987654321"); //$NON-NLS-1$
+    	assertEquals(
+    			"-123456789123456789123456789.988", //$NON-NLS-1$
+    			Locale.getString("FORMAT_5", data)); //$NON-NLS-1$
+
+    	data = new BigInteger("123456789123456789123456789123456789"); //$NON-NLS-1$
+    	assertEquals(
+    			"123456789123456789123456789123456789", //$NON-NLS-1$
+    			Locale.getString("FORMAT_5", data)); //$NON-NLS-1$
+
+    	data = new BigInteger("-123456789123456789123456789123456789"); //$NON-NLS-1$
+    	assertEquals(
+    			"-123456789123456789123456789123456789", //$NON-NLS-1$
+    			Locale.getString("FORMAT_5", data)); //$NON-NLS-1$
+    }
+    
+    /**
+     */
+    public void testGetStringWithRawFormatStyleWithFormat6() {
+    	Number data;
+    	
+    	data = Double.valueOf(123.456);
+    	assertEquals(
+    			"123", //$NON-NLS-1$
+    			Locale.getString("FORMAT_6", data)); //$NON-NLS-1$
+
+    	data = Double.valueOf(-123.456);
+    	assertEquals(
+    			"-123", //$NON-NLS-1$
+    			Locale.getString("FORMAT_6", data)); //$NON-NLS-1$
+
+    	data = Long.valueOf(123456);
+    	assertEquals(
+    			"123456", //$NON-NLS-1$
+    			Locale.getString("FORMAT_6", data)); //$NON-NLS-1$
+
+    	data = Long.valueOf(-123456);
+    	assertEquals(
+    			"-123456", //$NON-NLS-1$
+    			Locale.getString("FORMAT_6", data)); //$NON-NLS-1$
+
+    	data = Short.valueOf((short)123);
+    	assertEquals(
+    			"123", //$NON-NLS-1$
+    			Locale.getString("FORMAT_6", data)); //$NON-NLS-1$
+
+    	data = Short.valueOf((short)-123);
+    	assertEquals(
+    			"-123", //$NON-NLS-1$
+    			Locale.getString("FORMAT_6", data)); //$NON-NLS-1$
+
+    	data = new BigDecimal("123456789123456789123456789.123456789"); //$NON-NLS-1$
+    	assertEquals(
+    			"123456789123456789123456789", //$NON-NLS-1$
+    			Locale.getString("FORMAT_6", data)); //$NON-NLS-1$
+
+    	data = new BigDecimal("123456789123456789123456789.987654321"); //$NON-NLS-1$
+    	assertEquals(
+    			"123456789123456789123456790", //$NON-NLS-1$
+    			Locale.getString("FORMAT_6", data)); //$NON-NLS-1$
+
+    	data = new BigDecimal("-123456789123456789123456789.123456789"); //$NON-NLS-1$
+    	assertEquals(
+    			"-123456789123456789123456789", //$NON-NLS-1$
+    			Locale.getString("FORMAT_6", data)); //$NON-NLS-1$
+
+    	data = new BigDecimal("-123456789123456789123456789.987654321"); //$NON-NLS-1$
+    	assertEquals(
+    			"-123456789123456789123456790", //$NON-NLS-1$
+    			Locale.getString("FORMAT_6", data)); //$NON-NLS-1$
+
+    	data = new BigInteger("123456789123456789123456789123456789"); //$NON-NLS-1$
+    	assertEquals(
+    			"123456789123456789123456789123456789", //$NON-NLS-1$
+    			Locale.getString("FORMAT_6", data)); //$NON-NLS-1$
+
+    	data = new BigInteger("-123456789123456789123456789123456789"); //$NON-NLS-1$
+    	assertEquals(
+    			"-123456789123456789123456789123456789", //$NON-NLS-1$
+    			Locale.getString("FORMAT_6", data)); //$NON-NLS-1$
+    }
+    
+    /**
+     */
+    public void testGetStringWithRawFormatStyleWithFormat7() {
+    	Number data;
+    	
+    	data = Double.valueOf(123.456);
+    	assertEquals(
+    			"123", //$NON-NLS-1$
+    			Locale.getString("FORMAT_7", data)); //$NON-NLS-1$
+
+    	data = Double.valueOf(-123.456);
+    	assertEquals(
+    			"-123", //$NON-NLS-1$
+    			Locale.getString("FORMAT_7", data)); //$NON-NLS-1$
+
+    	data = Long.valueOf(123456);
+    	assertEquals(
+    			"123456", //$NON-NLS-1$
+    			Locale.getString("FORMAT_7", data)); //$NON-NLS-1$
+
+    	data = Long.valueOf(-123456);
+    	assertEquals(
+    			"-123456", //$NON-NLS-1$
+    			Locale.getString("FORMAT_7", data)); //$NON-NLS-1$
+
+    	data = Short.valueOf((short)123);
+    	assertEquals(
+    			"123", //$NON-NLS-1$
+    			Locale.getString("FORMAT_7", data)); //$NON-NLS-1$
+
+    	data = Short.valueOf((short)-123);
+    	assertEquals(
+    			"-123", //$NON-NLS-1$
+    			Locale.getString("FORMAT_7", data)); //$NON-NLS-1$
+
+    	data = new BigDecimal("123456789123456789123456789.123456789"); //$NON-NLS-1$
+    	assertEquals(
+    			"123456789123456789123456789", //$NON-NLS-1$
+    			Locale.getString("FORMAT_7", data)); //$NON-NLS-1$
+
+    	data = new BigDecimal("123456789123456789123456789.987654321"); //$NON-NLS-1$
+    	assertEquals(
+    			"123456789123456789123456790", //$NON-NLS-1$
+    			Locale.getString("FORMAT_7", data)); //$NON-NLS-1$
+
+    	data = new BigDecimal("-123456789123456789123456789.123456789"); //$NON-NLS-1$
+    	assertEquals(
+    			"-123456789123456789123456789", //$NON-NLS-1$
+    			Locale.getString("FORMAT_7", data)); //$NON-NLS-1$
+
+    	data = new BigDecimal("-123456789123456789123456789.987654321"); //$NON-NLS-1$
+    	assertEquals(
+    			"-123456789123456789123456790", //$NON-NLS-1$
+    			Locale.getString("FORMAT_7", data)); //$NON-NLS-1$
+
+    	data = new BigInteger("123456789123456789123456789123456789"); //$NON-NLS-1$
+    	assertEquals(
+    			"123456789123456789123456789123456789", //$NON-NLS-1$
+    			Locale.getString("FORMAT_7", data)); //$NON-NLS-1$
+
+    	data = new BigInteger("-123456789123456789123456789123456789"); //$NON-NLS-1$
+    	assertEquals(
+    			"-123456789123456789123456789123456789", //$NON-NLS-1$
+    			Locale.getString("FORMAT_7", data)); //$NON-NLS-1$
+    }
+    
+}
\ No newline at end of file


Property changes on: trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/locale/LocaleTest.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Modified: trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/resource/URLConnectionTest.java
===================================================================
--- trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/resource/URLConnectionTest.java	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/arakhneVmutils/java/src/test/java/org/arakhne/vmutil/resource/URLConnectionTest.java	2012-01-28 14:04:42 UTC (rev 322)
@@ -1,7 +1,9 @@
 /* 
  * $Id$
  * 
- * Copyright (C) 2010 Stephane GALLANDibrary is free software; you can redistribute it and/or
+ * Copyright (C) 2010 Stephane GALLAND.
+ * 
+ * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.

Added: trunk/arakhneVmutils/java/src/test/resources/org/arakhne/vmutil/locale/LocaleStub.properties
===================================================================
--- trunk/arakhneVmutils/java/src/test/resources/org/arakhne/vmutil/locale/LocaleStub.properties	                        (rev 0)
+++ trunk/arakhneVmutils/java/src/test/resources/org/arakhne/vmutil/locale/LocaleStub.properties	2012-01-28 14:04:42 UTC (rev 322)
@@ -0,0 +1,25 @@
+# $Id$
+# 
+# Copyright (c) 2010, Multiagent Team,
+# Laboratoire Systemes et Transports,
+# Universite de Technologie de Belfort-Montbeliard.
+# All rights reserved.
+#
+# Copyright (c) 2012, Stephane GALLAND, Olivier LAMOTTE.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+# 
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+# 
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+# This program is free software; you can redistribute it and/or modify
+
+ONE = DEF {0} ''{1}'' '{2}'
\ No newline at end of file


Property changes on: trunk/arakhneVmutils/java/src/test/resources/org/arakhne/vmutil/locale/LocaleStub.properties
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/arakhneVmutils/java/src/test/resources/org/arakhne/vmutil/locale/LocaleTest.properties
===================================================================
--- trunk/arakhneVmutils/java/src/test/resources/org/arakhne/vmutil/locale/LocaleTest.properties	                        (rev 0)
+++ trunk/arakhneVmutils/java/src/test/resources/org/arakhne/vmutil/locale/LocaleTest.properties	2012-01-28 14:04:42 UTC (rev 322)
@@ -0,0 +1,35 @@
+# $Id$
+# 
+# Copyright (c) 2010, Multiagent Team,
+# Laboratoire Systemes et Transports,
+# Universite de Technologie de Belfort-Montbeliard.
+# All rights reserved.
+#
+# Copyright (c) 2012, Stephane GALLAND, Olivier LAMOTTE.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+# 
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+# 
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+# This program is free software; you can redistribute it and/or modify
+
+ONE = ABC {0} ''{1}'' '{2}'
+TWO = {d92b87b0-efe9-4dd9-903f-7c994b8e2a9f}
+THREE = (d92b87b0-efe9-4dd9-903f-7c994b8e2a9f)
+FOUR = {0} {0,number,raw}
+FORMAT_1 = {0,number,raw,#}
+FORMAT_2 = {0,number,raw,#.}
+FORMAT_3 = {0,number,raw,#.#}
+FORMAT_4 = {0,number,raw,0.0#}
+FORMAT_5 = {0,number,raw,#.###}
+FORMAT_6 = {0,number,raw,#0.}
+FORMAT_7 = {0,number,raw,#0}
\ No newline at end of file


Property changes on: trunk/arakhneVmutils/java/src/test/resources/org/arakhne/vmutil/locale/LocaleTest.properties
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml	2011-12-26 12:35:42 UTC (rev 321)
+++ trunk/pom.xml	2012-01-28 14:04:42 UTC (rev 322)
@@ -12,7 +12,7 @@
 	<description>Java library that provides additional tools.</description>
 
 	<properties>
-		<year>2011</year>
+		<year>2012</year>
 		<sourceEncoding>UTF-8</sourceEncoding>
 	</properties>
 
@@ -208,6 +208,15 @@
 				<role>Developer</role>
 			</roles>
 		</developer>
+		<developer>
+			<id>lamotte</id>
+			<name>Olivier LAMOTTE</name>
+			<email>lamotte@xxxxxxxxxxx</email>
+			<url>http://www.arakhne.org/homes/lamotte.html</url>
+			<roles>
+				<role>Developer</role>
+			</roles>
+		</developer>
 	</developers>
 
 	<!-- ======================================= -->


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/