You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by de...@apache.org on 2007/09/17 05:30:23 UTC
svn commit: r576248 - in /myfaces/tomahawk/trunk/core/src:
main/java/org/apache/myfaces/convert/ main/resources-facesconfig/META-INF/
site/ site/xdoc/ test/java/org/apache/myfaces/convert/
Author: dennisbyrne
Date: Sun Sep 16 20:30:22 2007
New Revision: 576248
URL: http://svn.apache.org/viewvc?rev=576248&view=rev
Log:
three new Converters, three tests, and documentation
Added:
myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicBooleanConverter.java
myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicIntegerConverter.java
myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicLongConverter.java
myfaces/tomahawk/trunk/core/src/site/xdoc/atomicConversion.xml
myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/
myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicBooleanConverterTestCase.java
myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicIntegerConverterTest.java
myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicLongConverterTest.java
Modified:
myfaces/tomahawk/trunk/core/src/main/resources-facesconfig/META-INF/faces-config.xml
myfaces/tomahawk/trunk/core/src/site/site.xml
Added: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicBooleanConverter.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicBooleanConverter.java?rev=576248&view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicBooleanConverter.java (added)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicBooleanConverter.java Sun Sep 16 20:30:22 2007
@@ -0,0 +1,39 @@
+package org.apache.myfaces.convert;
+
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.convert.Converter;
+import javax.faces.convert.ConverterException;
+
+public class AtomicBooleanConverter implements Converter {
+
+ public Object getAsObject(FacesContext ctx, UIComponent ui, String string) {
+
+ return string != null && string.trim().length() > 0 ?
+ new AtomicBoolean(Boolean.parseBoolean(string.trim())) : null;
+ }
+
+ public String getAsString(FacesContext ctx, UIComponent ui, Object object) {
+
+ String string = "";
+
+ if( object != null ) {
+
+ if(object instanceof String) {
+ string = (String) object;
+ }else if(object instanceof AtomicBoolean){
+ string = ((AtomicBoolean)object).toString();
+ }else {
+ throw new ConverterException("Received an instance of "
+ + object.getClass().getName() + ", but was expecting an instance of "
+ + AtomicInteger.class.getName());
+ }
+ }
+
+ return string;
+ }
+
+}
Added: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicIntegerConverter.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicIntegerConverter.java?rev=576248&view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicIntegerConverter.java (added)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicIntegerConverter.java Sun Sep 16 20:30:22 2007
@@ -0,0 +1,49 @@
+package org.apache.myfaces.convert;
+
+import java.util.concurrent.atomic.AtomicInteger;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.convert.Converter;
+import javax.faces.convert.ConverterException;
+
+public class AtomicIntegerConverter implements Converter {
+
+ public Object getAsObject(FacesContext ctx, UIComponent ui, String value) {
+
+ Object object = null;
+
+ if( value != null && value.trim().length() > 0 ) {
+ try
+ {
+ object = new AtomicInteger(Integer.parseInt(value.trim()));
+
+ }catch(NumberFormatException nfe) {
+ throw new ConverterException(nfe);
+ }
+ }
+
+ return object;
+ }
+
+ public String getAsString(FacesContext ctx, UIComponent ui, Object object) {
+
+ String string = "";
+
+ if(object != null) {
+
+ if( object instanceof String ) {
+ string = (String) object;
+ }else if(object instanceof AtomicInteger) {
+ string = ((AtomicInteger)object).toString();
+ }else {
+ throw new ConverterException("Received an instance of "
+ + object.getClass().getName() + ", but was expecting an instance of "
+ + AtomicInteger.class.getName());
+ }
+ }
+
+ return string;
+ }
+
+}
Added: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicLongConverter.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicLongConverter.java?rev=576248&view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicLongConverter.java (added)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicLongConverter.java Sun Sep 16 20:30:22 2007
@@ -0,0 +1,48 @@
+package org.apache.myfaces.convert;
+
+import java.util.concurrent.atomic.AtomicLong;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.convert.Converter;
+import javax.faces.convert.ConverterException;
+
+public class AtomicLongConverter implements Converter {
+
+ public Object getAsObject(FacesContext ctx, UIComponent ui, String value) {
+
+ Object object = null;
+
+ if( value != null && value.trim().length() > 0 ) {
+ try
+ {
+ object = new AtomicLong(Long.parseLong(value.trim()));
+
+ }catch(NumberFormatException nfe) {
+ throw new ConverterException(nfe);
+ }
+ }
+
+ return object;
+ }
+
+ public String getAsString(FacesContext ctx, UIComponent ui, Object object) {
+
+ String string = "";
+
+ if(object != null) {
+
+ if( object instanceof String ) {
+ string = (String) object;
+ }else if(object instanceof AtomicLong) {
+ string = ((AtomicLong)object).toString();
+ }else {
+ throw new ConverterException("Received an instance of "
+ + object.getClass().getName() + ", but was expecting an instance of "
+ + AtomicLong.class.getName());
+ }
+ }
+
+ return string;
+ }
+}
Modified: myfaces/tomahawk/trunk/core/src/main/resources-facesconfig/META-INF/faces-config.xml
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/resources-facesconfig/META-INF/faces-config.xml?rev=576248&r1=576247&r2=576248&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/resources-facesconfig/META-INF/faces-config.xml (original)
+++ myfaces/tomahawk/trunk/core/src/main/resources-facesconfig/META-INF/faces-config.xml Sun Sep 16 20:30:22 2007
@@ -423,6 +423,20 @@
<converter-class>org.apache.myfaces.custom.fileupload.UploadedFileConverter</converter-class>
</converter>
+ <converter>
+ <converter-for-class>java.util.concurrent.atomic.AtomicBoolean</converter-for-class>
+ <converter-class>org.apache.myfaces.convert.AtomicBooleanConverter</converter-class>
+ </converter>
+
+ <converter>
+ <converter-for-class>java.util.concurrent.atomic.AtomicInteger</converter-for-class>
+ <converter-class>org.apache.myfaces.convert.AtomicIntegerConverter</converter-class>
+ </converter>
+
+ <converter>
+ <converter-for-class>java.util.concurrent.atomic.AtomicLong</converter-for-class>
+ <converter-class>org.apache.myfaces.convert.AtomicLongConverter</converter-class>
+ </converter>
<!-- MyFaces Renderkit Extensions -->
Modified: myfaces/tomahawk/trunk/core/src/site/site.xml
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/site/site.xml?rev=576248&r1=576247&r2=576248&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/site/site.xml (original)
+++ myfaces/tomahawk/trunk/core/src/site/site.xml Sun Sep 16 20:30:22 2007
@@ -76,7 +76,8 @@
<menu name="Other Goodies">
<item name="Extensions filter" href="extensionsFilter.html"/>
<item name="forceId" href="forceId.html"/>
- <item name="Tiles Support" href="tiles.html"/>
+ <item name="Tiles Support" href="tiles.html"/>
+ <item name="Atomic Conversion" href="atomicConversion.html"/>
</menu>
<menu name="Testing">
Added: myfaces/tomahawk/trunk/core/src/site/xdoc/atomicConversion.xml
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/site/xdoc/atomicConversion.xml?rev=576248&view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core/src/site/xdoc/atomicConversion.xml (added)
+++ myfaces/tomahawk/trunk/core/src/site/xdoc/atomicConversion.xml Sun Sep 16 20:30:22 2007
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation Maven//EN" "http://maven.apache.org/dtd/maven-xdoc.dtd">
+
+<document>
+
+ <body>
+ <section name="Description">
+ <p>
+ Converters for :
+ <ul>
+ <li>java.util.concurrent.atomic.AtomicBoolean</li>
+ <li>java.util.concurrent.atomic.AtomicInteger</li>
+ <li>java.util.concurrent.atomic.AtomicLong</li>
+ </ul>
+ </p>
+ </section>
+
+ <section name="API">
+
+ <table>
+ <tr>
+ <td colspan="1" rowspan="1">since</td>
+ <td colspan="1" rowspan="1">1.1.7</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">author</td>
+ <td colspan="1" rowspan="1">Dennis Byrne</td>
+ </tr>
+ </table>
+ </section>
+
+ <section name="Usage">
+ <source xml:space="preserve">
+<h:inputText value="#{managedBean.propertyOfTypeAtomicBoolean}"/>
+<h:inputText value="#{managedBean.propertyOfTypeAtomicInteger}"/>
+<h:inputText value="#{managedBean.propertyOfTypeAtomicLong}"/>
+ </source>
+ </section>
+
+ <section name="Instructions">
+ <p>
+ No configuration required. The Converters are registered at startup simply by using MyFaces Tomahawk.
+ </p>
+ </section>
+ </body>
+
+
+</document>
Added: myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicBooleanConverterTestCase.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicBooleanConverterTestCase.java?rev=576248&view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicBooleanConverterTestCase.java (added)
+++ myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicBooleanConverterTestCase.java Sun Sep 16 20:30:22 2007
@@ -0,0 +1,48 @@
+package org.apache.myfaces.convert;
+
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import javax.faces.convert.Converter;
+import javax.faces.convert.ConverterException;
+
+import junit.framework.TestCase;
+
+public class AtomicBooleanConverterTestCase extends TestCase {
+
+ public void testGetAsObject() {
+
+ Converter converter = new AtomicBooleanConverter();
+
+ assertNull(converter.getAsObject(null, null, null));
+ assertNull(converter.getAsObject(null, null, ""));
+ assertNull(converter.getAsObject(null, null, " "));
+ assertTrue(((AtomicBoolean)converter.getAsObject(null, null, "true")).get());
+ assertTrue(((AtomicBoolean)converter.getAsObject(null, null, "true ")).get());
+ assertTrue(((AtomicBoolean)converter.getAsObject(null, null, " true")).get());
+ assertFalse(((AtomicBoolean)converter.getAsObject(null, null, "false")).get());
+ assertFalse(((AtomicBoolean)converter.getAsObject(null, null, "false ")).get());
+ assertFalse(((AtomicBoolean)converter.getAsObject(null, null, " false")).get());
+ assertFalse(((AtomicBoolean)converter.getAsObject(null, null, " boom ")).get());
+
+ }
+
+ public void testGetAsString() {
+
+ Converter converter = new AtomicBooleanConverter();
+
+ assertEquals("", converter.getAsString(null, null, null));
+ assertEquals("", converter.getAsString(null, null, ""));
+ assertEquals("true", converter.getAsString(null, null, new AtomicBoolean(true)));
+ assertEquals("false", converter.getAsString(null, null, new AtomicBoolean(false)));
+
+ try {
+
+ converter.getAsString(null, null, new Boolean(true) );
+
+ fail();
+
+ }catch(ConverterException c) { }
+
+ }
+
+}
Added: myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicIntegerConverterTest.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicIntegerConverterTest.java?rev=576248&view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicIntegerConverterTest.java (added)
+++ myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicIntegerConverterTest.java Sun Sep 16 20:30:22 2007
@@ -0,0 +1,54 @@
+package org.apache.myfaces.convert;
+
+import java.util.concurrent.atomic.AtomicInteger;
+
+import javax.faces.convert.Converter;
+import javax.faces.convert.ConverterException;
+
+import junit.framework.TestCase;
+
+public class AtomicIntegerConverterTest extends TestCase {
+
+ public void testGetAsObject() {
+
+ Converter converter = new AtomicIntegerConverter();
+
+ assertNull( converter.getAsObject(null, null, null) );
+ assertNull( converter.getAsObject(null, null, "") );
+ assertNull( converter.getAsObject(null, null, " ") );
+ assertTrue( 8 == ((AtomicInteger) converter.getAsObject(null, null, " 8")).intValue() );
+ assertTrue( 8 == ((AtomicInteger) converter.getAsObject(null, null, "8 ")).intValue() );
+ assertTrue( 8 == ((AtomicInteger) converter.getAsObject(null, null, "8")).intValue() );
+ int over = Integer.MAX_VALUE + 1;
+ assertTrue( over == ((AtomicInteger) converter.getAsObject(null, null, over + "")).intValue() );
+ int under = Integer.MIN_VALUE - 1;
+ assertTrue( under == ((AtomicInteger) converter.getAsObject(null, null, under + "")).intValue() );
+
+ try {
+
+ converter.getAsObject(null, null, "NaN");
+
+ fail("should only take numbers");
+
+ }catch(ConverterException c) { }
+ }
+
+ public void testGetAsString() {
+
+ Converter converter = new AtomicIntegerConverter();
+
+ assertEquals("", converter.getAsString(null, null, null));
+ assertEquals("", converter.getAsString(null, null, ""));
+ assertEquals(" ", converter.getAsString(null, null, " "));
+ assertEquals("-1", converter.getAsString(null, null, new AtomicInteger(-1)));
+
+ try {
+
+ converter.getAsString(null, null, new Integer(0));
+
+ fail("should only take atomic ints");
+
+ }catch(ConverterException c) { }
+ }
+
+}
Added: myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicLongConverterTest.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicLongConverterTest.java?rev=576248&view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicLongConverterTest.java (added)
+++ myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicLongConverterTest.java Sun Sep 16 20:30:22 2007
@@ -0,0 +1,54 @@
+package org.apache.myfaces.convert;
+
+import java.util.concurrent.atomic.AtomicLong;
+
+import javax.faces.convert.Converter;
+import javax.faces.convert.ConverterException;
+
+import junit.framework.TestCase;
+
+public class AtomicLongConverterTest extends TestCase{
+
+ public void testGetAsObject() {
+
+ Converter converter = new AtomicLongConverter();
+
+ assertNull( converter.getAsObject(null, null, null) );
+ assertNull( converter.getAsObject(null, null, "") );
+ assertNull( converter.getAsObject(null, null, " ") );
+ assertTrue( 8 == ((AtomicLong) converter.getAsObject(null, null, " 8")).longValue() );
+ assertTrue( 8 == ((AtomicLong) converter.getAsObject(null, null, "8 ")).longValue() );
+ assertTrue( 8 == ((AtomicLong) converter.getAsObject(null, null, "8")).longValue() );
+ long over = Long.MAX_VALUE + 1;
+ assertTrue( over == ((AtomicLong) converter.getAsObject(null, null, over + "")).longValue() );
+ long under = Long.MIN_VALUE - 1;
+ assertTrue( under == ((AtomicLong) converter.getAsObject(null, null, under + "")).longValue() );
+
+ try {
+
+ converter.getAsObject(null, null, "NaN");
+
+ fail("should only take numbers");
+
+ }catch(ConverterException c) { }
+
+ }
+
+ public void testGetAsString() {
+
+ Converter converter = new AtomicLongConverter();
+
+ assertEquals("", converter.getAsString(null, null, null));
+ assertEquals("", converter.getAsString(null, null, ""));
+ assertEquals(" ", converter.getAsString(null, null, " "));
+ assertEquals("-1", converter.getAsString(null, null, new AtomicLong(-1)));
+
+ try {
+
+ converter.getAsString(null, null, new Long(0));
+
+ fail("should only take atomic ints");
+
+ }catch(ConverterException c) { }
+ }
+}
\ No newline at end of file
Re: svn commit: r576248 - in /myfaces/tomahawk/trunk/core/src: main/java/org/apache/myfaces/convert/ main/resources-facesconfig/META-INF/ site/ site/xdoc/ test/java/org/apache/myfaces/convert/
Posted by Matthias Wessendorf <ma...@apache.org>.
right... 1.5 things are involved, good point
-M
On 10/27/07, Mike Kienenberger <mk...@gmail.com> wrote:
> No discussion/action taken by original committer -- reverting.
>
> Note that I think these converters would be a good candidate for
> sandbox15 and Tomahawk 1.2, and I recommend checking them back into
> that location.
>
> On 10/26/07, Matthias Wessendorf <ma...@apache.org> wrote:
> > good point.
> >
> > On 10/25/07, Mike Kienenberger <mk...@gmail.com> wrote:
> > > I have another question.
> > >
> > > Why were these three converters checked into Tomahawk with absolutely
> > > no discussion and nothing going through the sandbox first?
> > >
> > > I search my mail archives for AtomicLongConverter and the ONLY
> > > reference to it is the commit itself.
> > >
> > > -Mike
> > >
> > >
> > > On 9/16/07, dennisbyrne@apache.org <de...@apache.org> wrote:
> > > > Author: dennisbyrne
> > > > Date: Sun Sep 16 20:30:22 2007
> > > > New Revision: 576248
> > > >
> > > > URL: http://svn.apache.org/viewvc?rev=576248&view=rev
> > > > Log:
> > > > three new Converters, three tests, and documentation
> > > >
> > > > Added:
> > > > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicBooleanConverter.java
> > > > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicIntegerConverter.java
> > > > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicLongConverter.java
> > > > myfaces/tomahawk/trunk/core/src/site/xdoc/atomicConversion.xml
> > > > myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/
> > > > myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicBooleanConverterTestCase.java
> > > > myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicIntegerConverterTest.java
> > > > myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicLongConverterTest.java
> > > > Modified:
> > > > myfaces/tomahawk/trunk/core/src/main/resources-facesconfig/META-INF/faces-config.xml
> > > > myfaces/tomahawk/trunk/core/src/site/site.xml
> > > >
> > > > Added: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicBooleanConverter.java
> > > > URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicBooleanConverter.java?rev=576248&view=auto
> > > > ==============================================================================
> > > > --- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicBooleanConverter.java (added)
> > > > +++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicBooleanConverter.java Sun Sep 16 20:30:22 2007
> > > > @@ -0,0 +1,39 @@
> > > > +package org.apache.myfaces.convert;
> > > > +
> > > > +import java.util.concurrent.atomic.AtomicBoolean;
> > > > +import java.util.concurrent.atomic.AtomicInteger;
> > > > +
> > > > +import javax.faces.component.UIComponent;
> > > > +import javax.faces.context.FacesContext;
> > > > +import javax.faces.convert.Converter;
> > > > +import javax.faces.convert.ConverterException;
> > > > +
> > > > +public class AtomicBooleanConverter implements Converter {
> > > > +
> > > > + public Object getAsObject(FacesContext ctx, UIComponent ui, String string) {
> > > > +
> > > > + return string != null && string.trim().length() > 0 ?
> > > > + new AtomicBoolean(Boolean.parseBoolean(string.trim())) : null;
> > > > + }
> > > > +
> > > > + public String getAsString(FacesContext ctx, UIComponent ui, Object object) {
> > > > +
> > > > + String string = "";
> > > > +
> > > > + if( object != null ) {
> > > > +
> > > > + if(object instanceof String) {
> > > > + string = (String) object;
> > > > + }else if(object instanceof AtomicBoolean){
> > > > + string = ((AtomicBoolean)object).toString();
> > > > + }else {
> > > > + throw new ConverterException("Received an instance of "
> > > > + + object.getClass().getName() + ", but was expecting an instance of "
> > > > + + AtomicInteger.class.getName());
> > > > + }
> > > > + }
> > > > +
> > > > + return string;
> > > > + }
> > > > +
> > > > +}
> > > >
> > > > Added: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicIntegerConverter.java
> > > > URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicIntegerConverter.java?rev=576248&view=auto
> > > > ==============================================================================
> > > > --- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicIntegerConverter.java (added)
> > > > +++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicIntegerConverter.java Sun Sep 16 20:30:22 2007
> > > > @@ -0,0 +1,49 @@
> > > > +package org.apache.myfaces.convert;
> > > > +
> > > > +import java.util.concurrent.atomic.AtomicInteger;
> > > > +
> > > > +import javax.faces.component.UIComponent;
> > > > +import javax.faces.context.FacesContext;
> > > > +import javax.faces.convert.Converter;
> > > > +import javax.faces.convert.ConverterException;
> > > > +
> > > > +public class AtomicIntegerConverter implements Converter {
> > > > +
> > > > + public Object getAsObject(FacesContext ctx, UIComponent ui, String value) {
> > > > +
> > > > + Object object = null;
> > > > +
> > > > + if( value != null && value.trim().length() > 0 ) {
> > > > + try
> > > > + {
> > > > + object = new AtomicInteger(Integer.parseInt(value.trim()));
> > > > +
> > > > + }catch(NumberFormatException nfe) {
> > > > + throw new ConverterException(nfe);
> > > > + }
> > > > + }
> > > > +
> > > > + return object;
> > > > + }
> > > > +
> > > > + public String getAsString(FacesContext ctx, UIComponent ui, Object object) {
> > > > +
> > > > + String string = "";
> > > > +
> > > > + if(object != null) {
> > > > +
> > > > + if( object instanceof String ) {
> > > > + string = (String) object;
> > > > + }else if(object instanceof AtomicInteger) {
> > > > + string = ((AtomicInteger)object).toString();
> > > > + }else {
> > > > + throw new ConverterException("Received an instance of "
> > > > + + object.getClass().getName() + ", but was expecting an instance of "
> > > > + + AtomicInteger.class.getName());
> > > > + }
> > > > + }
> > > > +
> > > > + return string;
> > > > + }
> > > > +
> > > > +}
> > > >
> > > > Added: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicLongConverter.java
> > > > URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicLongConverter.java?rev=576248&view=auto
> > > > ==============================================================================
> > > > --- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicLongConverter.java (added)
> > > > +++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicLongConverter.java Sun Sep 16 20:30:22 2007
> > > > @@ -0,0 +1,48 @@
> > > > +package org.apache.myfaces.convert;
> > > > +
> > > > +import java.util.concurrent.atomic.AtomicLong;
> > > > +
> > > > +import javax.faces.component.UIComponent;
> > > > +import javax.faces.context.FacesContext;
> > > > +import javax.faces.convert.Converter;
> > > > +import javax.faces.convert.ConverterException;
> > > > +
> > > > +public class AtomicLongConverter implements Converter {
> > > > +
> > > > + public Object getAsObject(FacesContext ctx, UIComponent ui, String value) {
> > > > +
> > > > + Object object = null;
> > > > +
> > > > + if( value != null && value.trim().length() > 0 ) {
> > > > + try
> > > > + {
> > > > + object = new AtomicLong(Long.parseLong(value.trim()));
> > > > +
> > > > + }catch(NumberFormatException nfe) {
> > > > + throw new ConverterException(nfe);
> > > > + }
> > > > + }
> > > > +
> > > > + return object;
> > > > + }
> > > > +
> > > > + public String getAsString(FacesContext ctx, UIComponent ui, Object object) {
> > > > +
> > > > + String string = "";
> > > > +
> > > > + if(object != null) {
> > > > +
> > > > + if( object instanceof String ) {
> > > > + string = (String) object;
> > > > + }else if(object instanceof AtomicLong) {
> > > > + string = ((AtomicLong)object).toString();
> > > > + }else {
> > > > + throw new ConverterException("Received an instance of "
> > > > + + object.getClass().getName() + ", but was expecting an instance of "
> > > > + + AtomicLong.class.getName());
> > > > + }
> > > > + }
> > > > +
> > > > + return string;
> > > > + }
> > > > +}
> > > >
> > > > Modified: myfaces/tomahawk/trunk/core/src/main/resources-facesconfig/META-INF/faces-config.xml
> > > > URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/resources-facesconfig/META-INF/faces-config.xml?rev=576248&r1=576247&r2=576248&view=diff
> > > > ==============================================================================
> > > > --- myfaces/tomahawk/trunk/core/src/main/resources-facesconfig/META-INF/faces-config.xml (original)
> > > > +++ myfaces/tomahawk/trunk/core/src/main/resources-facesconfig/META-INF/faces-config.xml Sun Sep 16 20:30:22 2007
> > > > @@ -423,6 +423,20 @@
> > > > <converter-class>org.apache.myfaces.custom.fileupload.UploadedFileConverter</converter-class>
> > > > </converter>
> > > >
> > > > + <converter>
> > > > + <converter-for-class>java.util.concurrent.atomic.AtomicBoolean</converter-for-class>
> > > > + <converter-class>org.apache.myfaces.convert.AtomicBooleanConverter</converter-class>
> > > > + </converter>
> > > > +
> > > > + <converter>
> > > > + <converter-for-class>java.util.concurrent.atomic.AtomicInteger</converter-for-class>
> > > > + <converter-class>org.apache.myfaces.convert.AtomicIntegerConverter</converter-class>
> > > > + </converter>
> > > > +
> > > > + <converter>
> > > > + <converter-for-class>java.util.concurrent.atomic.AtomicLong</converter-for-class>
> > > > + <converter-class>org.apache.myfaces.convert.AtomicLongConverter</converter-class>
> > > > + </converter>
> > > >
> > > > <!-- MyFaces Renderkit Extensions -->
> > > >
> > > >
> > > > Modified: myfaces/tomahawk/trunk/core/src/site/site.xml
> > > > URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/site/site.xml?rev=576248&r1=576247&r2=576248&view=diff
> > > > ==============================================================================
> > > > --- myfaces/tomahawk/trunk/core/src/site/site.xml (original)
> > > > +++ myfaces/tomahawk/trunk/core/src/site/site.xml Sun Sep 16 20:30:22 2007
> > > > @@ -76,7 +76,8 @@
> > > > <menu name="Other Goodies">
> > > > <item name="Extensions filter" href="extensionsFilter.html"/>
> > > > <item name="forceId" href="forceId.html"/>
> > > > - <item name="Tiles Support" href="tiles.html"/>
> > > > + <item name="Tiles Support" href="tiles.html"/>
> > > > + <item name="Atomic Conversion" href="atomicConversion.html"/>
> > > > </menu>
> > > >
> > > > <menu name="Testing">
> > > >
> > > > Added: myfaces/tomahawk/trunk/core/src/site/xdoc/atomicConversion.xml
> > > > URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/site/xdoc/atomicConversion.xml?rev=576248&view=auto
> > > > ==============================================================================
> > > > --- myfaces/tomahawk/trunk/core/src/site/xdoc/atomicConversion.xml (added)
> > > > +++ myfaces/tomahawk/trunk/core/src/site/xdoc/atomicConversion.xml Sun Sep 16 20:30:22 2007
> > > > @@ -0,0 +1,49 @@
> > > > +<?xml version="1.0" encoding="UTF-8"?>
> > > > +
> > > > +<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation Maven//EN" "http://maven.apache.org/dtd/maven-xdoc.dtd">
> > > > +
> > > > +<document>
> > > > +
> > > > + <body>
> > > > + <section name="Description">
> > > > + <p>
> > > > + Converters for :
> > > > + <ul>
> > > > + <li>java.util.concurrent.atomic.AtomicBoolean</li>
> > > > + <li>java.util.concurrent.atomic.AtomicInteger</li>
> > > > + <li>java.util.concurrent.atomic.AtomicLong</li>
> > > > + </ul>
> > > > + </p>
> > > > + </section>
> > > > +
> > > > + <section name="API">
> > > > +
> > > > + <table>
> > > > + <tr>
> > > > + <td colspan="1" rowspan="1">since</td>
> > > > + <td colspan="1" rowspan="1">1.1.7</td>
> > > > + </tr>
> > > > + <tr>
> > > > + <td colspan="1" rowspan="1">author</td>
> > > > + <td colspan="1" rowspan="1">Dennis Byrne</td>
> > > > + </tr>
> > > > + </table>
> > > > + </section>
> > > > +
> > > > + <section name="Usage">
> > > > + <source xml:space="preserve">
> > > > +<h:inputText value="#{managedBean.propertyOfTypeAtomicBoolean}"/>
> > > > +<h:inputText value="#{managedBean.propertyOfTypeAtomicInteger}"/>
> > > > +<h:inputText value="#{managedBean.propertyOfTypeAtomicLong}"/>
> > > > + </source>
> > > > + </section>
> > > > +
> > > > + <section name="Instructions">
> > > > + <p>
> > > > + No configuration required. The Converters are registered at startup simply by using MyFaces Tomahawk.
> > > > + </p>
> > > > + </section>
> > > > + </body>
> > > > +
> > > > +
> > > > +</document>
> > > >
> > > > Added: myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicBooleanConverterTestCase.java
> > > > URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicBooleanConverterTestCase.java?rev=576248&view=auto
> > > > ==============================================================================
> > > > --- myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicBooleanConverterTestCase.java (added)
> > > > +++ myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicBooleanConverterTestCase.java Sun Sep 16 20:30:22 2007
> > > > @@ -0,0 +1,48 @@
> > > > +package org.apache.myfaces.convert;
> > > > +
> > > > +import java.util.concurrent.atomic.AtomicBoolean;
> > > > +
> > > > +import javax.faces.convert.Converter;
> > > > +import javax.faces.convert.ConverterException;
> > > > +
> > > > +import junit.framework.TestCase;
> > > > +
> > > > +public class AtomicBooleanConverterTestCase extends TestCase {
> > > > +
> > > > + public void testGetAsObject() {
> > > > +
> > > > + Converter converter = new AtomicBooleanConverter();
> > > > +
> > > > + assertNull(converter.getAsObject(null, null, null));
> > > > + assertNull(converter.getAsObject(null, null, ""));
> > > > + assertNull(converter.getAsObject(null, null, " "));
> > > > + assertTrue(((AtomicBoolean)converter.getAsObject(null, null, "true")).get());
> > > > + assertTrue(((AtomicBoolean)converter.getAsObject(null, null, "true ")).get());
> > > > + assertTrue(((AtomicBoolean)converter.getAsObject(null, null, " true")).get());
> > > > + assertFalse(((AtomicBoolean)converter.getAsObject(null, null, "false")).get());
> > > > + assertFalse(((AtomicBoolean)converter.getAsObject(null, null, "false ")).get());
> > > > + assertFalse(((AtomicBoolean)converter.getAsObject(null, null, " false")).get());
> > > > + assertFalse(((AtomicBoolean)converter.getAsObject(null, null, " boom ")).get());
> > > > +
> > > > + }
> > > > +
> > > > + public void testGetAsString() {
> > > > +
> > > > + Converter converter = new AtomicBooleanConverter();
> > > > +
> > > > + assertEquals("", converter.getAsString(null, null, null));
> > > > + assertEquals("", converter.getAsString(null, null, ""));
> > > > + assertEquals("true", converter.getAsString(null, null, new AtomicBoolean(true)));
> > > > + assertEquals("false", converter.getAsString(null, null, new AtomicBoolean(false)));
> > > > +
> > > > + try {
> > > > +
> > > > + converter.getAsString(null, null, new Boolean(true) );
> > > > +
> > > > + fail();
> > > > +
> > > > + }catch(ConverterException c) { }
> > > > +
> > > > + }
> > > > +
> > > > +}
> > > >
> > > > Added: myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicIntegerConverterTest.java
> > > > URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicIntegerConverterTest.java?rev=576248&view=auto
> > > > ==============================================================================
> > > > --- myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicIntegerConverterTest.java (added)
> > > > +++ myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicIntegerConverterTest.java Sun Sep 16 20:30:22 2007
> > > > @@ -0,0 +1,54 @@
> > > > +package org.apache.myfaces.convert;
> > > > +
> > > > +import java.util.concurrent.atomic.AtomicInteger;
> > > > +
> > > > +import javax.faces.convert.Converter;
> > > > +import javax.faces.convert.ConverterException;
> > > > +
> > > > +import junit.framework.TestCase;
> > > > +
> > > > +public class AtomicIntegerConverterTest extends TestCase {
> > > > +
> > > > + public void testGetAsObject() {
> > > > +
> > > > + Converter converter = new AtomicIntegerConverter();
> > > > +
> > > > + assertNull( converter.getAsObject(null, null, null) );
> > > > + assertNull( converter.getAsObject(null, null, "") );
> > > > + assertNull( converter.getAsObject(null, null, " ") );
> > > > + assertTrue( 8 == ((AtomicInteger) converter.getAsObject(null, null, " 8")).intValue() );
> > > > + assertTrue( 8 == ((AtomicInteger) converter.getAsObject(null, null, "8 ")).intValue() );
> > > > + assertTrue( 8 == ((AtomicInteger) converter.getAsObject(null, null, "8")).intValue() );
> > > > + int over = Integer.MAX_VALUE + 1;
> > > > + assertTrue( over == ((AtomicInteger) converter.getAsObject(null, null, over + "")).intValue() );
> > > > + int under = Integer.MIN_VALUE - 1;
> > > > + assertTrue( under == ((AtomicInteger) converter.getAsObject(null, null, under + "")).intValue() );
> > > > +
> > > > + try {
> > > > +
> > > > + converter.getAsObject(null, null, "NaN");
> > > > +
> > > > + fail("should only take numbers");
> > > > +
> > > > + }catch(ConverterException c) { }
> > > > + }
> > > > +
> > > > + public void testGetAsString() {
> > > > +
> > > > + Converter converter = new AtomicIntegerConverter();
> > > > +
> > > > + assertEquals("", converter.getAsString(null, null, null));
> > > > + assertEquals("", converter.getAsString(null, null, ""));
> > > > + assertEquals(" ", converter.getAsString(null, null, " "));
> > > > + assertEquals("-1", converter.getAsString(null, null, new AtomicInteger(-1)));
> > > > +
> > > > + try {
> > > > +
> > > > + converter.getAsString(null, null, new Integer(0));
> > > > +
> > > > + fail("should only take atomic ints");
> > > > +
> > > > + }catch(ConverterException c) { }
> > > > + }
> > > > +
> > > > +}
> > > >
> > > > Added: myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicLongConverterTest.java
> > > > URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicLongConverterTest.java?rev=576248&view=auto
> > > > ==============================================================================
> > > > --- myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicLongConverterTest.java (added)
> > > > +++ myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicLongConverterTest.java Sun Sep 16 20:30:22 2007
> > > > @@ -0,0 +1,54 @@
> > > > +package org.apache.myfaces.convert;
> > > > +
> > > > +import java.util.concurrent.atomic.AtomicLong;
> > > > +
> > > > +import javax.faces.convert.Converter;
> > > > +import javax.faces.convert.ConverterException;
> > > > +
> > > > +import junit.framework.TestCase;
> > > > +
> > > > +public class AtomicLongConverterTest extends TestCase{
> > > > +
> > > > + public void testGetAsObject() {
> > > > +
> > > > + Converter converter = new AtomicLongConverter();
> > > > +
> > > > + assertNull( converter.getAsObject(null, null, null) );
> > > > + assertNull( converter.getAsObject(null, null, "") );
> > > > + assertNull( converter.getAsObject(null, null, " ") );
> > > > + assertTrue( 8 == ((AtomicLong) converter.getAsObject(null, null, " 8")).longValue() );
> > > > + assertTrue( 8 == ((AtomicLong) converter.getAsObject(null, null, "8 ")).longValue() );
> > > > + assertTrue( 8 == ((AtomicLong) converter.getAsObject(null, null, "8")).longValue() );
> > > > + long over = Long.MAX_VALUE + 1;
> > > > + assertTrue( over == ((AtomicLong) converter.getAsObject(null, null, over + "")).longValue() );
> > > > + long under = Long.MIN_VALUE - 1;
> > > > + assertTrue( under == ((AtomicLong) converter.getAsObject(null, null, under + "")).longValue() );
> > > > +
> > > > + try {
> > > > +
> > > > + converter.getAsObject(null, null, "NaN");
> > > > +
> > > > + fail("should only take numbers");
> > > > +
> > > > + }catch(ConverterException c) { }
> > > > +
> > > > + }
> > > > +
> > > > + public void testGetAsString() {
> > > > +
> > > > + Converter converter = new AtomicLongConverter();
> > > > +
> > > > + assertEquals("", converter.getAsString(null, null, null));
> > > > + assertEquals("", converter.getAsString(null, null, ""));
> > > > + assertEquals(" ", converter.getAsString(null, null, " "));
> > > > + assertEquals("-1", converter.getAsString(null, null, new AtomicLong(-1)));
> > > > +
> > > > + try {
> > > > +
> > > > + converter.getAsString(null, null, new Long(0));
> > > > +
> > > > + fail("should only take atomic ints");
> > > > +
> > > > + }catch(ConverterException c) { }
> > > > + }
> > > > +}
> > > > \ No newline at end of file
> > > >
> > > >
> > > >
> > >
> >
> >
> > --
> > Matthias Wessendorf
> >
> > further stuff:
> > blog: http://matthiaswessendorf.wordpress.com/
> > mail: matzew-at-apache-dot-org
> >
>
--
Matthias Wessendorf
further stuff:
blog: http://matthiaswessendorf.wordpress.com/
mail: matzew-at-apache-dot-org
Re: svn commit: r576248 - in /myfaces/tomahawk/trunk/core/src: main/java/org/apache/myfaces/convert/ main/resources-facesconfig/META-INF/ site/ site/xdoc/ test/java/org/apache/myfaces/convert/
Posted by Mike Kienenberger <mk...@gmail.com>.
No discussion/action taken by original committer -- reverting.
Note that I think these converters would be a good candidate for
sandbox15 and Tomahawk 1.2, and I recommend checking them back into
that location.
On 10/26/07, Matthias Wessendorf <ma...@apache.org> wrote:
> good point.
>
> On 10/25/07, Mike Kienenberger <mk...@gmail.com> wrote:
> > I have another question.
> >
> > Why were these three converters checked into Tomahawk with absolutely
> > no discussion and nothing going through the sandbox first?
> >
> > I search my mail archives for AtomicLongConverter and the ONLY
> > reference to it is the commit itself.
> >
> > -Mike
> >
> >
> > On 9/16/07, dennisbyrne@apache.org <de...@apache.org> wrote:
> > > Author: dennisbyrne
> > > Date: Sun Sep 16 20:30:22 2007
> > > New Revision: 576248
> > >
> > > URL: http://svn.apache.org/viewvc?rev=576248&view=rev
> > > Log:
> > > three new Converters, three tests, and documentation
> > >
> > > Added:
> > > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicBooleanConverter.java
> > > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicIntegerConverter.java
> > > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicLongConverter.java
> > > myfaces/tomahawk/trunk/core/src/site/xdoc/atomicConversion.xml
> > > myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/
> > > myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicBooleanConverterTestCase.java
> > > myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicIntegerConverterTest.java
> > > myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicLongConverterTest.java
> > > Modified:
> > > myfaces/tomahawk/trunk/core/src/main/resources-facesconfig/META-INF/faces-config.xml
> > > myfaces/tomahawk/trunk/core/src/site/site.xml
> > >
> > > Added: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicBooleanConverter.java
> > > URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicBooleanConverter.java?rev=576248&view=auto
> > > ==============================================================================
> > > --- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicBooleanConverter.java (added)
> > > +++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicBooleanConverter.java Sun Sep 16 20:30:22 2007
> > > @@ -0,0 +1,39 @@
> > > +package org.apache.myfaces.convert;
> > > +
> > > +import java.util.concurrent.atomic.AtomicBoolean;
> > > +import java.util.concurrent.atomic.AtomicInteger;
> > > +
> > > +import javax.faces.component.UIComponent;
> > > +import javax.faces.context.FacesContext;
> > > +import javax.faces.convert.Converter;
> > > +import javax.faces.convert.ConverterException;
> > > +
> > > +public class AtomicBooleanConverter implements Converter {
> > > +
> > > + public Object getAsObject(FacesContext ctx, UIComponent ui, String string) {
> > > +
> > > + return string != null && string.trim().length() > 0 ?
> > > + new AtomicBoolean(Boolean.parseBoolean(string.trim())) : null;
> > > + }
> > > +
> > > + public String getAsString(FacesContext ctx, UIComponent ui, Object object) {
> > > +
> > > + String string = "";
> > > +
> > > + if( object != null ) {
> > > +
> > > + if(object instanceof String) {
> > > + string = (String) object;
> > > + }else if(object instanceof AtomicBoolean){
> > > + string = ((AtomicBoolean)object).toString();
> > > + }else {
> > > + throw new ConverterException("Received an instance of "
> > > + + object.getClass().getName() + ", but was expecting an instance of "
> > > + + AtomicInteger.class.getName());
> > > + }
> > > + }
> > > +
> > > + return string;
> > > + }
> > > +
> > > +}
> > >
> > > Added: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicIntegerConverter.java
> > > URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicIntegerConverter.java?rev=576248&view=auto
> > > ==============================================================================
> > > --- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicIntegerConverter.java (added)
> > > +++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicIntegerConverter.java Sun Sep 16 20:30:22 2007
> > > @@ -0,0 +1,49 @@
> > > +package org.apache.myfaces.convert;
> > > +
> > > +import java.util.concurrent.atomic.AtomicInteger;
> > > +
> > > +import javax.faces.component.UIComponent;
> > > +import javax.faces.context.FacesContext;
> > > +import javax.faces.convert.Converter;
> > > +import javax.faces.convert.ConverterException;
> > > +
> > > +public class AtomicIntegerConverter implements Converter {
> > > +
> > > + public Object getAsObject(FacesContext ctx, UIComponent ui, String value) {
> > > +
> > > + Object object = null;
> > > +
> > > + if( value != null && value.trim().length() > 0 ) {
> > > + try
> > > + {
> > > + object = new AtomicInteger(Integer.parseInt(value.trim()));
> > > +
> > > + }catch(NumberFormatException nfe) {
> > > + throw new ConverterException(nfe);
> > > + }
> > > + }
> > > +
> > > + return object;
> > > + }
> > > +
> > > + public String getAsString(FacesContext ctx, UIComponent ui, Object object) {
> > > +
> > > + String string = "";
> > > +
> > > + if(object != null) {
> > > +
> > > + if( object instanceof String ) {
> > > + string = (String) object;
> > > + }else if(object instanceof AtomicInteger) {
> > > + string = ((AtomicInteger)object).toString();
> > > + }else {
> > > + throw new ConverterException("Received an instance of "
> > > + + object.getClass().getName() + ", but was expecting an instance of "
> > > + + AtomicInteger.class.getName());
> > > + }
> > > + }
> > > +
> > > + return string;
> > > + }
> > > +
> > > +}
> > >
> > > Added: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicLongConverter.java
> > > URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicLongConverter.java?rev=576248&view=auto
> > > ==============================================================================
> > > --- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicLongConverter.java (added)
> > > +++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicLongConverter.java Sun Sep 16 20:30:22 2007
> > > @@ -0,0 +1,48 @@
> > > +package org.apache.myfaces.convert;
> > > +
> > > +import java.util.concurrent.atomic.AtomicLong;
> > > +
> > > +import javax.faces.component.UIComponent;
> > > +import javax.faces.context.FacesContext;
> > > +import javax.faces.convert.Converter;
> > > +import javax.faces.convert.ConverterException;
> > > +
> > > +public class AtomicLongConverter implements Converter {
> > > +
> > > + public Object getAsObject(FacesContext ctx, UIComponent ui, String value) {
> > > +
> > > + Object object = null;
> > > +
> > > + if( value != null && value.trim().length() > 0 ) {
> > > + try
> > > + {
> > > + object = new AtomicLong(Long.parseLong(value.trim()));
> > > +
> > > + }catch(NumberFormatException nfe) {
> > > + throw new ConverterException(nfe);
> > > + }
> > > + }
> > > +
> > > + return object;
> > > + }
> > > +
> > > + public String getAsString(FacesContext ctx, UIComponent ui, Object object) {
> > > +
> > > + String string = "";
> > > +
> > > + if(object != null) {
> > > +
> > > + if( object instanceof String ) {
> > > + string = (String) object;
> > > + }else if(object instanceof AtomicLong) {
> > > + string = ((AtomicLong)object).toString();
> > > + }else {
> > > + throw new ConverterException("Received an instance of "
> > > + + object.getClass().getName() + ", but was expecting an instance of "
> > > + + AtomicLong.class.getName());
> > > + }
> > > + }
> > > +
> > > + return string;
> > > + }
> > > +}
> > >
> > > Modified: myfaces/tomahawk/trunk/core/src/main/resources-facesconfig/META-INF/faces-config.xml
> > > URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/resources-facesconfig/META-INF/faces-config.xml?rev=576248&r1=576247&r2=576248&view=diff
> > > ==============================================================================
> > > --- myfaces/tomahawk/trunk/core/src/main/resources-facesconfig/META-INF/faces-config.xml (original)
> > > +++ myfaces/tomahawk/trunk/core/src/main/resources-facesconfig/META-INF/faces-config.xml Sun Sep 16 20:30:22 2007
> > > @@ -423,6 +423,20 @@
> > > <converter-class>org.apache.myfaces.custom.fileupload.UploadedFileConverter</converter-class>
> > > </converter>
> > >
> > > + <converter>
> > > + <converter-for-class>java.util.concurrent.atomic.AtomicBoolean</converter-for-class>
> > > + <converter-class>org.apache.myfaces.convert.AtomicBooleanConverter</converter-class>
> > > + </converter>
> > > +
> > > + <converter>
> > > + <converter-for-class>java.util.concurrent.atomic.AtomicInteger</converter-for-class>
> > > + <converter-class>org.apache.myfaces.convert.AtomicIntegerConverter</converter-class>
> > > + </converter>
> > > +
> > > + <converter>
> > > + <converter-for-class>java.util.concurrent.atomic.AtomicLong</converter-for-class>
> > > + <converter-class>org.apache.myfaces.convert.AtomicLongConverter</converter-class>
> > > + </converter>
> > >
> > > <!-- MyFaces Renderkit Extensions -->
> > >
> > >
> > > Modified: myfaces/tomahawk/trunk/core/src/site/site.xml
> > > URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/site/site.xml?rev=576248&r1=576247&r2=576248&view=diff
> > > ==============================================================================
> > > --- myfaces/tomahawk/trunk/core/src/site/site.xml (original)
> > > +++ myfaces/tomahawk/trunk/core/src/site/site.xml Sun Sep 16 20:30:22 2007
> > > @@ -76,7 +76,8 @@
> > > <menu name="Other Goodies">
> > > <item name="Extensions filter" href="extensionsFilter.html"/>
> > > <item name="forceId" href="forceId.html"/>
> > > - <item name="Tiles Support" href="tiles.html"/>
> > > + <item name="Tiles Support" href="tiles.html"/>
> > > + <item name="Atomic Conversion" href="atomicConversion.html"/>
> > > </menu>
> > >
> > > <menu name="Testing">
> > >
> > > Added: myfaces/tomahawk/trunk/core/src/site/xdoc/atomicConversion.xml
> > > URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/site/xdoc/atomicConversion.xml?rev=576248&view=auto
> > > ==============================================================================
> > > --- myfaces/tomahawk/trunk/core/src/site/xdoc/atomicConversion.xml (added)
> > > +++ myfaces/tomahawk/trunk/core/src/site/xdoc/atomicConversion.xml Sun Sep 16 20:30:22 2007
> > > @@ -0,0 +1,49 @@
> > > +<?xml version="1.0" encoding="UTF-8"?>
> > > +
> > > +<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation Maven//EN" "http://maven.apache.org/dtd/maven-xdoc.dtd">
> > > +
> > > +<document>
> > > +
> > > + <body>
> > > + <section name="Description">
> > > + <p>
> > > + Converters for :
> > > + <ul>
> > > + <li>java.util.concurrent.atomic.AtomicBoolean</li>
> > > + <li>java.util.concurrent.atomic.AtomicInteger</li>
> > > + <li>java.util.concurrent.atomic.AtomicLong</li>
> > > + </ul>
> > > + </p>
> > > + </section>
> > > +
> > > + <section name="API">
> > > +
> > > + <table>
> > > + <tr>
> > > + <td colspan="1" rowspan="1">since</td>
> > > + <td colspan="1" rowspan="1">1.1.7</td>
> > > + </tr>
> > > + <tr>
> > > + <td colspan="1" rowspan="1">author</td>
> > > + <td colspan="1" rowspan="1">Dennis Byrne</td>
> > > + </tr>
> > > + </table>
> > > + </section>
> > > +
> > > + <section name="Usage">
> > > + <source xml:space="preserve">
> > > +<h:inputText value="#{managedBean.propertyOfTypeAtomicBoolean}"/>
> > > +<h:inputText value="#{managedBean.propertyOfTypeAtomicInteger}"/>
> > > +<h:inputText value="#{managedBean.propertyOfTypeAtomicLong}"/>
> > > + </source>
> > > + </section>
> > > +
> > > + <section name="Instructions">
> > > + <p>
> > > + No configuration required. The Converters are registered at startup simply by using MyFaces Tomahawk.
> > > + </p>
> > > + </section>
> > > + </body>
> > > +
> > > +
> > > +</document>
> > >
> > > Added: myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicBooleanConverterTestCase.java
> > > URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicBooleanConverterTestCase.java?rev=576248&view=auto
> > > ==============================================================================
> > > --- myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicBooleanConverterTestCase.java (added)
> > > +++ myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicBooleanConverterTestCase.java Sun Sep 16 20:30:22 2007
> > > @@ -0,0 +1,48 @@
> > > +package org.apache.myfaces.convert;
> > > +
> > > +import java.util.concurrent.atomic.AtomicBoolean;
> > > +
> > > +import javax.faces.convert.Converter;
> > > +import javax.faces.convert.ConverterException;
> > > +
> > > +import junit.framework.TestCase;
> > > +
> > > +public class AtomicBooleanConverterTestCase extends TestCase {
> > > +
> > > + public void testGetAsObject() {
> > > +
> > > + Converter converter = new AtomicBooleanConverter();
> > > +
> > > + assertNull(converter.getAsObject(null, null, null));
> > > + assertNull(converter.getAsObject(null, null, ""));
> > > + assertNull(converter.getAsObject(null, null, " "));
> > > + assertTrue(((AtomicBoolean)converter.getAsObject(null, null, "true")).get());
> > > + assertTrue(((AtomicBoolean)converter.getAsObject(null, null, "true ")).get());
> > > + assertTrue(((AtomicBoolean)converter.getAsObject(null, null, " true")).get());
> > > + assertFalse(((AtomicBoolean)converter.getAsObject(null, null, "false")).get());
> > > + assertFalse(((AtomicBoolean)converter.getAsObject(null, null, "false ")).get());
> > > + assertFalse(((AtomicBoolean)converter.getAsObject(null, null, " false")).get());
> > > + assertFalse(((AtomicBoolean)converter.getAsObject(null, null, " boom ")).get());
> > > +
> > > + }
> > > +
> > > + public void testGetAsString() {
> > > +
> > > + Converter converter = new AtomicBooleanConverter();
> > > +
> > > + assertEquals("", converter.getAsString(null, null, null));
> > > + assertEquals("", converter.getAsString(null, null, ""));
> > > + assertEquals("true", converter.getAsString(null, null, new AtomicBoolean(true)));
> > > + assertEquals("false", converter.getAsString(null, null, new AtomicBoolean(false)));
> > > +
> > > + try {
> > > +
> > > + converter.getAsString(null, null, new Boolean(true) );
> > > +
> > > + fail();
> > > +
> > > + }catch(ConverterException c) { }
> > > +
> > > + }
> > > +
> > > +}
> > >
> > > Added: myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicIntegerConverterTest.java
> > > URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicIntegerConverterTest.java?rev=576248&view=auto
> > > ==============================================================================
> > > --- myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicIntegerConverterTest.java (added)
> > > +++ myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicIntegerConverterTest.java Sun Sep 16 20:30:22 2007
> > > @@ -0,0 +1,54 @@
> > > +package org.apache.myfaces.convert;
> > > +
> > > +import java.util.concurrent.atomic.AtomicInteger;
> > > +
> > > +import javax.faces.convert.Converter;
> > > +import javax.faces.convert.ConverterException;
> > > +
> > > +import junit.framework.TestCase;
> > > +
> > > +public class AtomicIntegerConverterTest extends TestCase {
> > > +
> > > + public void testGetAsObject() {
> > > +
> > > + Converter converter = new AtomicIntegerConverter();
> > > +
> > > + assertNull( converter.getAsObject(null, null, null) );
> > > + assertNull( converter.getAsObject(null, null, "") );
> > > + assertNull( converter.getAsObject(null, null, " ") );
> > > + assertTrue( 8 == ((AtomicInteger) converter.getAsObject(null, null, " 8")).intValue() );
> > > + assertTrue( 8 == ((AtomicInteger) converter.getAsObject(null, null, "8 ")).intValue() );
> > > + assertTrue( 8 == ((AtomicInteger) converter.getAsObject(null, null, "8")).intValue() );
> > > + int over = Integer.MAX_VALUE + 1;
> > > + assertTrue( over == ((AtomicInteger) converter.getAsObject(null, null, over + "")).intValue() );
> > > + int under = Integer.MIN_VALUE - 1;
> > > + assertTrue( under == ((AtomicInteger) converter.getAsObject(null, null, under + "")).intValue() );
> > > +
> > > + try {
> > > +
> > > + converter.getAsObject(null, null, "NaN");
> > > +
> > > + fail("should only take numbers");
> > > +
> > > + }catch(ConverterException c) { }
> > > + }
> > > +
> > > + public void testGetAsString() {
> > > +
> > > + Converter converter = new AtomicIntegerConverter();
> > > +
> > > + assertEquals("", converter.getAsString(null, null, null));
> > > + assertEquals("", converter.getAsString(null, null, ""));
> > > + assertEquals(" ", converter.getAsString(null, null, " "));
> > > + assertEquals("-1", converter.getAsString(null, null, new AtomicInteger(-1)));
> > > +
> > > + try {
> > > +
> > > + converter.getAsString(null, null, new Integer(0));
> > > +
> > > + fail("should only take atomic ints");
> > > +
> > > + }catch(ConverterException c) { }
> > > + }
> > > +
> > > +}
> > >
> > > Added: myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicLongConverterTest.java
> > > URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicLongConverterTest.java?rev=576248&view=auto
> > > ==============================================================================
> > > --- myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicLongConverterTest.java (added)
> > > +++ myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicLongConverterTest.java Sun Sep 16 20:30:22 2007
> > > @@ -0,0 +1,54 @@
> > > +package org.apache.myfaces.convert;
> > > +
> > > +import java.util.concurrent.atomic.AtomicLong;
> > > +
> > > +import javax.faces.convert.Converter;
> > > +import javax.faces.convert.ConverterException;
> > > +
> > > +import junit.framework.TestCase;
> > > +
> > > +public class AtomicLongConverterTest extends TestCase{
> > > +
> > > + public void testGetAsObject() {
> > > +
> > > + Converter converter = new AtomicLongConverter();
> > > +
> > > + assertNull( converter.getAsObject(null, null, null) );
> > > + assertNull( converter.getAsObject(null, null, "") );
> > > + assertNull( converter.getAsObject(null, null, " ") );
> > > + assertTrue( 8 == ((AtomicLong) converter.getAsObject(null, null, " 8")).longValue() );
> > > + assertTrue( 8 == ((AtomicLong) converter.getAsObject(null, null, "8 ")).longValue() );
> > > + assertTrue( 8 == ((AtomicLong) converter.getAsObject(null, null, "8")).longValue() );
> > > + long over = Long.MAX_VALUE + 1;
> > > + assertTrue( over == ((AtomicLong) converter.getAsObject(null, null, over + "")).longValue() );
> > > + long under = Long.MIN_VALUE - 1;
> > > + assertTrue( under == ((AtomicLong) converter.getAsObject(null, null, under + "")).longValue() );
> > > +
> > > + try {
> > > +
> > > + converter.getAsObject(null, null, "NaN");
> > > +
> > > + fail("should only take numbers");
> > > +
> > > + }catch(ConverterException c) { }
> > > +
> > > + }
> > > +
> > > + public void testGetAsString() {
> > > +
> > > + Converter converter = new AtomicLongConverter();
> > > +
> > > + assertEquals("", converter.getAsString(null, null, null));
> > > + assertEquals("", converter.getAsString(null, null, ""));
> > > + assertEquals(" ", converter.getAsString(null, null, " "));
> > > + assertEquals("-1", converter.getAsString(null, null, new AtomicLong(-1)));
> > > +
> > > + try {
> > > +
> > > + converter.getAsString(null, null, new Long(0));
> > > +
> > > + fail("should only take atomic ints");
> > > +
> > > + }catch(ConverterException c) { }
> > > + }
> > > +}
> > > \ No newline at end of file
> > >
> > >
> > >
> >
>
>
> --
> Matthias Wessendorf
>
> further stuff:
> blog: http://matthiaswessendorf.wordpress.com/
> mail: matzew-at-apache-dot-org
>
Re: svn commit: r576248 - in /myfaces/tomahawk/trunk/core/src: main/java/org/apache/myfaces/convert/ main/resources-facesconfig/META-INF/ site/ site/xdoc/ test/java/org/apache/myfaces/convert/
Posted by Matthias Wessendorf <ma...@apache.org>.
good point.
On 10/25/07, Mike Kienenberger <mk...@gmail.com> wrote:
> I have another question.
>
> Why were these three converters checked into Tomahawk with absolutely
> no discussion and nothing going through the sandbox first?
>
> I search my mail archives for AtomicLongConverter and the ONLY
> reference to it is the commit itself.
>
> -Mike
>
>
> On 9/16/07, dennisbyrne@apache.org <de...@apache.org> wrote:
> > Author: dennisbyrne
> > Date: Sun Sep 16 20:30:22 2007
> > New Revision: 576248
> >
> > URL: http://svn.apache.org/viewvc?rev=576248&view=rev
> > Log:
> > three new Converters, three tests, and documentation
> >
> > Added:
> > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicBooleanConverter.java
> > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicIntegerConverter.java
> > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicLongConverter.java
> > myfaces/tomahawk/trunk/core/src/site/xdoc/atomicConversion.xml
> > myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/
> > myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicBooleanConverterTestCase.java
> > myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicIntegerConverterTest.java
> > myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicLongConverterTest.java
> > Modified:
> > myfaces/tomahawk/trunk/core/src/main/resources-facesconfig/META-INF/faces-config.xml
> > myfaces/tomahawk/trunk/core/src/site/site.xml
> >
> > Added: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicBooleanConverter.java
> > URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicBooleanConverter.java?rev=576248&view=auto
> > ==============================================================================
> > --- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicBooleanConverter.java (added)
> > +++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicBooleanConverter.java Sun Sep 16 20:30:22 2007
> > @@ -0,0 +1,39 @@
> > +package org.apache.myfaces.convert;
> > +
> > +import java.util.concurrent.atomic.AtomicBoolean;
> > +import java.util.concurrent.atomic.AtomicInteger;
> > +
> > +import javax.faces.component.UIComponent;
> > +import javax.faces.context.FacesContext;
> > +import javax.faces.convert.Converter;
> > +import javax.faces.convert.ConverterException;
> > +
> > +public class AtomicBooleanConverter implements Converter {
> > +
> > + public Object getAsObject(FacesContext ctx, UIComponent ui, String string) {
> > +
> > + return string != null && string.trim().length() > 0 ?
> > + new AtomicBoolean(Boolean.parseBoolean(string.trim())) : null;
> > + }
> > +
> > + public String getAsString(FacesContext ctx, UIComponent ui, Object object) {
> > +
> > + String string = "";
> > +
> > + if( object != null ) {
> > +
> > + if(object instanceof String) {
> > + string = (String) object;
> > + }else if(object instanceof AtomicBoolean){
> > + string = ((AtomicBoolean)object).toString();
> > + }else {
> > + throw new ConverterException("Received an instance of "
> > + + object.getClass().getName() + ", but was expecting an instance of "
> > + + AtomicInteger.class.getName());
> > + }
> > + }
> > +
> > + return string;
> > + }
> > +
> > +}
> >
> > Added: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicIntegerConverter.java
> > URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicIntegerConverter.java?rev=576248&view=auto
> > ==============================================================================
> > --- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicIntegerConverter.java (added)
> > +++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicIntegerConverter.java Sun Sep 16 20:30:22 2007
> > @@ -0,0 +1,49 @@
> > +package org.apache.myfaces.convert;
> > +
> > +import java.util.concurrent.atomic.AtomicInteger;
> > +
> > +import javax.faces.component.UIComponent;
> > +import javax.faces.context.FacesContext;
> > +import javax.faces.convert.Converter;
> > +import javax.faces.convert.ConverterException;
> > +
> > +public class AtomicIntegerConverter implements Converter {
> > +
> > + public Object getAsObject(FacesContext ctx, UIComponent ui, String value) {
> > +
> > + Object object = null;
> > +
> > + if( value != null && value.trim().length() > 0 ) {
> > + try
> > + {
> > + object = new AtomicInteger(Integer.parseInt(value.trim()));
> > +
> > + }catch(NumberFormatException nfe) {
> > + throw new ConverterException(nfe);
> > + }
> > + }
> > +
> > + return object;
> > + }
> > +
> > + public String getAsString(FacesContext ctx, UIComponent ui, Object object) {
> > +
> > + String string = "";
> > +
> > + if(object != null) {
> > +
> > + if( object instanceof String ) {
> > + string = (String) object;
> > + }else if(object instanceof AtomicInteger) {
> > + string = ((AtomicInteger)object).toString();
> > + }else {
> > + throw new ConverterException("Received an instance of "
> > + + object.getClass().getName() + ", but was expecting an instance of "
> > + + AtomicInteger.class.getName());
> > + }
> > + }
> > +
> > + return string;
> > + }
> > +
> > +}
> >
> > Added: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicLongConverter.java
> > URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicLongConverter.java?rev=576248&view=auto
> > ==============================================================================
> > --- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicLongConverter.java (added)
> > +++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicLongConverter.java Sun Sep 16 20:30:22 2007
> > @@ -0,0 +1,48 @@
> > +package org.apache.myfaces.convert;
> > +
> > +import java.util.concurrent.atomic.AtomicLong;
> > +
> > +import javax.faces.component.UIComponent;
> > +import javax.faces.context.FacesContext;
> > +import javax.faces.convert.Converter;
> > +import javax.faces.convert.ConverterException;
> > +
> > +public class AtomicLongConverter implements Converter {
> > +
> > + public Object getAsObject(FacesContext ctx, UIComponent ui, String value) {
> > +
> > + Object object = null;
> > +
> > + if( value != null && value.trim().length() > 0 ) {
> > + try
> > + {
> > + object = new AtomicLong(Long.parseLong(value.trim()));
> > +
> > + }catch(NumberFormatException nfe) {
> > + throw new ConverterException(nfe);
> > + }
> > + }
> > +
> > + return object;
> > + }
> > +
> > + public String getAsString(FacesContext ctx, UIComponent ui, Object object) {
> > +
> > + String string = "";
> > +
> > + if(object != null) {
> > +
> > + if( object instanceof String ) {
> > + string = (String) object;
> > + }else if(object instanceof AtomicLong) {
> > + string = ((AtomicLong)object).toString();
> > + }else {
> > + throw new ConverterException("Received an instance of "
> > + + object.getClass().getName() + ", but was expecting an instance of "
> > + + AtomicLong.class.getName());
> > + }
> > + }
> > +
> > + return string;
> > + }
> > +}
> >
> > Modified: myfaces/tomahawk/trunk/core/src/main/resources-facesconfig/META-INF/faces-config.xml
> > URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/resources-facesconfig/META-INF/faces-config.xml?rev=576248&r1=576247&r2=576248&view=diff
> > ==============================================================================
> > --- myfaces/tomahawk/trunk/core/src/main/resources-facesconfig/META-INF/faces-config.xml (original)
> > +++ myfaces/tomahawk/trunk/core/src/main/resources-facesconfig/META-INF/faces-config.xml Sun Sep 16 20:30:22 2007
> > @@ -423,6 +423,20 @@
> > <converter-class>org.apache.myfaces.custom.fileupload.UploadedFileConverter</converter-class>
> > </converter>
> >
> > + <converter>
> > + <converter-for-class>java.util.concurrent.atomic.AtomicBoolean</converter-for-class>
> > + <converter-class>org.apache.myfaces.convert.AtomicBooleanConverter</converter-class>
> > + </converter>
> > +
> > + <converter>
> > + <converter-for-class>java.util.concurrent.atomic.AtomicInteger</converter-for-class>
> > + <converter-class>org.apache.myfaces.convert.AtomicIntegerConverter</converter-class>
> > + </converter>
> > +
> > + <converter>
> > + <converter-for-class>java.util.concurrent.atomic.AtomicLong</converter-for-class>
> > + <converter-class>org.apache.myfaces.convert.AtomicLongConverter</converter-class>
> > + </converter>
> >
> > <!-- MyFaces Renderkit Extensions -->
> >
> >
> > Modified: myfaces/tomahawk/trunk/core/src/site/site.xml
> > URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/site/site.xml?rev=576248&r1=576247&r2=576248&view=diff
> > ==============================================================================
> > --- myfaces/tomahawk/trunk/core/src/site/site.xml (original)
> > +++ myfaces/tomahawk/trunk/core/src/site/site.xml Sun Sep 16 20:30:22 2007
> > @@ -76,7 +76,8 @@
> > <menu name="Other Goodies">
> > <item name="Extensions filter" href="extensionsFilter.html"/>
> > <item name="forceId" href="forceId.html"/>
> > - <item name="Tiles Support" href="tiles.html"/>
> > + <item name="Tiles Support" href="tiles.html"/>
> > + <item name="Atomic Conversion" href="atomicConversion.html"/>
> > </menu>
> >
> > <menu name="Testing">
> >
> > Added: myfaces/tomahawk/trunk/core/src/site/xdoc/atomicConversion.xml
> > URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/site/xdoc/atomicConversion.xml?rev=576248&view=auto
> > ==============================================================================
> > --- myfaces/tomahawk/trunk/core/src/site/xdoc/atomicConversion.xml (added)
> > +++ myfaces/tomahawk/trunk/core/src/site/xdoc/atomicConversion.xml Sun Sep 16 20:30:22 2007
> > @@ -0,0 +1,49 @@
> > +<?xml version="1.0" encoding="UTF-8"?>
> > +
> > +<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation Maven//EN" "http://maven.apache.org/dtd/maven-xdoc.dtd">
> > +
> > +<document>
> > +
> > + <body>
> > + <section name="Description">
> > + <p>
> > + Converters for :
> > + <ul>
> > + <li>java.util.concurrent.atomic.AtomicBoolean</li>
> > + <li>java.util.concurrent.atomic.AtomicInteger</li>
> > + <li>java.util.concurrent.atomic.AtomicLong</li>
> > + </ul>
> > + </p>
> > + </section>
> > +
> > + <section name="API">
> > +
> > + <table>
> > + <tr>
> > + <td colspan="1" rowspan="1">since</td>
> > + <td colspan="1" rowspan="1">1.1.7</td>
> > + </tr>
> > + <tr>
> > + <td colspan="1" rowspan="1">author</td>
> > + <td colspan="1" rowspan="1">Dennis Byrne</td>
> > + </tr>
> > + </table>
> > + </section>
> > +
> > + <section name="Usage">
> > + <source xml:space="preserve">
> > +<h:inputText value="#{managedBean.propertyOfTypeAtomicBoolean}"/>
> > +<h:inputText value="#{managedBean.propertyOfTypeAtomicInteger}"/>
> > +<h:inputText value="#{managedBean.propertyOfTypeAtomicLong}"/>
> > + </source>
> > + </section>
> > +
> > + <section name="Instructions">
> > + <p>
> > + No configuration required. The Converters are registered at startup simply by using MyFaces Tomahawk.
> > + </p>
> > + </section>
> > + </body>
> > +
> > +
> > +</document>
> >
> > Added: myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicBooleanConverterTestCase.java
> > URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicBooleanConverterTestCase.java?rev=576248&view=auto
> > ==============================================================================
> > --- myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicBooleanConverterTestCase.java (added)
> > +++ myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicBooleanConverterTestCase.java Sun Sep 16 20:30:22 2007
> > @@ -0,0 +1,48 @@
> > +package org.apache.myfaces.convert;
> > +
> > +import java.util.concurrent.atomic.AtomicBoolean;
> > +
> > +import javax.faces.convert.Converter;
> > +import javax.faces.convert.ConverterException;
> > +
> > +import junit.framework.TestCase;
> > +
> > +public class AtomicBooleanConverterTestCase extends TestCase {
> > +
> > + public void testGetAsObject() {
> > +
> > + Converter converter = new AtomicBooleanConverter();
> > +
> > + assertNull(converter.getAsObject(null, null, null));
> > + assertNull(converter.getAsObject(null, null, ""));
> > + assertNull(converter.getAsObject(null, null, " "));
> > + assertTrue(((AtomicBoolean)converter.getAsObject(null, null, "true")).get());
> > + assertTrue(((AtomicBoolean)converter.getAsObject(null, null, "true ")).get());
> > + assertTrue(((AtomicBoolean)converter.getAsObject(null, null, " true")).get());
> > + assertFalse(((AtomicBoolean)converter.getAsObject(null, null, "false")).get());
> > + assertFalse(((AtomicBoolean)converter.getAsObject(null, null, "false ")).get());
> > + assertFalse(((AtomicBoolean)converter.getAsObject(null, null, " false")).get());
> > + assertFalse(((AtomicBoolean)converter.getAsObject(null, null, " boom ")).get());
> > +
> > + }
> > +
> > + public void testGetAsString() {
> > +
> > + Converter converter = new AtomicBooleanConverter();
> > +
> > + assertEquals("", converter.getAsString(null, null, null));
> > + assertEquals("", converter.getAsString(null, null, ""));
> > + assertEquals("true", converter.getAsString(null, null, new AtomicBoolean(true)));
> > + assertEquals("false", converter.getAsString(null, null, new AtomicBoolean(false)));
> > +
> > + try {
> > +
> > + converter.getAsString(null, null, new Boolean(true) );
> > +
> > + fail();
> > +
> > + }catch(ConverterException c) { }
> > +
> > + }
> > +
> > +}
> >
> > Added: myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicIntegerConverterTest.java
> > URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicIntegerConverterTest.java?rev=576248&view=auto
> > ==============================================================================
> > --- myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicIntegerConverterTest.java (added)
> > +++ myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicIntegerConverterTest.java Sun Sep 16 20:30:22 2007
> > @@ -0,0 +1,54 @@
> > +package org.apache.myfaces.convert;
> > +
> > +import java.util.concurrent.atomic.AtomicInteger;
> > +
> > +import javax.faces.convert.Converter;
> > +import javax.faces.convert.ConverterException;
> > +
> > +import junit.framework.TestCase;
> > +
> > +public class AtomicIntegerConverterTest extends TestCase {
> > +
> > + public void testGetAsObject() {
> > +
> > + Converter converter = new AtomicIntegerConverter();
> > +
> > + assertNull( converter.getAsObject(null, null, null) );
> > + assertNull( converter.getAsObject(null, null, "") );
> > + assertNull( converter.getAsObject(null, null, " ") );
> > + assertTrue( 8 == ((AtomicInteger) converter.getAsObject(null, null, " 8")).intValue() );
> > + assertTrue( 8 == ((AtomicInteger) converter.getAsObject(null, null, "8 ")).intValue() );
> > + assertTrue( 8 == ((AtomicInteger) converter.getAsObject(null, null, "8")).intValue() );
> > + int over = Integer.MAX_VALUE + 1;
> > + assertTrue( over == ((AtomicInteger) converter.getAsObject(null, null, over + "")).intValue() );
> > + int under = Integer.MIN_VALUE - 1;
> > + assertTrue( under == ((AtomicInteger) converter.getAsObject(null, null, under + "")).intValue() );
> > +
> > + try {
> > +
> > + converter.getAsObject(null, null, "NaN");
> > +
> > + fail("should only take numbers");
> > +
> > + }catch(ConverterException c) { }
> > + }
> > +
> > + public void testGetAsString() {
> > +
> > + Converter converter = new AtomicIntegerConverter();
> > +
> > + assertEquals("", converter.getAsString(null, null, null));
> > + assertEquals("", converter.getAsString(null, null, ""));
> > + assertEquals(" ", converter.getAsString(null, null, " "));
> > + assertEquals("-1", converter.getAsString(null, null, new AtomicInteger(-1)));
> > +
> > + try {
> > +
> > + converter.getAsString(null, null, new Integer(0));
> > +
> > + fail("should only take atomic ints");
> > +
> > + }catch(ConverterException c) { }
> > + }
> > +
> > +}
> >
> > Added: myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicLongConverterTest.java
> > URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicLongConverterTest.java?rev=576248&view=auto
> > ==============================================================================
> > --- myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicLongConverterTest.java (added)
> > +++ myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicLongConverterTest.java Sun Sep 16 20:30:22 2007
> > @@ -0,0 +1,54 @@
> > +package org.apache.myfaces.convert;
> > +
> > +import java.util.concurrent.atomic.AtomicLong;
> > +
> > +import javax.faces.convert.Converter;
> > +import javax.faces.convert.ConverterException;
> > +
> > +import junit.framework.TestCase;
> > +
> > +public class AtomicLongConverterTest extends TestCase{
> > +
> > + public void testGetAsObject() {
> > +
> > + Converter converter = new AtomicLongConverter();
> > +
> > + assertNull( converter.getAsObject(null, null, null) );
> > + assertNull( converter.getAsObject(null, null, "") );
> > + assertNull( converter.getAsObject(null, null, " ") );
> > + assertTrue( 8 == ((AtomicLong) converter.getAsObject(null, null, " 8")).longValue() );
> > + assertTrue( 8 == ((AtomicLong) converter.getAsObject(null, null, "8 ")).longValue() );
> > + assertTrue( 8 == ((AtomicLong) converter.getAsObject(null, null, "8")).longValue() );
> > + long over = Long.MAX_VALUE + 1;
> > + assertTrue( over == ((AtomicLong) converter.getAsObject(null, null, over + "")).longValue() );
> > + long under = Long.MIN_VALUE - 1;
> > + assertTrue( under == ((AtomicLong) converter.getAsObject(null, null, under + "")).longValue() );
> > +
> > + try {
> > +
> > + converter.getAsObject(null, null, "NaN");
> > +
> > + fail("should only take numbers");
> > +
> > + }catch(ConverterException c) { }
> > +
> > + }
> > +
> > + public void testGetAsString() {
> > +
> > + Converter converter = new AtomicLongConverter();
> > +
> > + assertEquals("", converter.getAsString(null, null, null));
> > + assertEquals("", converter.getAsString(null, null, ""));
> > + assertEquals(" ", converter.getAsString(null, null, " "));
> > + assertEquals("-1", converter.getAsString(null, null, new AtomicLong(-1)));
> > +
> > + try {
> > +
> > + converter.getAsString(null, null, new Long(0));
> > +
> > + fail("should only take atomic ints");
> > +
> > + }catch(ConverterException c) { }
> > + }
> > +}
> > \ No newline at end of file
> >
> >
> >
>
--
Matthias Wessendorf
further stuff:
blog: http://matthiaswessendorf.wordpress.com/
mail: matzew-at-apache-dot-org
Re: svn commit: r576248 - in /myfaces/tomahawk/trunk/core/src: main/java/org/apache/myfaces/convert/ main/resources-facesconfig/META-INF/ site/ site/xdoc/ test/java/org/apache/myfaces/convert/
Posted by Mike Kienenberger <mk...@gmail.com>.
I have another question.
Why were these three converters checked into Tomahawk with absolutely
no discussion and nothing going through the sandbox first?
I search my mail archives for AtomicLongConverter and the ONLY
reference to it is the commit itself.
-Mike
On 9/16/07, dennisbyrne@apache.org <de...@apache.org> wrote:
> Author: dennisbyrne
> Date: Sun Sep 16 20:30:22 2007
> New Revision: 576248
>
> URL: http://svn.apache.org/viewvc?rev=576248&view=rev
> Log:
> three new Converters, three tests, and documentation
>
> Added:
> myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicBooleanConverter.java
> myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicIntegerConverter.java
> myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicLongConverter.java
> myfaces/tomahawk/trunk/core/src/site/xdoc/atomicConversion.xml
> myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/
> myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicBooleanConverterTestCase.java
> myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicIntegerConverterTest.java
> myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicLongConverterTest.java
> Modified:
> myfaces/tomahawk/trunk/core/src/main/resources-facesconfig/META-INF/faces-config.xml
> myfaces/tomahawk/trunk/core/src/site/site.xml
>
> Added: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicBooleanConverter.java
> URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicBooleanConverter.java?rev=576248&view=auto
> ==============================================================================
> --- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicBooleanConverter.java (added)
> +++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicBooleanConverter.java Sun Sep 16 20:30:22 2007
> @@ -0,0 +1,39 @@
> +package org.apache.myfaces.convert;
> +
> +import java.util.concurrent.atomic.AtomicBoolean;
> +import java.util.concurrent.atomic.AtomicInteger;
> +
> +import javax.faces.component.UIComponent;
> +import javax.faces.context.FacesContext;
> +import javax.faces.convert.Converter;
> +import javax.faces.convert.ConverterException;
> +
> +public class AtomicBooleanConverter implements Converter {
> +
> + public Object getAsObject(FacesContext ctx, UIComponent ui, String string) {
> +
> + return string != null && string.trim().length() > 0 ?
> + new AtomicBoolean(Boolean.parseBoolean(string.trim())) : null;
> + }
> +
> + public String getAsString(FacesContext ctx, UIComponent ui, Object object) {
> +
> + String string = "";
> +
> + if( object != null ) {
> +
> + if(object instanceof String) {
> + string = (String) object;
> + }else if(object instanceof AtomicBoolean){
> + string = ((AtomicBoolean)object).toString();
> + }else {
> + throw new ConverterException("Received an instance of "
> + + object.getClass().getName() + ", but was expecting an instance of "
> + + AtomicInteger.class.getName());
> + }
> + }
> +
> + return string;
> + }
> +
> +}
>
> Added: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicIntegerConverter.java
> URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicIntegerConverter.java?rev=576248&view=auto
> ==============================================================================
> --- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicIntegerConverter.java (added)
> +++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicIntegerConverter.java Sun Sep 16 20:30:22 2007
> @@ -0,0 +1,49 @@
> +package org.apache.myfaces.convert;
> +
> +import java.util.concurrent.atomic.AtomicInteger;
> +
> +import javax.faces.component.UIComponent;
> +import javax.faces.context.FacesContext;
> +import javax.faces.convert.Converter;
> +import javax.faces.convert.ConverterException;
> +
> +public class AtomicIntegerConverter implements Converter {
> +
> + public Object getAsObject(FacesContext ctx, UIComponent ui, String value) {
> +
> + Object object = null;
> +
> + if( value != null && value.trim().length() > 0 ) {
> + try
> + {
> + object = new AtomicInteger(Integer.parseInt(value.trim()));
> +
> + }catch(NumberFormatException nfe) {
> + throw new ConverterException(nfe);
> + }
> + }
> +
> + return object;
> + }
> +
> + public String getAsString(FacesContext ctx, UIComponent ui, Object object) {
> +
> + String string = "";
> +
> + if(object != null) {
> +
> + if( object instanceof String ) {
> + string = (String) object;
> + }else if(object instanceof AtomicInteger) {
> + string = ((AtomicInteger)object).toString();
> + }else {
> + throw new ConverterException("Received an instance of "
> + + object.getClass().getName() + ", but was expecting an instance of "
> + + AtomicInteger.class.getName());
> + }
> + }
> +
> + return string;
> + }
> +
> +}
>
> Added: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicLongConverter.java
> URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicLongConverter.java?rev=576248&view=auto
> ==============================================================================
> --- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicLongConverter.java (added)
> +++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/convert/AtomicLongConverter.java Sun Sep 16 20:30:22 2007
> @@ -0,0 +1,48 @@
> +package org.apache.myfaces.convert;
> +
> +import java.util.concurrent.atomic.AtomicLong;
> +
> +import javax.faces.component.UIComponent;
> +import javax.faces.context.FacesContext;
> +import javax.faces.convert.Converter;
> +import javax.faces.convert.ConverterException;
> +
> +public class AtomicLongConverter implements Converter {
> +
> + public Object getAsObject(FacesContext ctx, UIComponent ui, String value) {
> +
> + Object object = null;
> +
> + if( value != null && value.trim().length() > 0 ) {
> + try
> + {
> + object = new AtomicLong(Long.parseLong(value.trim()));
> +
> + }catch(NumberFormatException nfe) {
> + throw new ConverterException(nfe);
> + }
> + }
> +
> + return object;
> + }
> +
> + public String getAsString(FacesContext ctx, UIComponent ui, Object object) {
> +
> + String string = "";
> +
> + if(object != null) {
> +
> + if( object instanceof String ) {
> + string = (String) object;
> + }else if(object instanceof AtomicLong) {
> + string = ((AtomicLong)object).toString();
> + }else {
> + throw new ConverterException("Received an instance of "
> + + object.getClass().getName() + ", but was expecting an instance of "
> + + AtomicLong.class.getName());
> + }
> + }
> +
> + return string;
> + }
> +}
>
> Modified: myfaces/tomahawk/trunk/core/src/main/resources-facesconfig/META-INF/faces-config.xml
> URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/resources-facesconfig/META-INF/faces-config.xml?rev=576248&r1=576247&r2=576248&view=diff
> ==============================================================================
> --- myfaces/tomahawk/trunk/core/src/main/resources-facesconfig/META-INF/faces-config.xml (original)
> +++ myfaces/tomahawk/trunk/core/src/main/resources-facesconfig/META-INF/faces-config.xml Sun Sep 16 20:30:22 2007
> @@ -423,6 +423,20 @@
> <converter-class>org.apache.myfaces.custom.fileupload.UploadedFileConverter</converter-class>
> </converter>
>
> + <converter>
> + <converter-for-class>java.util.concurrent.atomic.AtomicBoolean</converter-for-class>
> + <converter-class>org.apache.myfaces.convert.AtomicBooleanConverter</converter-class>
> + </converter>
> +
> + <converter>
> + <converter-for-class>java.util.concurrent.atomic.AtomicInteger</converter-for-class>
> + <converter-class>org.apache.myfaces.convert.AtomicIntegerConverter</converter-class>
> + </converter>
> +
> + <converter>
> + <converter-for-class>java.util.concurrent.atomic.AtomicLong</converter-for-class>
> + <converter-class>org.apache.myfaces.convert.AtomicLongConverter</converter-class>
> + </converter>
>
> <!-- MyFaces Renderkit Extensions -->
>
>
> Modified: myfaces/tomahawk/trunk/core/src/site/site.xml
> URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/site/site.xml?rev=576248&r1=576247&r2=576248&view=diff
> ==============================================================================
> --- myfaces/tomahawk/trunk/core/src/site/site.xml (original)
> +++ myfaces/tomahawk/trunk/core/src/site/site.xml Sun Sep 16 20:30:22 2007
> @@ -76,7 +76,8 @@
> <menu name="Other Goodies">
> <item name="Extensions filter" href="extensionsFilter.html"/>
> <item name="forceId" href="forceId.html"/>
> - <item name="Tiles Support" href="tiles.html"/>
> + <item name="Tiles Support" href="tiles.html"/>
> + <item name="Atomic Conversion" href="atomicConversion.html"/>
> </menu>
>
> <menu name="Testing">
>
> Added: myfaces/tomahawk/trunk/core/src/site/xdoc/atomicConversion.xml
> URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/site/xdoc/atomicConversion.xml?rev=576248&view=auto
> ==============================================================================
> --- myfaces/tomahawk/trunk/core/src/site/xdoc/atomicConversion.xml (added)
> +++ myfaces/tomahawk/trunk/core/src/site/xdoc/atomicConversion.xml Sun Sep 16 20:30:22 2007
> @@ -0,0 +1,49 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +
> +<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation Maven//EN" "http://maven.apache.org/dtd/maven-xdoc.dtd">
> +
> +<document>
> +
> + <body>
> + <section name="Description">
> + <p>
> + Converters for :
> + <ul>
> + <li>java.util.concurrent.atomic.AtomicBoolean</li>
> + <li>java.util.concurrent.atomic.AtomicInteger</li>
> + <li>java.util.concurrent.atomic.AtomicLong</li>
> + </ul>
> + </p>
> + </section>
> +
> + <section name="API">
> +
> + <table>
> + <tr>
> + <td colspan="1" rowspan="1">since</td>
> + <td colspan="1" rowspan="1">1.1.7</td>
> + </tr>
> + <tr>
> + <td colspan="1" rowspan="1">author</td>
> + <td colspan="1" rowspan="1">Dennis Byrne</td>
> + </tr>
> + </table>
> + </section>
> +
> + <section name="Usage">
> + <source xml:space="preserve">
> +<h:inputText value="#{managedBean.propertyOfTypeAtomicBoolean}"/>
> +<h:inputText value="#{managedBean.propertyOfTypeAtomicInteger}"/>
> +<h:inputText value="#{managedBean.propertyOfTypeAtomicLong}"/>
> + </source>
> + </section>
> +
> + <section name="Instructions">
> + <p>
> + No configuration required. The Converters are registered at startup simply by using MyFaces Tomahawk.
> + </p>
> + </section>
> + </body>
> +
> +
> +</document>
>
> Added: myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicBooleanConverterTestCase.java
> URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicBooleanConverterTestCase.java?rev=576248&view=auto
> ==============================================================================
> --- myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicBooleanConverterTestCase.java (added)
> +++ myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicBooleanConverterTestCase.java Sun Sep 16 20:30:22 2007
> @@ -0,0 +1,48 @@
> +package org.apache.myfaces.convert;
> +
> +import java.util.concurrent.atomic.AtomicBoolean;
> +
> +import javax.faces.convert.Converter;
> +import javax.faces.convert.ConverterException;
> +
> +import junit.framework.TestCase;
> +
> +public class AtomicBooleanConverterTestCase extends TestCase {
> +
> + public void testGetAsObject() {
> +
> + Converter converter = new AtomicBooleanConverter();
> +
> + assertNull(converter.getAsObject(null, null, null));
> + assertNull(converter.getAsObject(null, null, ""));
> + assertNull(converter.getAsObject(null, null, " "));
> + assertTrue(((AtomicBoolean)converter.getAsObject(null, null, "true")).get());
> + assertTrue(((AtomicBoolean)converter.getAsObject(null, null, "true ")).get());
> + assertTrue(((AtomicBoolean)converter.getAsObject(null, null, " true")).get());
> + assertFalse(((AtomicBoolean)converter.getAsObject(null, null, "false")).get());
> + assertFalse(((AtomicBoolean)converter.getAsObject(null, null, "false ")).get());
> + assertFalse(((AtomicBoolean)converter.getAsObject(null, null, " false")).get());
> + assertFalse(((AtomicBoolean)converter.getAsObject(null, null, " boom ")).get());
> +
> + }
> +
> + public void testGetAsString() {
> +
> + Converter converter = new AtomicBooleanConverter();
> +
> + assertEquals("", converter.getAsString(null, null, null));
> + assertEquals("", converter.getAsString(null, null, ""));
> + assertEquals("true", converter.getAsString(null, null, new AtomicBoolean(true)));
> + assertEquals("false", converter.getAsString(null, null, new AtomicBoolean(false)));
> +
> + try {
> +
> + converter.getAsString(null, null, new Boolean(true) );
> +
> + fail();
> +
> + }catch(ConverterException c) { }
> +
> + }
> +
> +}
>
> Added: myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicIntegerConverterTest.java
> URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicIntegerConverterTest.java?rev=576248&view=auto
> ==============================================================================
> --- myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicIntegerConverterTest.java (added)
> +++ myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicIntegerConverterTest.java Sun Sep 16 20:30:22 2007
> @@ -0,0 +1,54 @@
> +package org.apache.myfaces.convert;
> +
> +import java.util.concurrent.atomic.AtomicInteger;
> +
> +import javax.faces.convert.Converter;
> +import javax.faces.convert.ConverterException;
> +
> +import junit.framework.TestCase;
> +
> +public class AtomicIntegerConverterTest extends TestCase {
> +
> + public void testGetAsObject() {
> +
> + Converter converter = new AtomicIntegerConverter();
> +
> + assertNull( converter.getAsObject(null, null, null) );
> + assertNull( converter.getAsObject(null, null, "") );
> + assertNull( converter.getAsObject(null, null, " ") );
> + assertTrue( 8 == ((AtomicInteger) converter.getAsObject(null, null, " 8")).intValue() );
> + assertTrue( 8 == ((AtomicInteger) converter.getAsObject(null, null, "8 ")).intValue() );
> + assertTrue( 8 == ((AtomicInteger) converter.getAsObject(null, null, "8")).intValue() );
> + int over = Integer.MAX_VALUE + 1;
> + assertTrue( over == ((AtomicInteger) converter.getAsObject(null, null, over + "")).intValue() );
> + int under = Integer.MIN_VALUE - 1;
> + assertTrue( under == ((AtomicInteger) converter.getAsObject(null, null, under + "")).intValue() );
> +
> + try {
> +
> + converter.getAsObject(null, null, "NaN");
> +
> + fail("should only take numbers");
> +
> + }catch(ConverterException c) { }
> + }
> +
> + public void testGetAsString() {
> +
> + Converter converter = new AtomicIntegerConverter();
> +
> + assertEquals("", converter.getAsString(null, null, null));
> + assertEquals("", converter.getAsString(null, null, ""));
> + assertEquals(" ", converter.getAsString(null, null, " "));
> + assertEquals("-1", converter.getAsString(null, null, new AtomicInteger(-1)));
> +
> + try {
> +
> + converter.getAsString(null, null, new Integer(0));
> +
> + fail("should only take atomic ints");
> +
> + }catch(ConverterException c) { }
> + }
> +
> +}
>
> Added: myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicLongConverterTest.java
> URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicLongConverterTest.java?rev=576248&view=auto
> ==============================================================================
> --- myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicLongConverterTest.java (added)
> +++ myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/convert/AtomicLongConverterTest.java Sun Sep 16 20:30:22 2007
> @@ -0,0 +1,54 @@
> +package org.apache.myfaces.convert;
> +
> +import java.util.concurrent.atomic.AtomicLong;
> +
> +import javax.faces.convert.Converter;
> +import javax.faces.convert.ConverterException;
> +
> +import junit.framework.TestCase;
> +
> +public class AtomicLongConverterTest extends TestCase{
> +
> + public void testGetAsObject() {
> +
> + Converter converter = new AtomicLongConverter();
> +
> + assertNull( converter.getAsObject(null, null, null) );
> + assertNull( converter.getAsObject(null, null, "") );
> + assertNull( converter.getAsObject(null, null, " ") );
> + assertTrue( 8 == ((AtomicLong) converter.getAsObject(null, null, " 8")).longValue() );
> + assertTrue( 8 == ((AtomicLong) converter.getAsObject(null, null, "8 ")).longValue() );
> + assertTrue( 8 == ((AtomicLong) converter.getAsObject(null, null, "8")).longValue() );
> + long over = Long.MAX_VALUE + 1;
> + assertTrue( over == ((AtomicLong) converter.getAsObject(null, null, over + "")).longValue() );
> + long under = Long.MIN_VALUE - 1;
> + assertTrue( under == ((AtomicLong) converter.getAsObject(null, null, under + "")).longValue() );
> +
> + try {
> +
> + converter.getAsObject(null, null, "NaN");
> +
> + fail("should only take numbers");
> +
> + }catch(ConverterException c) { }
> +
> + }
> +
> + public void testGetAsString() {
> +
> + Converter converter = new AtomicLongConverter();
> +
> + assertEquals("", converter.getAsString(null, null, null));
> + assertEquals("", converter.getAsString(null, null, ""));
> + assertEquals(" ", converter.getAsString(null, null, " "));
> + assertEquals("-1", converter.getAsString(null, null, new AtomicLong(-1)));
> +
> + try {
> +
> + converter.getAsString(null, null, new Long(0));
> +
> + fail("should only take atomic ints");
> +
> + }catch(ConverterException c) { }
> + }
> +}
> \ No newline at end of file
>
>
>