├── .gitignore ├── .idea ├── codeStyleSettings.xml └── copyright │ ├── Apache_2_0.xml │ └── profiles_settings.xml ├── .travis.yml ├── LICENSE ├── README.md ├── examples ├── benchmark │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── github │ │ │ └── nmorel │ │ │ └── gwtjackson │ │ │ └── benchmark │ │ │ └── client │ │ │ ├── Benchmark.java │ │ │ ├── BenchmarkView.java │ │ │ ├── BenchmarkView.ui.xml │ │ │ ├── Criteria.java │ │ │ ├── Launcher.java │ │ │ ├── Operation.java │ │ │ ├── data │ │ │ ├── DataContainer.java │ │ │ ├── DataProvider.java │ │ │ └── Person.java │ │ │ ├── mechanism │ │ │ ├── GwtJackson.java │ │ │ ├── Mechanism.java │ │ │ └── RestyGwt.java │ │ │ └── ui │ │ │ ├── InputCheckbox.java │ │ │ ├── ResultLineWidget.java │ │ │ ├── ResultLineWidget.ui.xml │ │ │ ├── ResultWidget.java │ │ │ └── ResultWidget.ui.xml │ │ ├── resources │ │ └── com │ │ │ └── github │ │ │ └── nmorel │ │ │ └── gwtjackson │ │ │ └── benchmark │ │ │ └── Benchmark.gwt.xml │ │ └── webapp │ │ ├── WEB-INF │ │ └── web.xml │ │ └── index.html ├── gwtp │ ├── README.md │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── github │ │ │ └── nmorel │ │ │ └── gwtjackson │ │ │ └── hello │ │ │ ├── HelloGWTP.gwt.xml │ │ │ ├── client │ │ │ ├── Hello.java │ │ │ ├── HelloGinjector.java │ │ │ ├── HelloModule.java │ │ │ └── HelloRestService.java │ │ │ ├── server │ │ │ └── GreetingResource.java │ │ │ └── shared │ │ │ ├── FieldVerifier.java │ │ │ ├── GreetingRequest.java │ │ │ └── GreetingResponse.java │ │ └── webapp │ │ ├── WEB-INF │ │ └── web.xml │ │ ├── hello.css │ │ └── index.html ├── hello │ ├── README.md │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── github │ │ │ └── nmorel │ │ │ └── gwtjackson │ │ │ └── hello │ │ │ ├── Hello.gwt.xml │ │ │ ├── client │ │ │ └── Hello.java │ │ │ ├── server │ │ │ └── GreetingResource.java │ │ │ └── shared │ │ │ ├── FieldVerifier.java │ │ │ ├── GreetingRequest.java │ │ │ └── GreetingResponse.java │ │ └── webapp │ │ ├── WEB-INF │ │ └── web.xml │ │ ├── hello.css │ │ └── index.html ├── minimal │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── github │ │ │ └── nmorel │ │ │ └── gwtjackson │ │ │ └── minimal │ │ │ ├── Minimal.gwt.xml │ │ │ └── client │ │ │ └── Minimal.java │ │ └── webapp │ │ ├── WEB-INF │ │ └── web.xml │ │ └── index.html ├── pom.xml ├── profiling │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── github │ │ │ └── nmorel │ │ │ └── gwtjackson │ │ │ └── profiling │ │ │ ├── Profiling.gwt.xml │ │ │ └── client │ │ │ └── Profiling.java │ │ └── webapp │ │ ├── WEB-INF │ │ └── web.xml │ │ └── index.html ├── requestor │ ├── README.md │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── github │ │ │ └── nmorel │ │ │ └── gwtjackson │ │ │ └── hello │ │ │ ├── HelloRequestor.gwt.xml │ │ │ ├── client │ │ │ └── Hello.java │ │ │ ├── server │ │ │ └── GreetingResource.java │ │ │ └── shared │ │ │ ├── FieldVerifier.java │ │ │ ├── GreetingRequest.java │ │ │ └── GreetingResponse.java │ │ └── webapp │ │ ├── WEB-INF │ │ └── web.xml │ │ ├── hello.css │ │ └── index.html └── restygwt │ ├── README.md │ ├── pom.xml │ └── src │ └── main │ ├── java │ └── com │ │ └── github │ │ └── nmorel │ │ └── gwtjackson │ │ └── hello │ │ ├── HelloRestyGWT.gwt.xml │ │ ├── client │ │ ├── Hello.java │ │ └── HelloRestService.java │ │ ├── server │ │ └── GreetingResource.java │ │ └── shared │ │ ├── FieldVerifier.java │ │ ├── GreetingRequest.java │ │ └── GreetingResponse.java │ └── webapp │ ├── WEB-INF │ └── web.xml │ ├── hello.css │ └── index.html ├── extensions ├── README.md ├── guava │ ├── README.md │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── github │ │ │ │ └── nmorel │ │ │ │ └── gwtjackson │ │ │ │ └── guava │ │ │ │ ├── client │ │ │ │ ├── deser │ │ │ │ │ ├── ArrayListMultimapJsonDeserializer.java │ │ │ │ │ ├── BaseImmutableCollectionJsonDeserializer.java │ │ │ │ │ ├── BaseImmutableMapJsonDeserializer.java │ │ │ │ │ ├── BaseImmutableMultimapJsonDeserializer.java │ │ │ │ │ ├── BaseMultimapJsonDeserializer.java │ │ │ │ │ ├── BaseMultisetJsonDeserializer.java │ │ │ │ │ ├── BiMapJsonDeserializer.java │ │ │ │ │ ├── EnumBiMapJsonDeserializer.java │ │ │ │ │ ├── EnumHashBiMapJsonDeserializer.java │ │ │ │ │ ├── EnumMultisetJsonDeserializer.java │ │ │ │ │ ├── HashBiMapJsonDeserializer.java │ │ │ │ │ ├── HashMultimapJsonDeserializer.java │ │ │ │ │ ├── HashMultisetJsonDeserializer.java │ │ │ │ │ ├── ImmutableBiMapJsonDeserializer.java │ │ │ │ │ ├── ImmutableCollectionJsonDeserializer.java │ │ │ │ │ ├── ImmutableListJsonDeserializer.java │ │ │ │ │ ├── ImmutableListMultimapJsonDeserializer.java │ │ │ │ │ ├── ImmutableMapJsonDeserializer.java │ │ │ │ │ ├── ImmutableMultimapJsonDeserializer.java │ │ │ │ │ ├── ImmutableMultisetJsonDeserializer.java │ │ │ │ │ ├── ImmutableSetJsonDeserializer.java │ │ │ │ │ ├── ImmutableSetMultimapJsonDeserializer.java │ │ │ │ │ ├── ImmutableSortedMapJsonDeserializer.java │ │ │ │ │ ├── ImmutableSortedSetJsonDeserializer.java │ │ │ │ │ ├── LinkedHashMultimapJsonDeserializer.java │ │ │ │ │ ├── LinkedHashMultisetJsonDeserializer.java │ │ │ │ │ ├── LinkedListMultimapJsonDeserializer.java │ │ │ │ │ ├── ListMultimapJsonDeserializer.java │ │ │ │ │ ├── MultimapJsonDeserializer.java │ │ │ │ │ ├── MultisetJsonDeserializer.java │ │ │ │ │ ├── OptionalJsonDeserializer.java │ │ │ │ │ ├── SetMultimapJsonDeserializer.java │ │ │ │ │ ├── SortedMultisetJsonDeserializer.java │ │ │ │ │ ├── SortedSetMultimapJsonDeserializer.java │ │ │ │ │ ├── TreeMultimapJsonDeserializer.java │ │ │ │ │ └── TreeMultisetJsonDeserializer.java │ │ │ │ └── ser │ │ │ │ │ ├── MultimapJsonSerializer.java │ │ │ │ │ └── OptionalJsonSerializer.java │ │ │ │ └── rebind │ │ │ │ └── GuavaConfiguration.java │ │ └── resources │ │ │ └── com │ │ │ └── github │ │ │ └── nmorel │ │ │ └── gwtjackson │ │ │ └── guava │ │ │ └── GwtJacksonGuava.gwt.xml │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── github │ │ │ └── nmorel │ │ │ └── gwtjackson │ │ │ └── guava │ │ │ ├── client │ │ │ ├── BiMapGwtTest.java │ │ │ ├── FluentIterableGwtTest.java │ │ │ ├── GwtJacksonGuavaTestCase.java │ │ │ ├── GwtJacksonGuavaTestSuite.java │ │ │ ├── ImmutablesGwtTest.java │ │ │ ├── MultimapGwtTest.java │ │ │ ├── MultisetGwtTest.java │ │ │ ├── ObjectGwtTest.java │ │ │ └── OptionalGwtTest.java │ │ │ ├── jackson │ │ │ ├── AbstractJacksonGuavaTest.java │ │ │ ├── FluentIterableJacksonTest.java │ │ │ ├── ImmutablesJacksonTest.java │ │ │ └── OptionalJacksonTest.java │ │ │ └── shared │ │ │ ├── FluentIterableTester.java │ │ │ ├── ImmutablesTester.java │ │ │ └── OptionalTester.java │ │ └── resources │ │ └── com │ │ └── github │ │ └── nmorel │ │ └── gwtjackson │ │ └── guava │ │ └── GwtJacksonGuavaTest.gwt.xml ├── objectify │ ├── README.md │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── github │ │ │ │ └── nmorel │ │ │ │ └── gwtjackson │ │ │ │ └── objectify │ │ │ │ ├── client │ │ │ │ ├── KeyJsonDeserializer.java │ │ │ │ ├── KeyJsonSerializer.java │ │ │ │ ├── KeyKeyDeserializer.java │ │ │ │ ├── KeyKeySerializer.java │ │ │ │ ├── RawKeyJsonDeserializer.java │ │ │ │ ├── RawKeyJsonSerializer.java │ │ │ │ ├── RawKeyKeyDeserializer.java │ │ │ │ ├── RawKeyKeySerializer.java │ │ │ │ ├── RefJsonDeserializer.java │ │ │ │ ├── RefJsonSerializer.java │ │ │ │ ├── RefKeyDeserializer.java │ │ │ │ └── RefKeySerializer.java │ │ │ │ ├── rebind │ │ │ │ └── ObjectifyConfiguration.java │ │ │ │ ├── server │ │ │ │ ├── KeyJsonSerializer.java │ │ │ │ ├── KeyStdDeserializer.java │ │ │ │ ├── KeyStdKeyDeserializer.java │ │ │ │ ├── KeyStdSerializer.java │ │ │ │ ├── ObjectifyJacksonModule.java │ │ │ │ ├── RawKeyJsonSerializer.java │ │ │ │ ├── RawKeyStdDeserializer.java │ │ │ │ ├── RawKeyStdKeyDeserializer.java │ │ │ │ ├── RawKeyStdSerializer.java │ │ │ │ ├── RefJsonSerializer.java │ │ │ │ ├── RefStdDeserializer.java │ │ │ │ ├── RefStdKeyDeserializer.java │ │ │ │ └── RefStdSerializer.java │ │ │ │ └── shared │ │ │ │ ├── KeyConstant.java │ │ │ │ ├── RawKeyConstant.java │ │ │ │ └── RefConstant.java │ │ └── resources │ │ │ └── com │ │ │ └── github │ │ │ └── nmorel │ │ │ └── gwtjackson │ │ │ └── objectify │ │ │ ├── GwtJacksonObjectify.gwt.xml │ │ │ └── super │ │ │ └── com │ │ │ ├── google │ │ │ ├── appengine │ │ │ │ └── api │ │ │ │ │ ├── datastore │ │ │ │ │ ├── AppIdNamespace.java │ │ │ │ │ ├── Blob.java │ │ │ │ │ ├── Category.java │ │ │ │ │ ├── Cursor.java │ │ │ │ │ ├── DataTypeUtils.java │ │ │ │ │ ├── Email.java │ │ │ │ │ ├── EntityNotFoundException.java │ │ │ │ │ ├── GeoPt.java │ │ │ │ │ ├── IMHandle.java │ │ │ │ │ ├── Key.java │ │ │ │ │ ├── KeyFactory.java │ │ │ │ │ ├── Link.java │ │ │ │ │ ├── PhoneNumber.java │ │ │ │ │ ├── PostalAddress.java │ │ │ │ │ ├── Rating.java │ │ │ │ │ ├── ShortBlob.java │ │ │ │ │ └── Text.java │ │ │ │ │ └── users │ │ │ │ │ └── User.java │ │ │ └── apphosting │ │ │ │ └── api │ │ │ │ └── NamespaceResources.java │ │ │ └── googlecode │ │ │ └── objectify │ │ │ ├── Key.java │ │ │ ├── NotFoundException.java │ │ │ ├── Ref.java │ │ │ └── impl │ │ │ └── ref │ │ │ ├── DeadRef.java │ │ │ └── LiveRef.java │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── github │ │ │ └── nmorel │ │ │ └── gwtjackson │ │ │ └── objectify │ │ │ ├── client │ │ │ ├── BeanRefTestCase.java │ │ │ ├── BeanTestCase.java │ │ │ ├── GwtJacksonObjectifyTestCase.java │ │ │ ├── GwtJacksonObjectifyTestSuite.java │ │ │ ├── KeyKeyTestCase.java │ │ │ ├── KeyTestCase.java │ │ │ ├── RawKeyKeyTestCase.java │ │ │ ├── RawKeyTestCase.java │ │ │ ├── RefKeyTestCase.java │ │ │ └── RefTestCase.java │ │ │ ├── server │ │ │ └── ObjectifyJacksonModuleTest.java │ │ │ └── shared │ │ │ ├── BeanRefTester.java │ │ │ ├── BeanTester.java │ │ │ ├── KeyKeyTester.java │ │ │ ├── KeyTester.java │ │ │ ├── ObjectifyAbstractTester.java │ │ │ ├── RawKeyKeyTester.java │ │ │ ├── RawKeyTester.java │ │ │ ├── RefKeyTester.java │ │ │ └── RefTester.java │ │ └── resources │ │ └── com │ │ └── github │ │ └── nmorel │ │ └── gwtjackson │ │ └── objectify │ │ └── GwtJacksonObjectifyTest.gwt.xml ├── pom.xml └── remotelogging │ ├── README.md │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── github │ │ │ └── nmorel │ │ │ └── gwtjackson │ │ │ └── remotelogging │ │ │ ├── client │ │ │ ├── RemoteThrowableJsonSerializer.java │ │ │ └── StackTraceElementJsonSerializer.java │ │ │ ├── rebind │ │ │ └── RemoteLoggingConfiguration.java │ │ │ ├── server │ │ │ └── RemoteLoggingJacksonModule.java │ │ │ └── shared │ │ │ └── RemoteThrowable.java │ └── resources │ │ └── com │ │ └── github │ │ └── nmorel │ │ └── gwtjackson │ │ └── remotelogging │ │ └── GwtJacksonRemoteLogging.gwt.xml │ └── test │ ├── java │ └── com │ │ └── github │ │ └── nmorel │ │ └── gwtjackson │ │ └── remotelogging │ │ ├── client │ │ ├── GwtJacksonRemoteLoggingTestSuite.java │ │ └── ThrowableTestCase.java │ │ ├── server │ │ └── RemoteLoggingJacksonModuleTest.java │ │ └── shared │ │ ├── CustomException.java │ │ └── ThrowableTester.java │ └── resources │ └── com │ └── github │ └── nmorel │ └── gwtjackson │ └── remotelogging │ └── GwtJacksonRemoteLoggingTest.gwt.xml ├── gwt-jackson ├── .gitignore ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── github │ │ │ └── nmorel │ │ │ └── gwtjackson │ │ │ ├── client │ │ │ ├── AbstractConfiguration.java │ │ │ ├── AbstractObjectMapper.java │ │ │ ├── AbstractObjectReader.java │ │ │ ├── AbstractObjectWriter.java │ │ │ ├── Deserializer.java │ │ │ ├── JsonDeserializationContext.java │ │ │ ├── JsonDeserializer.java │ │ │ ├── JsonDeserializerParameters.java │ │ │ ├── JsonMappingContext.java │ │ │ ├── JsonSerializationContext.java │ │ │ ├── JsonSerializer.java │ │ │ ├── JsonSerializerParameters.java │ │ │ ├── ObjectMapper.java │ │ │ ├── ObjectReader.java │ │ │ ├── ObjectWriter.java │ │ │ ├── Serializer.java │ │ │ ├── annotation │ │ │ │ └── JsonMixIns.java │ │ │ ├── arrays │ │ │ │ ├── FastArrayInteger.java │ │ │ │ ├── FastArrayNumber.java │ │ │ │ ├── FastArrayShort.java │ │ │ │ ├── FastArrayString.java │ │ │ │ └── JsList.java │ │ │ ├── deser │ │ │ │ ├── BaseDateJsonDeserializer.java │ │ │ │ ├── BaseNumberJsonDeserializer.java │ │ │ │ ├── BooleanJsonDeserializer.java │ │ │ │ ├── CharacterJsonDeserializer.java │ │ │ │ ├── EnumJsonDeserializer.java │ │ │ │ ├── JavaScriptObjectJsonDeserializer.java │ │ │ │ ├── StringJsonDeserializer.java │ │ │ │ ├── UUIDJsonDeserializer.java │ │ │ │ ├── VoidJsonDeserializer.java │ │ │ │ ├── array │ │ │ │ │ ├── AbstractArrayJsonDeserializer.java │ │ │ │ │ ├── ArrayJsonDeserializer.java │ │ │ │ │ ├── PrimitiveBooleanArrayJsonDeserializer.java │ │ │ │ │ ├── PrimitiveByteArrayJsonDeserializer.java │ │ │ │ │ ├── PrimitiveCharacterArrayJsonDeserializer.java │ │ │ │ │ ├── PrimitiveDoubleArrayJsonDeserializer.java │ │ │ │ │ ├── PrimitiveFloatArrayJsonDeserializer.java │ │ │ │ │ ├── PrimitiveIntegerArrayJsonDeserializer.java │ │ │ │ │ ├── PrimitiveLongArrayJsonDeserializer.java │ │ │ │ │ ├── PrimitiveShortArrayJsonDeserializer.java │ │ │ │ │ ├── cast │ │ │ │ │ │ ├── PrimitiveDoubleArrayJsonDeserializer.java │ │ │ │ │ │ ├── PrimitiveIntegerArrayJsonDeserializer.java │ │ │ │ │ │ ├── PrimitiveShortArrayJsonDeserializer.java │ │ │ │ │ │ └── StringArrayJsonDeserializer.java │ │ │ │ │ └── dd │ │ │ │ │ │ ├── AbstractArray2dJsonDeserializer.java │ │ │ │ │ │ ├── Array2dJsonDeserializer.java │ │ │ │ │ │ ├── PrimitiveBooleanArray2dJsonDeserializer.java │ │ │ │ │ │ ├── PrimitiveByteArray2dJsonDeserializer.java │ │ │ │ │ │ ├── PrimitiveCharacterArray2dJsonDeserializer.java │ │ │ │ │ │ ├── PrimitiveDoubleArray2dJsonDeserializer.java │ │ │ │ │ │ ├── PrimitiveFloatArray2dJsonDeserializer.java │ │ │ │ │ │ ├── PrimitiveIntegerArray2dJsonDeserializer.java │ │ │ │ │ │ ├── PrimitiveLongArray2dJsonDeserializer.java │ │ │ │ │ │ └── PrimitiveShortArray2dJsonDeserializer.java │ │ │ │ ├── bean │ │ │ │ │ ├── AbstractBeanJsonDeserializer.java │ │ │ │ │ ├── AbstractDelegationBeanJsonDeserializer.java │ │ │ │ │ ├── AbstractIdentityDeserializationInfo.java │ │ │ │ │ ├── AbstractObjectBeanJsonDeserializer.java │ │ │ │ │ ├── AbstractSerializableBeanJsonDeserializer.java │ │ │ │ │ ├── AnySetterDeserializer.java │ │ │ │ │ ├── BackReferenceProperty.java │ │ │ │ │ ├── BeanPropertyDeserializer.java │ │ │ │ │ ├── HasDeserializer.java │ │ │ │ │ ├── HasDeserializerAndParameters.java │ │ │ │ │ ├── IdentityDeserializationInfo.java │ │ │ │ │ ├── Instance.java │ │ │ │ │ ├── InstanceBuilder.java │ │ │ │ │ ├── InternalDeserializer.java │ │ │ │ │ ├── PropertyIdentityDeserializationInfo.java │ │ │ │ │ ├── SimpleStringMap.java │ │ │ │ │ ├── SubtypeDeserializer.java │ │ │ │ │ └── TypeDeserializationInfo.java │ │ │ │ ├── collection │ │ │ │ │ ├── AbstractCollectionJsonDeserializer.java │ │ │ │ │ ├── AbstractListJsonDeserializer.java │ │ │ │ │ ├── AbstractQueueJsonDeserializer.java │ │ │ │ │ ├── AbstractSequentialListJsonDeserializer.java │ │ │ │ │ ├── AbstractSetJsonDeserializer.java │ │ │ │ │ ├── ArrayListJsonDeserializer.java │ │ │ │ │ ├── BaseCollectionJsonDeserializer.java │ │ │ │ │ ├── BaseIterableJsonDeserializer.java │ │ │ │ │ ├── BaseListJsonDeserializer.java │ │ │ │ │ ├── BaseQueueJsonDeserializer.java │ │ │ │ │ ├── BaseSetJsonDeserializer.java │ │ │ │ │ ├── BaseSortedSetJsonDeserializer.java │ │ │ │ │ ├── CollectionJsonDeserializer.java │ │ │ │ │ ├── EnumSetJsonDeserializer.java │ │ │ │ │ ├── HashSetJsonDeserializer.java │ │ │ │ │ ├── IterableJsonDeserializer.java │ │ │ │ │ ├── LinkedHashSetJsonDeserializer.java │ │ │ │ │ ├── LinkedListJsonDeserializer.java │ │ │ │ │ ├── ListJsonDeserializer.java │ │ │ │ │ ├── PriorityQueueJsonDeserializer.java │ │ │ │ │ ├── QueueJsonDeserializer.java │ │ │ │ │ ├── SetJsonDeserializer.java │ │ │ │ │ ├── SortedSetJsonDeserializer.java │ │ │ │ │ ├── StackJsonDeserializer.java │ │ │ │ │ ├── TreeSetJsonDeserializer.java │ │ │ │ │ └── VectorJsonDeserializer.java │ │ │ │ └── map │ │ │ │ │ ├── AbstractMapJsonDeserializer.java │ │ │ │ │ ├── BaseMapJsonDeserializer.java │ │ │ │ │ ├── EnumMapJsonDeserializer.java │ │ │ │ │ ├── HashMapJsonDeserializer.java │ │ │ │ │ ├── IdentityHashMapJsonDeserializer.java │ │ │ │ │ ├── LinkedHashMapJsonDeserializer.java │ │ │ │ │ ├── MapJsonDeserializer.java │ │ │ │ │ ├── SortedMapJsonDeserializer.java │ │ │ │ │ ├── TreeMapJsonDeserializer.java │ │ │ │ │ └── key │ │ │ │ │ ├── BaseDateKeyDeserializer.java │ │ │ │ │ ├── BaseNumberKeyDeserializer.java │ │ │ │ │ ├── BooleanKeyDeserializer.java │ │ │ │ │ ├── CharacterKeyDeserializer.java │ │ │ │ │ ├── EnumKeyDeserializer.java │ │ │ │ │ ├── KeyDeserializer.java │ │ │ │ │ ├── StringKeyDeserializer.java │ │ │ │ │ └── UUIDKeyDeserializer.java │ │ │ ├── exception │ │ │ │ ├── JsonDeserializationException.java │ │ │ │ ├── JsonMappingException.java │ │ │ │ └── JsonSerializationException.java │ │ │ ├── ser │ │ │ │ ├── BaseDateJsonSerializer.java │ │ │ │ ├── BaseNumberJsonSerializer.java │ │ │ │ ├── BooleanJsonSerializer.java │ │ │ │ ├── CharacterJsonSerializer.java │ │ │ │ ├── CollectionJsonSerializer.java │ │ │ │ ├── EnumJsonSerializer.java │ │ │ │ ├── IterableJsonSerializer.java │ │ │ │ ├── JavaScriptObjectJsonSerializer.java │ │ │ │ ├── RawValueJsonSerializer.java │ │ │ │ ├── StringJsonSerializer.java │ │ │ │ ├── UUIDJsonSerializer.java │ │ │ │ ├── VoidJsonSerializer.java │ │ │ │ ├── array │ │ │ │ │ ├── ArrayJsonSerializer.java │ │ │ │ │ ├── PrimitiveBooleanArrayJsonSerializer.java │ │ │ │ │ ├── PrimitiveByteArrayJsonSerializer.java │ │ │ │ │ ├── PrimitiveCharacterArrayJsonSerializer.java │ │ │ │ │ ├── PrimitiveDoubleArrayJsonSerializer.java │ │ │ │ │ ├── PrimitiveFloatArrayJsonSerializer.java │ │ │ │ │ ├── PrimitiveIntegerArrayJsonSerializer.java │ │ │ │ │ ├── PrimitiveLongArrayJsonSerializer.java │ │ │ │ │ ├── PrimitiveShortArrayJsonSerializer.java │ │ │ │ │ └── dd │ │ │ │ │ │ ├── Array2dJsonSerializer.java │ │ │ │ │ │ ├── PrimitiveBooleanArray2dJsonSerializer.java │ │ │ │ │ │ ├── PrimitiveByteArray2dJsonSerializer.java │ │ │ │ │ │ ├── PrimitiveCharacterArray2dJsonSerializer.java │ │ │ │ │ │ ├── PrimitiveDoubleArray2dJsonSerializer.java │ │ │ │ │ │ ├── PrimitiveFloatArray2dJsonSerializer.java │ │ │ │ │ │ ├── PrimitiveIntegerArray2dJsonSerializer.java │ │ │ │ │ │ ├── PrimitiveLongArray2dJsonSerializer.java │ │ │ │ │ │ └── PrimitiveShortArray2dJsonSerializer.java │ │ │ │ ├── bean │ │ │ │ │ ├── AbstractBeanJsonSerializer.java │ │ │ │ │ ├── AbstractIdentitySerializationInfo.java │ │ │ │ │ ├── AbstractValueBeanJsonSerializer.java │ │ │ │ │ ├── AnyGetterPropertySerializer.java │ │ │ │ │ ├── BeanPropertySerializer.java │ │ │ │ │ ├── HasSerializer.java │ │ │ │ │ ├── IdentitySerializationInfo.java │ │ │ │ │ ├── InternalSerializer.java │ │ │ │ │ ├── ObjectIdSerializer.java │ │ │ │ │ ├── PropertyIdentitySerializationInfo.java │ │ │ │ │ ├── SubtypeSerializer.java │ │ │ │ │ └── TypeSerializationInfo.java │ │ │ │ └── map │ │ │ │ │ ├── MapJsonSerializer.java │ │ │ │ │ └── key │ │ │ │ │ ├── BooleanKeySerializer.java │ │ │ │ │ ├── DateKeySerializer.java │ │ │ │ │ ├── EnumKeySerializer.java │ │ │ │ │ ├── KeySerializer.java │ │ │ │ │ ├── NumberKeySerializer.java │ │ │ │ │ ├── ObjectKeySerializer.java │ │ │ │ │ ├── ToStringKeySerializer.java │ │ │ │ │ └── UUIDKeySerializer.java │ │ │ ├── stream │ │ │ │ ├── JsonReader.java │ │ │ │ ├── JsonToken.java │ │ │ │ ├── JsonWriter.java │ │ │ │ └── impl │ │ │ │ │ ├── DefaultJsonReader.java │ │ │ │ │ ├── DefaultJsonWriter.java │ │ │ │ │ ├── FastJsonWriter.java │ │ │ │ │ ├── JsonScope.java │ │ │ │ │ ├── MalformedJsonException.java │ │ │ │ │ ├── NonBufferedJsonReader.java │ │ │ │ │ └── StringReader.java │ │ │ └── utils │ │ │ │ ├── Base64Utils.java │ │ │ │ └── DateFormat.java │ │ │ └── rebind │ │ │ ├── AbstractBeanJsonCreator.java │ │ │ ├── AbstractCreator.java │ │ │ ├── BeanJsonDeserializerCreator.java │ │ │ ├── BeanJsonMapperInfo.java │ │ │ ├── BeanJsonSerializerCreator.java │ │ │ ├── CreatorUtils.java │ │ │ ├── DefaultConfiguration.java │ │ │ ├── JacksonTypeOracle.java │ │ │ ├── ObjectMapperCreator.java │ │ │ ├── ObjectMapperGenerator.java │ │ │ ├── RebindConfiguration.java │ │ │ ├── bean │ │ │ ├── BeanIdentityInfo.java │ │ │ ├── BeanInfo.java │ │ │ ├── BeanInfoBuilder.java │ │ │ ├── BeanProcessor.java │ │ │ └── BeanTypeInfo.java │ │ │ ├── exception │ │ │ └── UnsupportedTypeException.java │ │ │ ├── property │ │ │ ├── FieldAccessor.java │ │ │ ├── FieldReadAccessor.java │ │ │ ├── FieldWriteAccessor.java │ │ │ ├── PropertiesContainer.java │ │ │ ├── PropertyAccessors.java │ │ │ ├── PropertyAccessorsBuilder.java │ │ │ ├── PropertyInfo.java │ │ │ ├── PropertyInfoBuilder.java │ │ │ ├── PropertyParser.java │ │ │ └── PropertyProcessor.java │ │ │ ├── type │ │ │ ├── JDeserializerType.java │ │ │ ├── JMapperType.java │ │ │ ├── JParameterizedDeserializer.java │ │ │ ├── JParameterizedMapper.java │ │ │ ├── JParameterizedSerializer.java │ │ │ └── JSerializerType.java │ │ │ └── writer │ │ │ ├── JTypeName.java │ │ │ └── JsniCodeBlockBuilder.java │ └── resources │ │ └── com │ │ ├── fasterxml │ │ └── jackson │ │ │ ├── annotation │ │ │ └── JacksonAnnotation.gwt.xml │ │ │ └── databind │ │ │ └── annotation │ │ │ └── JacksonDatabindAnnotation.gwt.xml │ │ └── github │ │ └── nmorel │ │ └── gwtjackson │ │ ├── GwtJackson.gwt.xml │ │ └── super │ │ ├── com │ │ └── fasterxml │ │ │ └── jackson │ │ │ ├── annotation │ │ │ ├── JsonAutoDetect.java │ │ │ ├── JsonFormat.java │ │ │ ├── JsonIgnoreProperties.java │ │ │ ├── JsonInclude.java │ │ │ └── ObjectIdGenerator.java │ │ │ └── databind │ │ │ └── annotation │ │ │ └── JsonDeserialize.java │ │ └── java │ │ └── util │ │ └── UUID.java │ └── test │ ├── java │ └── com │ │ └── github │ │ └── nmorel │ │ └── gwtjackson │ │ ├── client │ │ ├── GwtJacksonTestCase.java │ │ ├── GwtJacksonTestSuite.java │ │ ├── TestConfiguration.java │ │ ├── advanced │ │ │ ├── DeserializeAsGwtTest.java │ │ │ ├── GenericsAndInheritanceGwtTest.java │ │ │ ├── GenericsGwtTest.java │ │ │ ├── InheritanceGwtTest.java │ │ │ ├── JavaScriptObjectGwtTest.java │ │ │ ├── ObjectGwtTest.java │ │ │ ├── PrivateAccessGwtTest.java │ │ │ ├── ProxyAndAnonymousClassSerializationGwtTest.java │ │ │ ├── WildcardGwtTest.java │ │ │ ├── identity │ │ │ │ ├── ObjectIdBackReferenceGwtTest.java │ │ │ │ ├── ObjectIdDeserializationGwtTest.java │ │ │ │ ├── ObjectIdGwtTest.java │ │ │ │ ├── ObjectIdSerializationGwtTest.java │ │ │ │ ├── ObjectIdWithEqualsGwtTest.java │ │ │ │ └── ObjectIdWithPolymorphicGwtTest.java │ │ │ └── jsontype │ │ │ │ ├── JsonTypeOnParametersGwtTest.java │ │ │ │ ├── JsonTypeOnPropertiesGwtTest.java │ │ │ │ ├── JsonTypeWithEnumGwtTest.java │ │ │ │ ├── JsonTypeWithGenericsGwtTest.java │ │ │ │ ├── PolymorphismIdClassAsPropertyGwtTest.java │ │ │ │ ├── PolymorphismIdMinimalClassAsWrapperArrayGwtTest.java │ │ │ │ ├── PolymorphismIdNameAsWrapperObjectGwtTest.java │ │ │ │ ├── PolymorphismNoTypeInfoGwtTest.java │ │ │ │ ├── TypeNamesGwtTest.java │ │ │ │ └── VisibleTypeIdGwtTest.java │ │ ├── annotation │ │ │ ├── JsonAnyGetterSetterGwtTest.java │ │ │ ├── JsonAutoDetectGwtTest.java │ │ │ ├── JsonCreatorGwtTest.java │ │ │ ├── JsonDeserializeBuilderGwtTest.java │ │ │ ├── JsonFormatGwtTest.java │ │ │ ├── JsonIgnoreGwtTest.java │ │ │ ├── JsonIgnoreTypeGwtTest.java │ │ │ ├── JsonIncludeGwtTest.java │ │ │ ├── JsonManagedAndBackReferenceGwtTest.java │ │ │ ├── JsonPropertyOrderGwtTest.java │ │ │ ├── JsonRawValueGwtTest.java │ │ │ ├── JsonRootNameGwtTest.java │ │ │ └── JsonUnwrappedGwtTest.java │ │ ├── arrays │ │ │ └── JsListTest.java │ │ ├── deser │ │ │ ├── AbstractJsonDeserializerTest.java │ │ │ ├── BooleanJsonDeserializerTest.java │ │ │ ├── CharacterJsonDeserializerTest.java │ │ │ ├── EnumJsonDeserializerTest.java │ │ │ ├── StringJsonDeserializerTest.java │ │ │ ├── UUIDJsonDeserializerTest.java │ │ │ ├── VoidJsonDeserializerTest.java │ │ │ ├── array │ │ │ │ ├── ArrayJsonDeserializerTest.java │ │ │ │ ├── ByteArray2dJsonDeserializerTest.java │ │ │ │ └── ByteArrayJsonDeserializerTest.java │ │ │ ├── collection │ │ │ │ ├── CollectionJsonDeserializerTest.java │ │ │ │ ├── IterableJsonDeserializerTest.java │ │ │ │ ├── ListJsonDeserializerTest.java │ │ │ │ └── SetJsonDeserializerTest.java │ │ │ ├── date │ │ │ │ ├── DateJsonDeserializerTest.java │ │ │ │ ├── SqlDateJsonDeserializerTest.java │ │ │ │ ├── SqlTimeJsonDeserializerTest.java │ │ │ │ └── SqlTimestampJsonDeserializerTest.java │ │ │ ├── map │ │ │ │ └── key │ │ │ │ │ ├── AbstractKeyDeserializerTest.java │ │ │ │ │ ├── BigDecimalKeyDeserializerTest.java │ │ │ │ │ ├── BigIntegerKeyDeserializerTest.java │ │ │ │ │ ├── BooleanKeyDeserializerTest.java │ │ │ │ │ ├── ByteKeyDeserializerTest.java │ │ │ │ │ ├── CharacterKeyDeserializerTest.java │ │ │ │ │ ├── DateKeyDeserializerTest.java │ │ │ │ │ ├── DoubleKeyDeserializerTest.java │ │ │ │ │ ├── EnumKeyDeserializerTest.java │ │ │ │ │ ├── FloatKeyDeserializerTest.java │ │ │ │ │ ├── IntegerKeyDeserializerTest.java │ │ │ │ │ ├── LongKeyDeserializerTest.java │ │ │ │ │ ├── ShortKeyDeserializerTest.java │ │ │ │ │ ├── SqlDateKeyDeserializerTest.java │ │ │ │ │ ├── SqlTimeKeyDeserializerTest.java │ │ │ │ │ ├── SqlTimestampKeyDeserializerTest.java │ │ │ │ │ ├── StringKeyDeserializerTest.java │ │ │ │ │ └── UUIDKeyDeserializerTest.java │ │ │ └── number │ │ │ │ ├── BigDecimalJsonDeserializerTest.java │ │ │ │ ├── BigIntegerJsonDeserializerTest.java │ │ │ │ ├── ByteJsonDeserializerTest.java │ │ │ │ ├── DoubleJsonDeserializerTest.java │ │ │ │ ├── FloatJsonDeserializerTest.java │ │ │ │ ├── IntegerJsonDeserializerTest.java │ │ │ │ ├── LongJsonDeserializerTest.java │ │ │ │ └── ShortJsonDeserializerTest.java │ │ ├── mapper │ │ │ ├── AllCollectionsObjectMapperTest.java │ │ │ ├── AllMapsObjectMapperTest.java │ │ │ ├── AutoDetectionGwtTest.java │ │ │ ├── CommonJsonMapperTest.java │ │ │ ├── CustomIterableGwtTest.java │ │ │ ├── DifferentTypeGetterGwtTest.java │ │ │ ├── EnumMapperGwtTest.java │ │ │ ├── ErrorGwtTest.java │ │ │ ├── IgnoreStaticGwtTest.java │ │ │ ├── PropertyNamingGwtTest.java │ │ │ ├── SimpleBeanObjectReaderTest.java │ │ │ └── SimpleBeanObjectWriterTest.java │ │ ├── mixins │ │ │ ├── MixinDeserForClassGwtTest.java │ │ │ ├── MixinDeserForCreatorsGwtTest.java │ │ │ ├── MixinInheritanceGwtTest.java │ │ │ ├── MixinSerForFieldsGwtTest.java │ │ │ └── MixinSerForMethodsGwtTest.java │ │ ├── options │ │ │ ├── CharArrayOptionGwtTest.java │ │ │ ├── DateOptionsGwtTest.java │ │ │ ├── IndentGwtTest.java │ │ │ ├── OrderMapEntriesByKeysOptionGwtTest.java │ │ │ ├── SingleArrayOptionGwtTest.java │ │ │ ├── WriteEmptyJsonArraysOptionGwtTest.java │ │ │ └── WriteNullMapValuesOptionGwtTest.java │ │ ├── ser │ │ │ ├── AbstractJsonSerializerTest.java │ │ │ ├── BooleanJsonSerializerTest.java │ │ │ ├── CharacterJsonSerializerTest.java │ │ │ ├── EnumJsonSerializerTest.java │ │ │ ├── StringJsonSerializerTest.java │ │ │ ├── UUIDJsonSerializerTest.java │ │ │ ├── VoidJsonSerializerTest.java │ │ │ ├── array │ │ │ │ ├── ArrayJsonSerializerTest.java │ │ │ │ ├── ByteArray2dJsonSerializerTest.java │ │ │ │ └── ByteArrayJsonSerializerTest.java │ │ │ ├── collection │ │ │ │ ├── CollectionJsonSerializerTest.java │ │ │ │ ├── IterableJsonSerializerTest.java │ │ │ │ ├── ListJsonSerializerTest.java │ │ │ │ └── SetJsonSerializerTest.java │ │ │ ├── date │ │ │ │ ├── DateJsonSerializerTest.java │ │ │ │ ├── SqlDateJsonSerializerTest.java │ │ │ │ ├── SqlTimeJsonSerializerTest.java │ │ │ │ └── SqlTimestampJsonSerializerTest.java │ │ │ ├── map │ │ │ │ └── key │ │ │ │ │ ├── AbstractKeySerializerTest.java │ │ │ │ │ ├── BigDecimalKeySerializerTest.java │ │ │ │ │ ├── BigIntegerKeySerializerTest.java │ │ │ │ │ ├── BooleanKeySerializerTest.java │ │ │ │ │ ├── ByteKeySerializerTest.java │ │ │ │ │ ├── CharacterKeySerializerTest.java │ │ │ │ │ ├── DateKeySerializerTest.java │ │ │ │ │ ├── DoubleKeySerializerTest.java │ │ │ │ │ ├── EnumKeySerializerTest.java │ │ │ │ │ ├── FloatKeySerializerTest.java │ │ │ │ │ ├── IntegerKeySerializerTest.java │ │ │ │ │ ├── LongKeySerializerTest.java │ │ │ │ │ ├── ShortKeySerializerTest.java │ │ │ │ │ ├── SqlDateKeySerializerTest.java │ │ │ │ │ ├── SqlTimeKeySerializerTest.java │ │ │ │ │ ├── SqlTimestampKeySerializerTest.java │ │ │ │ │ ├── StringKeySerializerTest.java │ │ │ │ │ └── UUIDKeySerializerTest.java │ │ │ └── number │ │ │ │ ├── BigDecimalJsonSerializerTest.java │ │ │ │ ├── BigIntegerJsonSerializerTest.java │ │ │ │ ├── ByteJsonSerializerTest.java │ │ │ │ ├── DoubleJsonSerializerTest.java │ │ │ │ ├── FloatJsonSerializerTest.java │ │ │ │ ├── IntegerJsonSerializerTest.java │ │ │ │ ├── LongJsonSerializerTest.java │ │ │ │ └── ShortJsonSerializerTest.java │ │ └── stream │ │ │ ├── AbstractJsonReaderTest.java │ │ │ ├── AbstractJsonWriterTest.java │ │ │ ├── Person.java │ │ │ └── impl │ │ │ ├── DefaultJsonReaderTest.java │ │ │ ├── DefaultJsonWriterTest.java │ │ │ ├── FastJsonWriterTest.java │ │ │ └── NonBufferedJsonReaderTest.java │ │ ├── jackson │ │ ├── AbstractJacksonTest.java │ │ ├── advanced │ │ │ ├── DeserializeAsJacksonTest.java │ │ │ ├── GenericsAndInheritanceJacksonTest.java │ │ │ ├── GenericsJacksonTest.java │ │ │ ├── InheritanceJacksonTest.java │ │ │ ├── ObjectJacksonTest.java │ │ │ ├── PrivateAccessJacksonTest.java │ │ │ ├── WildcardJacksonTest.java │ │ │ ├── identity │ │ │ │ ├── ObjectIdBackReferenceJacksonTest.java │ │ │ │ ├── ObjectIdDeserializationJacksonTest.java │ │ │ │ ├── ObjectIdJacksonTest.java │ │ │ │ ├── ObjectIdSerializationJacksonTest.java │ │ │ │ ├── ObjectIdWithEqualsJacksonTest.java │ │ │ │ └── ObjectIdWithPolymorphicJacksonTest.java │ │ │ └── jsontype │ │ │ │ ├── JsonTypeOnParametersJacksonTest.java │ │ │ │ ├── JsonTypeOnPropertiesJacksonTest.java │ │ │ │ ├── JsonTypeWithEnumJacksonTest.java │ │ │ │ ├── JsonTypeWithGenericsJacksonTest.java │ │ │ │ ├── PolymorphismIdClassAsPropertyJacksonTest.java │ │ │ │ ├── PolymorphismIdMinimalClassAsWrapperArrayJacksonTest.java │ │ │ │ ├── PolymorphismIdNameAsWrapperObjectJacksonTest.java │ │ │ │ ├── PolymorphismNoTypeInfoJacksonTest.java │ │ │ │ ├── TypeNamesJacksonTest.java │ │ │ │ └── VisibleTypeIdJacksonTest.java │ │ ├── annotations │ │ │ ├── JsonAnyGetterSetterJacksonTest.java │ │ │ ├── JsonAutoDetectJacksonTest.java │ │ │ ├── JsonCreatorJacksonTest.java │ │ │ ├── JsonDeserializeBuilderJacksonTest.java │ │ │ ├── JsonFormatJacksonTest.java │ │ │ ├── JsonIgnoreJacksonTest.java │ │ │ ├── JsonIgnoreTypeJacksonTest.java │ │ │ ├── JsonIncludeJacksonTest.java │ │ │ ├── JsonManagedAndBackReferenceJacksonTest.java │ │ │ ├── JsonPropertyOrderJacksonTest.java │ │ │ ├── JsonRawValueJacksonTest.java │ │ │ ├── JsonRootNameJacksonTest.java │ │ │ └── JsonUnwrappedJacksonTest.java │ │ ├── mapper │ │ │ ├── AutoDetectionJacksonTest.java │ │ │ ├── CustomIterableJacksonTest.java │ │ │ ├── DifferentTypeGetterJacksonTest.java │ │ │ ├── IgnoreStaticJacksonTest.java │ │ │ ├── PropertyNamingJacksonTest.java │ │ │ └── SimpleBeanJacksonTest.java │ │ ├── mixins │ │ │ ├── MixinDeserForClassJacksonTest.java │ │ │ ├── MixinDeserForCreatorsDelegationJacksonTest.java │ │ │ ├── MixinDeserForCreatorsJacksonTest.java │ │ │ ├── MixinDeserForMethodsJacksonTest.java │ │ │ ├── MixinInheritanceJacksonTest.java │ │ │ ├── MixinSerForClassJacksonTest.java │ │ │ ├── MixinSerForFieldsJacksonTest.java │ │ │ └── MixinSerForMethodsJacksonTest.java │ │ └── options │ │ │ ├── CharArrayOptionJacksonTest.java │ │ │ ├── DateOptionsJacksonTest.java │ │ │ ├── OrderMapEntriesByKeysOptionJacksonTest.java │ │ │ ├── WriteEmptyJsonArraysOptionJacksonTest.java │ │ │ └── WriteNullMapValuesOptionJacksonTest.java │ │ └── shared │ │ ├── AbstractTester.java │ │ ├── ObjectMapperTester.java │ │ ├── ObjectReaderTester.java │ │ ├── ObjectWriterTester.java │ │ ├── advanced │ │ ├── DeserializeAsTester.java │ │ ├── GenericsAndInheritanceTester.java │ │ ├── GenericsTester.java │ │ ├── InheritanceTester.java │ │ ├── ObjectTester.java │ │ ├── PrivateAccessTester.java │ │ ├── WildcardTester.java │ │ ├── identity │ │ │ ├── ObjectIdBackReferenceTester.java │ │ │ ├── ObjectIdDeserializationTester.java │ │ │ ├── ObjectIdSerializationTester.java │ │ │ ├── ObjectIdTester.java │ │ │ ├── ObjectIdWithEqualsTester.java │ │ │ └── ObjectIdWithPolymorphicTester.java │ │ └── jsontype │ │ │ ├── JsonTypeOnParametersTester.java │ │ │ ├── JsonTypeOnPropertiesTester.java │ │ │ ├── JsonTypeWithEnumTester.java │ │ │ ├── JsonTypeWithGenericsTester.java │ │ │ ├── PolymorphismIdClassAsPropertyTester.java │ │ │ ├── PolymorphismIdMinimalClassAsWrapperArrayTester.java │ │ │ ├── PolymorphismIdNameAsWrapperObjectTester.java │ │ │ ├── PolymorphismNoTypeInfoTester.java │ │ │ ├── TypeNamesTester.java │ │ │ └── VisibleTypeIdTester.java │ │ ├── annotations │ │ ├── JsonAnyGetterSetterTester.java │ │ ├── JsonAutoDetectTester.java │ │ ├── JsonCreatorTester.java │ │ ├── JsonDeserializeBuilderTester.java │ │ ├── JsonFormatTester.java │ │ ├── JsonIgnoreTester.java │ │ ├── JsonIgnoreTypeTester.java │ │ ├── JsonIncludeTester.java │ │ ├── JsonManagedAndBackReferenceTester.java │ │ ├── JsonPropertyOrderTester.java │ │ ├── JsonRawValueTester.java │ │ ├── JsonRootNameTester.java │ │ └── JsonUnwrappedTester.java │ │ ├── mapper │ │ ├── AutoDetectionTester.java │ │ ├── CustomIterableTester.java │ │ ├── DifferentTypeGetterTester.java │ │ ├── IgnoreStaticTester.java │ │ ├── PropertyNamingTester.java │ │ └── SimpleBeanJsonMapperTester.java │ │ ├── mixins │ │ ├── MixinDeserForClassTester.java │ │ ├── MixinDeserForCreatorsDelegationTester.java │ │ ├── MixinDeserForCreatorsTester.java │ │ ├── MixinDeserForMethodsTester.java │ │ ├── MixinInheritanceTester.java │ │ ├── MixinSerForClassTester.java │ │ ├── MixinSerForFieldsTester.java │ │ └── MixinSerForMethodsTester.java │ │ ├── model │ │ ├── AnEnum.java │ │ ├── Animal.java │ │ ├── AutoValue_Animal.java │ │ └── SimpleBean.java │ │ └── options │ │ ├── CharArrayOptionTester.java │ │ ├── DateOptionsTester.java │ │ ├── OrderMapEntriesByKeysOptionTester.java │ │ ├── WriteEmptyJsonArraysOptionTester.java │ │ └── WriteNullMapValuesOptionTester.java │ └── resources │ └── com │ └── github │ └── nmorel │ └── gwtjackson │ ├── GwtJacksonSharedTest.gwt.xml │ └── GwtJacksonTest.gwt.xml └── pom.xml /.gitignore: -------------------------------------------------------------------------------- 1 | .idea/* 2 | !.idea/codeStyleSettings.xml 3 | !.idea/copyright/* 4 | 5 | *.iml 6 | 7 | target/ 8 | gwt-unitCache/ 9 | war/ 10 | -------------------------------------------------------------------------------- /.idea/copyright/Apache_2_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | -------------------------------------------------------------------------------- /.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: java 2 | 3 | sudo: false 4 | 5 | jdk: 6 | - oraclejdk8 7 | 8 | 9 | script: mvn clean install -Dgwt.compiler.skip=true 10 | -------------------------------------------------------------------------------- /examples/benchmark/src/main/java/com/github/nmorel/gwtjackson/benchmark/client/Benchmark.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.benchmark.client; 18 | 19 | import com.google.gwt.core.client.EntryPoint; 20 | import com.google.gwt.user.client.ui.RootPanel; 21 | 22 | /** 23 | * @author Nicolas Morel 24 | */ 25 | public class Benchmark implements EntryPoint { 26 | 27 | @Override 28 | public void onModuleLoad() { 29 | BenchmarkView view = new BenchmarkView(); 30 | RootPanel.get().add( view ); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /examples/benchmark/src/main/java/com/github/nmorel/gwtjackson/benchmark/client/data/DataContainer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.benchmark.client.data; 18 | 19 | import java.util.List; 20 | 21 | /** 22 | * @author Nicolas Morel 23 | */ 24 | public class DataContainer { 25 | 26 | private List persons; 27 | 28 | public DataContainer() { 29 | } 30 | 31 | public DataContainer( List persons ) { 32 | this.persons = persons; 33 | } 34 | 35 | public List getPersons() { 36 | return persons; 37 | } 38 | 39 | public void setPersons( List persons ) { 40 | this.persons = persons; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /examples/benchmark/src/main/java/com/github/nmorel/gwtjackson/benchmark/client/data/DataProvider.java: -------------------------------------------------------------------------------- 1 | package com.github.nmorel.gwtjackson.benchmark.client.data; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | /** 7 | * @author Nicolas Morel 8 | */ 9 | public final class DataProvider { 10 | 11 | public static DataContainer generateData( int nbItems ) { 12 | final List persons = new ArrayList<>( nbItems ); 13 | for ( int i = 0; i < nbItems; i++ ) { 14 | persons.add( new Person( "John", "Doe", new Person( "Jane", "Doe" ), new Person( "Billy", "Doe", new Person( "Lily", 15 | "Doe" ) ) ) ); 16 | } 17 | return new DataContainer( persons ); 18 | } 19 | 20 | private DataProvider() {} 21 | 22 | } 23 | 24 | -------------------------------------------------------------------------------- /examples/benchmark/src/main/java/com/github/nmorel/gwtjackson/benchmark/client/data/Person.java: -------------------------------------------------------------------------------- 1 | package com.github.nmorel.gwtjackson.benchmark.client.data; 2 | 3 | import java.util.Arrays; 4 | import java.util.Collections; 5 | import java.util.List; 6 | 7 | /** 8 | * @author Nicolas Morel 9 | */ 10 | public class Person { 11 | 12 | private String firstName; 13 | 14 | private String lastName; 15 | 16 | private List childs; 17 | 18 | public Person() { 19 | } 20 | 21 | public Person( String firstName, String lastName, Person... childs ) { 22 | this.firstName = firstName; 23 | this.lastName = lastName; 24 | if ( null == childs || childs.length == 0 ) { 25 | this.childs = Collections.emptyList(); 26 | } else { 27 | this.childs = Arrays.asList( childs ); 28 | } 29 | } 30 | 31 | public String getFirstName() { 32 | return firstName; 33 | } 34 | 35 | public void setFirstName( String firstName ) { 36 | this.firstName = firstName; 37 | } 38 | 39 | public String getLastName() { 40 | return lastName; 41 | } 42 | 43 | public void setLastName( String lastName ) { 44 | this.lastName = lastName; 45 | } 46 | 47 | public List getChilds() { 48 | return childs; 49 | } 50 | 51 | public void setChilds( List childs ) { 52 | this.childs = childs; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /examples/benchmark/src/main/java/com/github/nmorel/gwtjackson/benchmark/client/mechanism/GwtJackson.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.benchmark.client.mechanism; 18 | 19 | import com.github.nmorel.gwtjackson.benchmark.client.data.DataContainer; 20 | import com.github.nmorel.gwtjackson.client.ObjectMapper; 21 | import com.google.gwt.core.client.GWT; 22 | 23 | /** 24 | * @author Nicolas Morel 25 | */ 26 | public class GwtJackson extends Mechanism { 27 | 28 | public static interface DataContainerMapper extends ObjectMapper {} 29 | 30 | public GwtJackson() { 31 | super( "gwt-jackson" ); 32 | } 33 | 34 | @Override 35 | protected ObjectMapper newMapper() { 36 | return GWT.create( DataContainerMapper.class ); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /examples/benchmark/src/main/java/com/github/nmorel/gwtjackson/benchmark/client/ui/ResultLineWidget.ui.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | .row { 6 | margin-top: 15px; 7 | margin-bottom: 15px; 8 | } 9 | 10 | .no-margin-bottom { 11 | margin-bottom: 0; 12 | } 13 | 14 | .no-transition { 15 | -webkit-transition: none; 16 | -moz-transition: none; 17 | -ms-transition: none; 18 | -o-transition: none; 19 | transition: none; 20 | } 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /examples/benchmark/src/main/java/com/github/nmorel/gwtjackson/benchmark/client/ui/ResultWidget.java: -------------------------------------------------------------------------------- 1 | package com.github.nmorel.gwtjackson.benchmark.client.ui; 2 | 3 | import com.google.gwt.core.client.GWT; 4 | import com.google.gwt.uibinder.client.UiBinder; 5 | import com.google.gwt.uibinder.client.UiField; 6 | import com.google.gwt.user.client.ui.Composite; 7 | import com.google.gwt.user.client.ui.Widget; 8 | import org.gwtbootstrap3.client.ui.PanelHeader; 9 | 10 | /** 11 | * @author Nicolas Morel 12 | */ 13 | public class ResultWidget extends Composite { 14 | 15 | interface MechanismUiBinder extends UiBinder {} 16 | 17 | private static MechanismUiBinder ourUiBinder = GWT.create( MechanismUiBinder.class ); 18 | 19 | @UiField 20 | PanelHeader header; 21 | 22 | @UiField 23 | ResultLineWidget resultSer; 24 | 25 | @UiField 26 | ResultLineWidget resultDeser; 27 | 28 | public ResultWidget( String title ) { 29 | initWidget( ourUiBinder.createAndBindUi( this ) ); 30 | header.setText( title ); 31 | } 32 | 33 | public ResultLineWidget getResultSer() { 34 | return resultSer; 35 | } 36 | 37 | public ResultLineWidget getResultDeser() { 38 | return resultDeser; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /examples/benchmark/src/main/java/com/github/nmorel/gwtjackson/benchmark/client/ui/ResultWidget.ui.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/benchmark/src/main/resources/com/github/nmorel/gwtjackson/benchmark/Benchmark.gwt.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /examples/benchmark/src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 22 | 23 | index.html 24 | 25 | 26 | -------------------------------------------------------------------------------- /examples/benchmark/src/main/webapp/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | GWT Jackson - Benchmark 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /examples/gwtp/README.md: -------------------------------------------------------------------------------- 1 | Hello world project using [GWTP Rest Dispatch](http://dev.arcbees.com/gwtp/communication/index.html) and gwt-jackson to communicate with the server. 2 | -------------------------------------------------------------------------------- /examples/gwtp/src/main/java/com/github/nmorel/gwtjackson/hello/HelloGWTP.gwt.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /examples/gwtp/src/main/java/com/github/nmorel/gwtjackson/hello/client/HelloGinjector.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.hello.client; 18 | 19 | import com.google.gwt.inject.client.GinModules; 20 | import com.google.gwt.inject.client.Ginjector; 21 | import com.gwtplatform.dispatch.rest.client.RestDispatch; 22 | 23 | /** 24 | * @author Nicolas Morel. 25 | */ 26 | @GinModules( value = HelloModule.class, properties = {"gin.ginjector.modules"} ) 27 | public interface HelloGinjector extends Ginjector { 28 | 29 | RestDispatch getRestDispatch(); 30 | 31 | HelloRestService getHelloRestService(); 32 | } 33 | -------------------------------------------------------------------------------- /examples/gwtp/src/main/java/com/github/nmorel/gwtjackson/hello/client/HelloModule.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.hello.client; 18 | 19 | import com.google.gwt.inject.client.AbstractGinModule; 20 | import com.gwtplatform.dispatch.rest.client.RestApplicationPath; 21 | import com.gwtplatform.dispatch.rest.client.gin.RestDispatchAsyncModule; 22 | 23 | /** 24 | * @author Nicolas Morel. 25 | */ 26 | public class HelloModule extends AbstractGinModule { 27 | 28 | @Override 29 | protected void configure() { 30 | RestDispatchAsyncModule.Builder dispatchBuilder = new RestDispatchAsyncModule.Builder(); 31 | install( dispatchBuilder.build() ); 32 | 33 | bindConstant().annotatedWith( RestApplicationPath.class ).to( "api" ); 34 | } 35 | } 36 | 37 | -------------------------------------------------------------------------------- /examples/gwtp/src/main/java/com/github/nmorel/gwtjackson/hello/client/HelloRestService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.hello.client; 18 | 19 | import javax.ws.rs.POST; 20 | import javax.ws.rs.Path; 21 | 22 | import com.github.nmorel.gwtjackson.hello.shared.GreetingRequest; 23 | import com.github.nmorel.gwtjackson.hello.shared.GreetingResponse; 24 | import com.gwtplatform.dispatch.rest.shared.RestAction; 25 | 26 | /** 27 | * @author Nicolas Morel. 28 | */ 29 | @Path( "hello" ) 30 | public interface HelloRestService { 31 | 32 | @POST 33 | RestAction greet( GreetingRequest request ); 34 | 35 | } 36 | 37 | -------------------------------------------------------------------------------- /examples/gwtp/src/main/java/com/github/nmorel/gwtjackson/hello/shared/GreetingRequest.java: -------------------------------------------------------------------------------- 1 | package com.github.nmorel.gwtjackson.hello.shared; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | 5 | public class GreetingRequest { 6 | 7 | private String name; 8 | 9 | public GreetingRequest( @JsonProperty("name") String name ) { 10 | this.name = name; 11 | } 12 | 13 | public String getName() { 14 | return name; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /examples/gwtp/src/main/java/com/github/nmorel/gwtjackson/hello/shared/GreetingResponse.java: -------------------------------------------------------------------------------- 1 | package com.github.nmorel.gwtjackson.hello.shared; 2 | 3 | public class GreetingResponse { 4 | 5 | private String greeting; 6 | 7 | private String serverInfo; 8 | 9 | private String userAgent; 10 | 11 | public String getGreeting() { 12 | return greeting; 13 | } 14 | 15 | public void setGreeting( String greeting ) { 16 | this.greeting = greeting; 17 | } 18 | 19 | public String getServerInfo() { 20 | return serverInfo; 21 | } 22 | 23 | public void setServerInfo( String serverInfo ) { 24 | this.serverInfo = serverInfo; 25 | } 26 | 27 | public String getUserAgent() { 28 | return userAgent; 29 | } 30 | 31 | public void setUserAgent( String userAgent ) { 32 | this.userAgent = userAgent; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /examples/gwtp/src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 22 | 23 | 24 | greetingResource 25 | com.github.nmorel.gwtjackson.hello.server.GreetingResource 26 | 27 | 28 | 29 | greetingResource 30 | /api/hello 31 | 32 | 33 | 34 | index.html 35 | 36 | 37 | -------------------------------------------------------------------------------- /examples/gwtp/src/main/webapp/hello.css: -------------------------------------------------------------------------------- 1 | /** Add css rules here for your application. */ 2 | 3 | /** Example rules used by the template application (remove for your app) */ 4 | h1 { 5 | font-size: 2em; 6 | font-weight: bold; 7 | color: #777777; 8 | margin: 40px 0px 70px; 9 | text-align: center; 10 | } 11 | 12 | .sendButton { 13 | display: block; 14 | font-size: 16pt; 15 | } 16 | 17 | /** Most GWT widgets already have a style name defined */ 18 | .gwt-DialogBox { 19 | width: 400px; 20 | } 21 | 22 | .dialogVPanel { 23 | margin: 5px; 24 | } 25 | 26 | .serverResponseLabelError { 27 | color: red; 28 | } 29 | 30 | /** Set ids using widget.getElement().setId("idOfElement") */ 31 | #closeButton { 32 | margin: 15px 6px 6px; 33 | } 34 | -------------------------------------------------------------------------------- /examples/hello/README.md: -------------------------------------------------------------------------------- 1 | Hello world project using [GWT RequestBuilder](http://www.gwtproject.org/javadoc/latest/com/google/gwt/http/client/RequestBuilder.html) and gwt-jackson to communicate with the server. 2 | -------------------------------------------------------------------------------- /examples/hello/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | examples 5 | com.github.nmorel.gwtjackson 6 | 0.15.5-SNAPSHOT 7 | 8 | 4.0.0 9 | 10 | hello 11 | war 12 | 13 | gwt-jackson :: Examples :: Hello World 14 | GWT Hello World using gwt-jackson instead of RPC 15 | 16 | 17 | com.github.nmorel.gwtjackson.hello.Hello 18 | 19 | 20 | 21 | 22 | com.fasterxml.jackson.core 23 | jackson-databind 24 | 25 | 26 | 27 | 28 | 29 | 30 | org.codehaus.mojo 31 | gwt-maven-plugin 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /examples/hello/src/main/java/com/github/nmorel/gwtjackson/hello/Hello.gwt.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/hello/src/main/java/com/github/nmorel/gwtjackson/hello/shared/GreetingRequest.java: -------------------------------------------------------------------------------- 1 | package com.github.nmorel.gwtjackson.hello.shared; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | 5 | public class GreetingRequest { 6 | 7 | private String name; 8 | 9 | public GreetingRequest( @JsonProperty("name") String name ) { 10 | this.name = name; 11 | } 12 | 13 | public String getName() { 14 | return name; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /examples/hello/src/main/java/com/github/nmorel/gwtjackson/hello/shared/GreetingResponse.java: -------------------------------------------------------------------------------- 1 | package com.github.nmorel.gwtjackson.hello.shared; 2 | 3 | public class GreetingResponse { 4 | 5 | private String greeting; 6 | 7 | private String serverInfo; 8 | 9 | private String userAgent; 10 | 11 | public String getGreeting() { 12 | return greeting; 13 | } 14 | 15 | public void setGreeting( String greeting ) { 16 | this.greeting = greeting; 17 | } 18 | 19 | public String getServerInfo() { 20 | return serverInfo; 21 | } 22 | 23 | public void setServerInfo( String serverInfo ) { 24 | this.serverInfo = serverInfo; 25 | } 26 | 27 | public String getUserAgent() { 28 | return userAgent; 29 | } 30 | 31 | public void setUserAgent( String userAgent ) { 32 | this.userAgent = userAgent; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /examples/hello/src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 22 | 23 | 24 | greetingResource 25 | com.github.nmorel.gwtjackson.hello.server.GreetingResource 26 | 27 | 28 | 29 | greetingResource 30 | /hello/greet 31 | 32 | 33 | 34 | index.html 35 | 36 | 37 | -------------------------------------------------------------------------------- /examples/hello/src/main/webapp/hello.css: -------------------------------------------------------------------------------- 1 | /** Add css rules here for your application. */ 2 | 3 | /** Example rules used by the template application (remove for your app) */ 4 | h1 { 5 | font-size: 2em; 6 | font-weight: bold; 7 | color: #777777; 8 | margin: 40px 0px 70px; 9 | text-align: center; 10 | } 11 | 12 | .sendButton { 13 | display: block; 14 | font-size: 16pt; 15 | } 16 | 17 | /** Most GWT widgets already have a style name defined */ 18 | .gwt-DialogBox { 19 | width: 400px; 20 | } 21 | 22 | .dialogVPanel { 23 | margin: 5px; 24 | } 25 | 26 | .serverResponseLabelError { 27 | color: red; 28 | } 29 | 30 | /** Set ids using widget.getElement().setId("idOfElement") */ 31 | #closeButton { 32 | margin: 15px 6px 6px; 33 | } 34 | -------------------------------------------------------------------------------- /examples/minimal/src/main/java/com/github/nmorel/gwtjackson/minimal/Minimal.gwt.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /examples/minimal/src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 22 | 23 | index.html 24 | 25 | 26 | -------------------------------------------------------------------------------- /examples/minimal/src/main/webapp/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | GWT Jackson - Minimal 25 | 26 | 27 | 28 | 29 | 30 | 31 | 37 |

This example does not display anything. It just builds the README example.

38 | 39 | 40 | -------------------------------------------------------------------------------- /examples/profiling/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | examples 5 | com.github.nmorel.gwtjackson 6 | 0.15.5-SNAPSHOT 7 | 8 | 4.0.0 9 | 10 | profiling 11 | war 12 | 13 | gwt-jackson :: Examples :: Profiling 14 | Project used for profiling with d8 15 | 16 | 17 | com.github.nmorel.gwtjackson.profiling.Profiling 18 | 19 | 20 | 21 | 22 | 23 | org.codehaus.mojo 24 | gwt-maven-plugin 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /examples/profiling/src/main/java/com/github/nmorel/gwtjackson/profiling/Profiling.gwt.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /examples/profiling/src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 22 | 23 | 24 | index.html 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /examples/profiling/src/main/webapp/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | GWT Jackson - Profiling application 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /examples/requestor/README.md: -------------------------------------------------------------------------------- 1 | Hello world project using [Requestor](http://reinert.io/requestor/latest/) and gwt-jackson to communicate with the server. 2 | -------------------------------------------------------------------------------- /examples/requestor/src/main/java/com/github/nmorel/gwtjackson/hello/HelloRequestor.gwt.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /examples/requestor/src/main/java/com/github/nmorel/gwtjackson/hello/shared/GreetingRequest.java: -------------------------------------------------------------------------------- 1 | package com.github.nmorel.gwtjackson.hello.shared; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import io.reinert.requestor.Json; 5 | 6 | @Json 7 | public class GreetingRequest { 8 | 9 | private String name; 10 | 11 | public GreetingRequest( @JsonProperty("name") String name ) { 12 | this.name = name; 13 | } 14 | 15 | public String getName() { 16 | return name; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /examples/requestor/src/main/java/com/github/nmorel/gwtjackson/hello/shared/GreetingResponse.java: -------------------------------------------------------------------------------- 1 | package com.github.nmorel.gwtjackson.hello.shared; 2 | 3 | import io.reinert.requestor.Json; 4 | 5 | @Json 6 | public class GreetingResponse { 7 | 8 | private String greeting; 9 | 10 | private String serverInfo; 11 | 12 | private String userAgent; 13 | 14 | public String getGreeting() { 15 | return greeting; 16 | } 17 | 18 | public void setGreeting( String greeting ) { 19 | this.greeting = greeting; 20 | } 21 | 22 | public String getServerInfo() { 23 | return serverInfo; 24 | } 25 | 26 | public void setServerInfo( String serverInfo ) { 27 | this.serverInfo = serverInfo; 28 | } 29 | 30 | public String getUserAgent() { 31 | return userAgent; 32 | } 33 | 34 | public void setUserAgent( String userAgent ) { 35 | this.userAgent = userAgent; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /examples/requestor/src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 22 | 23 | 24 | greetingResource 25 | com.github.nmorel.gwtjackson.hello.server.GreetingResource 26 | 27 | 28 | 29 | greetingResource 30 | /api/hello 31 | 32 | 33 | 34 | index.html 35 | 36 | 37 | -------------------------------------------------------------------------------- /examples/requestor/src/main/webapp/hello.css: -------------------------------------------------------------------------------- 1 | /** Add css rules here for your application. */ 2 | 3 | /** Example rules used by the template application (remove for your app) */ 4 | h1 { 5 | font-size: 2em; 6 | font-weight: bold; 7 | color: #777777; 8 | margin: 40px 0px 70px; 9 | text-align: center; 10 | } 11 | 12 | .sendButton { 13 | display: block; 14 | font-size: 16pt; 15 | } 16 | 17 | /** Most GWT widgets already have a style name defined */ 18 | .gwt-DialogBox { 19 | width: 400px; 20 | } 21 | 22 | .dialogVPanel { 23 | margin: 5px; 24 | } 25 | 26 | .serverResponseLabelError { 27 | color: red; 28 | } 29 | 30 | /** Set ids using widget.getElement().setId("idOfElement") */ 31 | #closeButton { 32 | margin: 15px 6px 6px; 33 | } 34 | -------------------------------------------------------------------------------- /examples/restygwt/README.md: -------------------------------------------------------------------------------- 1 | Hello world project using [RestyGWT](http://resty-gwt.github.io/) and gwt-jackson to communicate with the server. 2 | -------------------------------------------------------------------------------- /examples/restygwt/src/main/java/com/github/nmorel/gwtjackson/hello/HelloRestyGWT.gwt.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /examples/restygwt/src/main/java/com/github/nmorel/gwtjackson/hello/client/HelloRestService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.hello.client; 18 | 19 | import javax.ws.rs.POST; 20 | import javax.ws.rs.Path; 21 | 22 | import com.github.nmorel.gwtjackson.hello.shared.GreetingRequest; 23 | import com.github.nmorel.gwtjackson.hello.shared.GreetingResponse; 24 | import org.fusesource.restygwt.client.MethodCallback; 25 | import org.fusesource.restygwt.client.RestService; 26 | 27 | /** 28 | * @author Nicolas Morel. 29 | */ 30 | @Path( "hello" ) 31 | public interface HelloRestService extends RestService { 32 | 33 | @POST 34 | void greet( GreetingRequest request, MethodCallback callback ); 35 | 36 | } 37 | 38 | -------------------------------------------------------------------------------- /examples/restygwt/src/main/java/com/github/nmorel/gwtjackson/hello/shared/GreetingRequest.java: -------------------------------------------------------------------------------- 1 | package com.github.nmorel.gwtjackson.hello.shared; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | 5 | public class GreetingRequest { 6 | 7 | private String name; 8 | 9 | public GreetingRequest( @JsonProperty("name") String name ) { 10 | this.name = name; 11 | } 12 | 13 | public String getName() { 14 | return name; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /examples/restygwt/src/main/java/com/github/nmorel/gwtjackson/hello/shared/GreetingResponse.java: -------------------------------------------------------------------------------- 1 | package com.github.nmorel.gwtjackson.hello.shared; 2 | 3 | public class GreetingResponse { 4 | 5 | private String greeting; 6 | 7 | private String serverInfo; 8 | 9 | private String userAgent; 10 | 11 | public String getGreeting() { 12 | return greeting; 13 | } 14 | 15 | public void setGreeting( String greeting ) { 16 | this.greeting = greeting; 17 | } 18 | 19 | public String getServerInfo() { 20 | return serverInfo; 21 | } 22 | 23 | public void setServerInfo( String serverInfo ) { 24 | this.serverInfo = serverInfo; 25 | } 26 | 27 | public String getUserAgent() { 28 | return userAgent; 29 | } 30 | 31 | public void setUserAgent( String userAgent ) { 32 | this.userAgent = userAgent; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /examples/restygwt/src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 22 | 23 | 24 | greetingResource 25 | com.github.nmorel.gwtjackson.hello.server.GreetingResource 26 | 27 | 28 | 29 | greetingResource 30 | /api/hello 31 | 32 | 33 | 34 | index.html 35 | 36 | 37 | -------------------------------------------------------------------------------- /examples/restygwt/src/main/webapp/hello.css: -------------------------------------------------------------------------------- 1 | /** Add css rules here for your application. */ 2 | 3 | /** Example rules used by the template application (remove for your app) */ 4 | h1 { 5 | font-size: 2em; 6 | font-weight: bold; 7 | color: #777777; 8 | margin: 40px 0px 70px; 9 | text-align: center; 10 | } 11 | 12 | .sendButton { 13 | display: block; 14 | font-size: 16pt; 15 | } 16 | 17 | /** Most GWT widgets already have a style name defined */ 18 | .gwt-DialogBox { 19 | width: 400px; 20 | } 21 | 22 | .dialogVPanel { 23 | margin: 5px; 24 | } 25 | 26 | .serverResponseLabelError { 27 | color: red; 28 | } 29 | 30 | /** Set ids using widget.getElement().setId("idOfElement") */ 31 | #closeButton { 32 | margin: 15px 6px 6px; 33 | } 34 | -------------------------------------------------------------------------------- /extensions/README.md: -------------------------------------------------------------------------------- 1 | gwt-jackson-extensions 2 | ===== 3 | This submodule contains all the extensions of [gwt-jackson](https://github.com/nmorel/gwt-jackson). 4 | * [Guava](guava) : Add support for Guava types like Optional or ImmutableList 5 | * [Objectify](objectify) : Add support for Objectify types like Ref or Key 6 | * [Remote Logging](remotelogging) : Add support for remote logging of Throwable 7 | 8 | 9 | Copyright and license 10 | ------------- 11 | 12 | Copyright 2013 Nicolas Morel under the [Apache 2.0 license](LICENSE). 13 | -------------------------------------------------------------------------------- /extensions/guava/README.md: -------------------------------------------------------------------------------- 1 | gwt-jackson-guava 2 | ===== 3 | This extension contains serializer and deserializer for Guava types like Optional or ImmutableList. For a complete support list, 4 | check the wiki or [the configuration class](src/main/java/com/github/nmorel/gwtjackson/guava/rebind/GuavaConfiguration.java). 5 | 6 | To use it, add the library to your classpath (for maven, the artifactId is `gwt-jackson-guava`) and add `` to your module descriptor XML file. 7 | 8 | 9 | Copyright and license 10 | ------------- 11 | 12 | Copyright 2013 Nicolas Morel under the [Apache 2.0 license](LICENSE). 13 | -------------------------------------------------------------------------------- /extensions/guava/src/main/resources/com/github/nmorel/gwtjackson/guava/GwtJacksonGuava.gwt.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /extensions/guava/src/test/java/com/github/nmorel/gwtjackson/guava/client/GwtJacksonGuavaTestCase.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.guava.client; 18 | 19 | import com.github.nmorel.gwtjackson.client.GwtJacksonTestCase; 20 | 21 | /** 22 | * @author Nicolas Morel 23 | */ 24 | public abstract class GwtJacksonGuavaTestCase extends GwtJacksonTestCase { 25 | 26 | @Override 27 | public String getModuleName() { 28 | return "com.github.nmorel.gwtjackson.guava.GwtJacksonGuavaTest"; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /extensions/guava/src/test/java/com/github/nmorel/gwtjackson/guava/client/GwtJacksonGuavaTestSuite.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.guava.client; 18 | 19 | import com.google.gwt.junit.tools.GWTTestSuite; 20 | import junit.framework.Test; 21 | import junit.framework.TestCase; 22 | 23 | /** 24 | * @author Nicolas Morel 25 | */ 26 | public class GwtJacksonGuavaTestSuite extends TestCase { 27 | 28 | public static Test suite() { 29 | GWTTestSuite suite = new GWTTestSuite(); 30 | suite.addTestSuite( BiMapGwtTest.class ); 31 | suite.addTestSuite( FluentIterableGwtTest.class ); 32 | suite.addTestSuite( ImmutablesGwtTest.class ); 33 | suite.addTestSuite( MultimapGwtTest.class ); 34 | suite.addTestSuite( MultisetGwtTest.class ); 35 | suite.addTestSuite( ObjectGwtTest.class ); 36 | suite.addTestSuite( OptionalGwtTest.class ); 37 | return suite; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /extensions/guava/src/test/java/com/github/nmorel/gwtjackson/guava/jackson/AbstractJacksonGuavaTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.guava.jackson; 18 | 19 | import com.fasterxml.jackson.datatype.guava.GuavaModule; 20 | import com.github.nmorel.gwtjackson.jackson.AbstractJacksonTest; 21 | 22 | /** 23 | * @author Nicolas Morel 24 | */ 25 | public abstract class AbstractJacksonGuavaTest extends AbstractJacksonTest { 26 | 27 | @Override 28 | public void setUp() { 29 | super.setUp(); 30 | objectMapper.registerModule( new GuavaModule() ); 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /extensions/guava/src/test/java/com/github/nmorel/gwtjackson/guava/jackson/FluentIterableJacksonTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.guava.jackson; 18 | 19 | import com.fasterxml.jackson.core.type.TypeReference; 20 | import com.github.nmorel.gwtjackson.guava.shared.FluentIterableTester; 21 | import com.google.common.collect.FluentIterable; 22 | import org.junit.Test; 23 | 24 | /** 25 | * @author Nicolas Morel 26 | */ 27 | public class FluentIterableJacksonTest extends AbstractJacksonGuavaTest { 28 | 29 | @Test 30 | public void testSerialization() { 31 | FluentIterableTester.INSTANCE.testSerialization( createWriter( new TypeReference>() {} ) ); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /extensions/guava/src/test/java/com/github/nmorel/gwtjackson/guava/shared/FluentIterableTester.java: -------------------------------------------------------------------------------- 1 | package com.github.nmorel.gwtjackson.guava.shared; 2 | 3 | import java.util.Iterator; 4 | 5 | import com.github.nmorel.gwtjackson.shared.AbstractTester; 6 | import com.github.nmorel.gwtjackson.shared.ObjectWriterTester; 7 | import com.google.common.collect.FluentIterable; 8 | import com.google.common.collect.Sets; 9 | 10 | /** 11 | * Unit tests to verify serialization of {@link FluentIterable}s. 12 | */ 13 | public final class FluentIterableTester extends AbstractTester { 14 | 15 | FluentIterable createFluentIterable() { 16 | return new FluentIterable() { 17 | private final Iterable _iterable = Sets.newHashSet( 1, 2, 3 ); 18 | 19 | @Override 20 | public Iterator iterator() { 21 | return _iterable.iterator(); 22 | } 23 | }; 24 | } 25 | 26 | public static final FluentIterableTester INSTANCE = new FluentIterableTester(); 27 | 28 | private FluentIterableTester() { 29 | } 30 | 31 | public void testSerialization( ObjectWriterTester> writer ) { 32 | FluentIterable fluentIterable = createFluentIterable(); 33 | String json = writer.write( fluentIterable ); 34 | assertEquals( "[1,2,3]", json ); 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /extensions/guava/src/test/resources/com/github/nmorel/gwtjackson/guava/GwtJacksonGuavaTest.gwt.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /extensions/objectify/README.md: -------------------------------------------------------------------------------- 1 | gwt-jackson-objectify 2 | ===== 3 | This extension contains serializer and deserializer for Objectify types like Ref or Key. 4 | 5 | To use it add the library to your classpath (for maven, the artifactId is `gwt-jackson-objectify`): 6 | 1. Client-side: add `` to your module descriptor XML file. 7 | 2. Server-side: register the Jackson module `ObjectifyJacksonModule` 8 | 9 | Full working demo project: [gwt-storage-objectify](https://github.com/freddyboucher/gwt-storage-objectify) 10 | 11 | Important note: Ref\ is serialized as DeadRef\ and the T value is serialized if it is loaded into the session. 12 | 13 | 14 | Copyright and license 15 | ------------- 16 | 17 | Copyright 2013 Nicolas Morel under the [Apache 2.0 license](LICENSE). 18 | -------------------------------------------------------------------------------- /extensions/objectify/src/main/java/com/github/nmorel/gwtjackson/objectify/server/KeyStdSerializer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.objectify.server; 18 | 19 | import java.io.IOException; 20 | 21 | import com.fasterxml.jackson.core.JsonGenerator; 22 | import com.fasterxml.jackson.databind.SerializerProvider; 23 | import com.fasterxml.jackson.databind.ser.std.StdSerializer; 24 | import com.github.nmorel.gwtjackson.objectify.shared.KeyConstant; 25 | import com.googlecode.objectify.Key; 26 | 27 | public class KeyStdSerializer extends StdSerializer { 28 | 29 | public KeyStdSerializer() { 30 | super( Key.class ); 31 | } 32 | 33 | @Override 34 | public void serialize( Key value, JsonGenerator jgen, SerializerProvider provider ) throws IOException { 35 | jgen.writeStartObject(); 36 | jgen.writeObjectField( KeyConstant.RAW, value.getRaw() ); 37 | jgen.writeEndObject(); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /extensions/objectify/src/main/java/com/github/nmorel/gwtjackson/objectify/shared/KeyConstant.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.objectify.shared; 18 | 19 | public class KeyConstant { 20 | 21 | public static final String RAW = "raw"; 22 | } 23 | -------------------------------------------------------------------------------- /extensions/objectify/src/main/java/com/github/nmorel/gwtjackson/objectify/shared/RawKeyConstant.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.objectify.shared; 18 | 19 | public class RawKeyConstant { 20 | 21 | public static final String PARENT = "parent"; 22 | 23 | public static final String NAME = "name"; 24 | 25 | public static final String KIND = "kind"; 26 | 27 | public static final String ID = "id"; 28 | } 29 | -------------------------------------------------------------------------------- /extensions/objectify/src/main/java/com/github/nmorel/gwtjackson/objectify/shared/RefConstant.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.objectify.shared; 18 | 19 | public class RefConstant { 20 | 21 | public static final String KEY = "key"; 22 | 23 | public static final String VALUE = "value"; 24 | } 25 | -------------------------------------------------------------------------------- /extensions/objectify/src/main/resources/com/github/nmorel/gwtjackson/objectify/GwtJacksonObjectify.gwt.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /extensions/objectify/src/main/resources/com/github/nmorel/gwtjackson/objectify/super/com/google/appengine/api/datastore/DataTypeUtils.java: -------------------------------------------------------------------------------- 1 | package com.google.appengine.api.datastore; 2 | 3 | /** 4 | * GWT emulation class. 5 | */ 6 | public class DataTypeUtils { 7 | 8 | public static final int MAX_STRING_PROPERTY_LENGTH = 500; 9 | 10 | public static final int MAX_SHORT_BLOB_PROPERTY_LENGTH = 500; 11 | 12 | public static final int MAX_LINK_PROPERTY_LENGTH = 2038; 13 | } 14 | -------------------------------------------------------------------------------- /extensions/objectify/src/main/resources/com/github/nmorel/gwtjackson/objectify/super/com/google/appengine/api/datastore/EntityNotFoundException.java: -------------------------------------------------------------------------------- 1 | // Copyright 2007 Google Inc. All rights reserved. 2 | 3 | package com.google.appengine.api.datastore; 4 | 5 | /** 6 | * {@code EntityNotFoundException} is thrown when no {@code Entity} 7 | * with the specified {@code Key} could be found. 8 | */ 9 | public class EntityNotFoundException extends Exception { 10 | 11 | private final Key key; 12 | 13 | public EntityNotFoundException( Key key ) { 14 | super( "No entity was found matching the key: " + key ); 15 | this.key = key; 16 | } 17 | 18 | public Key getKey() { 19 | return key; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /extensions/objectify/src/main/resources/com/github/nmorel/gwtjackson/objectify/super/com/google/appengine/api/datastore/ShortBlob.java: -------------------------------------------------------------------------------- 1 | package com.google.appengine.api.datastore; 2 | 3 | import java.io.Serializable; 4 | import java.util.Arrays; 5 | 6 | /** 7 | * GWT emulation class, leaves off some references to not-gwt-safe code. In particular, the Comparable 8 | * interface implementation. 9 | */ 10 | @SuppressWarnings( "serial" ) 11 | public class ShortBlob implements Serializable { 12 | 13 | private byte bytes[]; 14 | 15 | @SuppressWarnings( "unused" ) 16 | private ShortBlob() { 17 | bytes = null; 18 | } 19 | 20 | public ShortBlob( byte bytes[] ) { 21 | this.bytes = new byte[bytes.length]; 22 | System.arraycopy( bytes, 0, this.bytes, 0, bytes.length ); 23 | } 24 | 25 | public byte[] getBytes() { 26 | return bytes; 27 | } 28 | 29 | public int hashCode() { 30 | return Arrays.hashCode( bytes ); 31 | } 32 | 33 | public boolean equals( Object object ) { 34 | if ( object instanceof ShortBlob ) { 35 | ShortBlob other = (ShortBlob) object; 36 | return Arrays.equals( bytes, other.bytes ); 37 | } else { 38 | return false; 39 | } 40 | } 41 | 42 | public String toString() { 43 | return (new StringBuilder()).append( "" ).toString(); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /extensions/objectify/src/main/resources/com/github/nmorel/gwtjackson/objectify/super/com/google/apphosting/api/NamespaceResources.java: -------------------------------------------------------------------------------- 1 | // Copyright 2009 Google Inc. All Rights Reserved. 2 | 3 | package com.google.apphosting.api; 4 | 5 | /** 6 | * Reources for namespaces used by front end and back end. 7 | */ 8 | public final class NamespaceResources { 9 | 10 | /** 11 | * The separator character used to encode the appId/namespace pair. 12 | */ 13 | public static final char NAMESPACE_SEPARATOR = '!'; 14 | 15 | private NamespaceResources() { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /extensions/objectify/src/main/resources/com/github/nmorel/gwtjackson/objectify/super/com/googlecode/objectify/NotFoundException.java: -------------------------------------------------------------------------------- 1 | package com.googlecode.objectify; 2 | 3 | /** 4 | * Exception thrown when a fetch for something could not be found. This is associated with the 5 | * getSafe() and keySafe() methods on Ref; if the item being sought in the Ref couldn't be found, 6 | * this will be thrown. 7 | */ 8 | public class NotFoundException extends RuntimeException { 9 | 10 | private static final long serialVersionUID = 1L; 11 | 12 | /** */ 13 | private Key key; 14 | 15 | /** 16 | * Thrown when there is no key context (eg, query.first() on an empty result set) 17 | */ 18 | public NotFoundException() { 19 | this( null ); 20 | } 21 | 22 | /** 23 | * Thrown when we at least know what we are looking for! 24 | */ 25 | public NotFoundException( Key key ) { 26 | super( key == null ? "No entity was found" : "No entity was found matching the key: " + key ); 27 | this.key = key; 28 | } 29 | 30 | /** 31 | * @return the key we are looking for, if known 32 | */ 33 | public Key getKey() { 34 | return this.key; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /extensions/objectify/src/main/resources/com/github/nmorel/gwtjackson/objectify/super/com/googlecode/objectify/impl/ref/DeadRef.java: -------------------------------------------------------------------------------- 1 | package com.googlecode.objectify.impl.ref; 2 | 3 | import com.googlecode.objectify.Key; 4 | import com.googlecode.objectify.Ref; 5 | 6 | /** 7 | *

Implementation of Ref which is disconnected from the live system; for example, this will be used 8 | * if a Ref gets serialized or deserialized.

9 | * 10 | * @author Jeff Schnitzer 11 | */ 12 | public class DeadRef extends Ref { 13 | 14 | private static final long serialVersionUID = 1L; 15 | 16 | /** */ 17 | T value; 18 | 19 | /** 20 | * For GWT serialization 21 | */ 22 | protected DeadRef() {} 23 | 24 | /** 25 | * Create a Ref based on the key 26 | */ 27 | public DeadRef( Key key ) { 28 | this( key, null ); 29 | } 30 | 31 | /** 32 | * Create a Ref based on the key and value 33 | */ 34 | public DeadRef( Key key, T value ) { 35 | super( key ); 36 | this.value = value; 37 | } 38 | 39 | /* (non-Javadoc) 40 | * @see com.googlecode.objectify.Ref#get() 41 | */ 42 | @Override 43 | public T get() { 44 | return value; 45 | } 46 | 47 | /* (non-Javadoc) 48 | * @see com.googlecode.objectify.Ref#isLoaded() 49 | */ 50 | @Override 51 | public boolean isLoaded() { 52 | return true; 53 | } 54 | } -------------------------------------------------------------------------------- /extensions/objectify/src/test/java/com/github/nmorel/gwtjackson/objectify/client/BeanRefTestCase.java: -------------------------------------------------------------------------------- 1 | package com.github.nmorel.gwtjackson.objectify.client; 2 | 3 | import com.github.nmorel.gwtjackson.client.ObjectMapper; 4 | import com.github.nmorel.gwtjackson.objectify.shared.BeanRefTester; 5 | import com.github.nmorel.gwtjackson.objectify.shared.ObjectifyAbstractTester.Bean; 6 | import com.google.gwt.core.client.GWT; 7 | import com.googlecode.objectify.Ref; 8 | import org.junit.Test; 9 | 10 | public class BeanRefTestCase extends GwtJacksonObjectifyTestCase { 11 | 12 | @Test 13 | public void test() throws Exception { 14 | BeanRefTester.INSTANCE.testSerialize( createWriter( TestObjectMapper.INSTANCE ) ); 15 | BeanRefTester.INSTANCE.testDeserialize( createReader( TestObjectMapper.INSTANCE ) ); 16 | 17 | BeanRefTester.INSTANCE.testSerializeNonNull( createWriter( TestObjectMapper.INSTANCE, createNonNullContext() ) ); 18 | BeanRefTester.INSTANCE.testDeserializeNonNull( createReader( TestObjectMapper.INSTANCE ) ); 19 | } 20 | 21 | public interface TestObjectMapper extends ObjectMapper> { 22 | 23 | TestObjectMapper INSTANCE = GWT.create( TestObjectMapper.class ); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /extensions/objectify/src/test/java/com/github/nmorel/gwtjackson/objectify/client/BeanTestCase.java: -------------------------------------------------------------------------------- 1 | package com.github.nmorel.gwtjackson.objectify.client; 2 | 3 | import com.github.nmorel.gwtjackson.client.ObjectMapper; 4 | import com.github.nmorel.gwtjackson.objectify.shared.BeanTester; 5 | import com.github.nmorel.gwtjackson.objectify.shared.ObjectifyAbstractTester.Bean; 6 | import com.google.gwt.core.client.GWT; 7 | import org.junit.Test; 8 | 9 | public class BeanTestCase extends GwtJacksonObjectifyTestCase { 10 | 11 | @Test 12 | public void test() throws Exception { 13 | BeanTester.INSTANCE.testSerialize( createWriter( TestObjectMapper.INSTANCE ) ); 14 | BeanTester.INSTANCE.testDeserialize( createReader( TestObjectMapper.INSTANCE ) ); 15 | 16 | BeanTester.INSTANCE.testSerializeNonNull( createWriter( TestObjectMapper.INSTANCE, createNonNullContext() ) ); 17 | BeanTester.INSTANCE.testDeserializeNonNull( createReader( TestObjectMapper.INSTANCE ) ); 18 | } 19 | 20 | public interface TestObjectMapper extends ObjectMapper { 21 | 22 | TestObjectMapper INSTANCE = GWT.create( TestObjectMapper.class ); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /extensions/objectify/src/test/java/com/github/nmorel/gwtjackson/objectify/client/GwtJacksonObjectifyTestCase.java: -------------------------------------------------------------------------------- 1 | package com.github.nmorel.gwtjackson.objectify.client; 2 | 3 | import com.github.nmorel.gwtjackson.client.GwtJacksonTestCase; 4 | import com.github.nmorel.gwtjackson.client.JsonSerializationContext; 5 | 6 | public abstract class GwtJacksonObjectifyTestCase extends GwtJacksonTestCase { 7 | 8 | @Override 9 | public String getModuleName() { 10 | return "com.github.nmorel.gwtjackson.objectify.GwtJacksonObjectifyTest"; 11 | } 12 | 13 | protected JsonSerializationContext createNonNullContext() { 14 | return JsonSerializationContext.builder().serializeNulls( false ).build(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /extensions/objectify/src/test/java/com/github/nmorel/gwtjackson/objectify/client/GwtJacksonObjectifyTestSuite.java: -------------------------------------------------------------------------------- 1 | package com.github.nmorel.gwtjackson.objectify.client; 2 | 3 | import com.google.gwt.junit.tools.GWTTestSuite; 4 | import junit.framework.Test; 5 | import junit.framework.TestCase; 6 | 7 | public class GwtJacksonObjectifyTestSuite extends TestCase { 8 | 9 | public static Test suite() { 10 | GWTTestSuite suite = new GWTTestSuite(); 11 | suite.addTestSuite( RawKeyTestCase.class ); 12 | suite.addTestSuite( RawKeyKeyTestCase.class ); 13 | suite.addTestSuite( KeyTestCase.class ); 14 | suite.addTestSuite( KeyKeyTestCase.class ); 15 | suite.addTestSuite( RefTestCase.class ); 16 | suite.addTestSuite( RefKeyTestCase.class ); 17 | suite.addTestSuite( BeanTestCase.class ); 18 | suite.addTestSuite( BeanRefTestCase.class ); 19 | return suite; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /extensions/objectify/src/test/java/com/github/nmorel/gwtjackson/objectify/client/KeyKeyTestCase.java: -------------------------------------------------------------------------------- 1 | package com.github.nmorel.gwtjackson.objectify.client; 2 | 3 | import java.util.Map; 4 | 5 | import com.github.nmorel.gwtjackson.client.ObjectMapper; 6 | import com.github.nmorel.gwtjackson.objectify.shared.KeyKeyTester; 7 | import com.google.gwt.core.client.GWT; 8 | import com.googlecode.objectify.Key; 9 | import org.junit.Test; 10 | 11 | public class KeyKeyTestCase extends GwtJacksonObjectifyTestCase { 12 | 13 | @Test 14 | public void test() throws Exception { 15 | KeyKeyTester.INSTANCE.testSerialize( createWriter( TestObjectMapper.INSTANCE ) ); 16 | KeyKeyTester.INSTANCE.testDeserialize( createReader( TestObjectMapper.INSTANCE ) ); 17 | 18 | KeyKeyTester.INSTANCE.testSerializeNonNull( createWriter( TestObjectMapper.INSTANCE, createNonNullContext() ) ); 19 | KeyKeyTester.INSTANCE.testDeserializeNonNull( createReader( TestObjectMapper.INSTANCE ) ); 20 | } 21 | 22 | public interface TestObjectMapper extends ObjectMapper, Object>> { 23 | 24 | TestObjectMapper INSTANCE = GWT.create( TestObjectMapper.class ); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /extensions/objectify/src/test/java/com/github/nmorel/gwtjackson/objectify/client/KeyTestCase.java: -------------------------------------------------------------------------------- 1 | package com.github.nmorel.gwtjackson.objectify.client; 2 | 3 | import com.github.nmorel.gwtjackson.client.ObjectMapper; 4 | import com.github.nmorel.gwtjackson.objectify.shared.KeyTester; 5 | import com.google.gwt.core.client.GWT; 6 | import com.googlecode.objectify.Key; 7 | import org.junit.Test; 8 | 9 | public class KeyTestCase extends GwtJacksonObjectifyTestCase { 10 | 11 | @Test 12 | public void test() throws Exception { 13 | KeyTester.INSTANCE.testSerialize( createWriter( TestObjectMapper.INSTANCE ) ); 14 | KeyTester.INSTANCE.testDeserialize( createReader( TestObjectMapper.INSTANCE ) ); 15 | 16 | KeyTester.INSTANCE.testSerializeNonNull( createWriter( TestObjectMapper.INSTANCE, createNonNullContext() ) ); 17 | KeyTester.INSTANCE.testDeserializeNonNull( createReader( TestObjectMapper.INSTANCE ) ); 18 | } 19 | 20 | public interface TestObjectMapper extends ObjectMapper> { 21 | 22 | TestObjectMapper INSTANCE = GWT.create( TestObjectMapper.class ); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /extensions/objectify/src/test/java/com/github/nmorel/gwtjackson/objectify/client/RawKeyKeyTestCase.java: -------------------------------------------------------------------------------- 1 | package com.github.nmorel.gwtjackson.objectify.client; 2 | 3 | import java.util.Map; 4 | 5 | import com.github.nmorel.gwtjackson.client.ObjectMapper; 6 | import com.github.nmorel.gwtjackson.objectify.shared.RawKeyKeyTester; 7 | import com.google.appengine.api.datastore.Key; 8 | import com.google.gwt.core.client.GWT; 9 | import org.junit.Test; 10 | 11 | public class RawKeyKeyTestCase extends GwtJacksonObjectifyTestCase { 12 | 13 | @Test 14 | public void test() throws Exception { 15 | RawKeyKeyTester.INSTANCE.testSerialize( createWriter( TestObjectMapper.INSTANCE ) ); 16 | RawKeyKeyTester.INSTANCE.testDeserialize( createReader( TestObjectMapper.INSTANCE ) ); 17 | 18 | RawKeyKeyTester.INSTANCE.testSerializeNonNull( createWriter( TestObjectMapper.INSTANCE, createNonNullContext() ) ); 19 | RawKeyKeyTester.INSTANCE.testDeserializeNonNull( createReader( TestObjectMapper.INSTANCE ) ); 20 | } 21 | 22 | public interface TestObjectMapper extends ObjectMapper> { 23 | 24 | TestObjectMapper INSTANCE = GWT.create( TestObjectMapper.class ); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /extensions/objectify/src/test/java/com/github/nmorel/gwtjackson/objectify/client/RawKeyTestCase.java: -------------------------------------------------------------------------------- 1 | package com.github.nmorel.gwtjackson.objectify.client; 2 | 3 | import com.github.nmorel.gwtjackson.client.ObjectMapper; 4 | import com.github.nmorel.gwtjackson.objectify.shared.RawKeyTester; 5 | import com.google.appengine.api.datastore.Key; 6 | import com.google.gwt.core.client.GWT; 7 | import org.junit.Test; 8 | 9 | public class RawKeyTestCase extends GwtJacksonObjectifyTestCase { 10 | 11 | public interface TestObjectMapper extends ObjectMapper { 12 | 13 | TestObjectMapper INSTANCE = GWT.create( TestObjectMapper.class ); 14 | } 15 | 16 | @Test 17 | public void test() throws Exception { 18 | RawKeyTester.INSTANCE.testSerialize( createWriter( TestObjectMapper.INSTANCE ) ); 19 | RawKeyTester.INSTANCE.testDeserialize( createReader( TestObjectMapper.INSTANCE ) ); 20 | 21 | RawKeyTester.INSTANCE.testSerializeNonNull( createWriter( TestObjectMapper.INSTANCE, createNonNullContext() ) ); 22 | RawKeyTester.INSTANCE.testDeserializeNonNull( createReader( TestObjectMapper.INSTANCE ) ); 23 | 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /extensions/objectify/src/test/java/com/github/nmorel/gwtjackson/objectify/client/RefKeyTestCase.java: -------------------------------------------------------------------------------- 1 | package com.github.nmorel.gwtjackson.objectify.client; 2 | 3 | import java.util.Map; 4 | 5 | import com.github.nmorel.gwtjackson.client.ObjectMapper; 6 | import com.github.nmorel.gwtjackson.objectify.shared.RefKeyTester; 7 | import com.google.gwt.core.client.GWT; 8 | import com.googlecode.objectify.Ref; 9 | import org.junit.Test; 10 | 11 | public class RefKeyTestCase extends GwtJacksonObjectifyTestCase { 12 | 13 | @Test 14 | public void test() throws Exception { 15 | RefKeyTester.INSTANCE.testSerialize( createWriter( TestObjectMapper.INSTANCE ) ); 16 | RefKeyTester.INSTANCE.testDeserialize( createReader( TestObjectMapper.INSTANCE ) ); 17 | 18 | RefKeyTester.INSTANCE.testSerializeNonNull( createWriter( TestObjectMapper.INSTANCE, createNonNullContext() ) ); 19 | RefKeyTester.INSTANCE.testDeserializeNonNull( createReader( TestObjectMapper.INSTANCE ) ); 20 | } 21 | 22 | public interface TestObjectMapper extends ObjectMapper, Object>> { 23 | 24 | TestObjectMapper INSTANCE = GWT.create( TestObjectMapper.class ); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /extensions/objectify/src/test/java/com/github/nmorel/gwtjackson/objectify/client/RefTestCase.java: -------------------------------------------------------------------------------- 1 | package com.github.nmorel.gwtjackson.objectify.client; 2 | 3 | import com.github.nmorel.gwtjackson.client.ObjectMapper; 4 | import com.github.nmorel.gwtjackson.objectify.shared.RefTester; 5 | import com.google.gwt.core.client.GWT; 6 | import com.googlecode.objectify.Ref; 7 | import org.junit.Test; 8 | 9 | public class RefTestCase extends GwtJacksonObjectifyTestCase { 10 | 11 | @Test 12 | public void test() throws Exception { 13 | RefTester.INSTANCE.testSerialize( createWriter( TestObjectMapper.INSTANCE ) ); 14 | RefTester.INSTANCE.testDeserialize( createReader( TestObjectMapper.INSTANCE ) ); 15 | 16 | RefTester.INSTANCE.testSerializeNonNull( createWriter( TestObjectMapper.INSTANCE, createNonNullContext() ) ); 17 | RefTester.INSTANCE.testDeserializeNonNull( createReader( TestObjectMapper.INSTANCE ) ); 18 | } 19 | 20 | public interface TestObjectMapper extends ObjectMapper> { 21 | 22 | TestObjectMapper INSTANCE = GWT.create( TestObjectMapper.class ); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /extensions/objectify/src/test/java/com/github/nmorel/gwtjackson/objectify/shared/BeanTester.java: -------------------------------------------------------------------------------- 1 | package com.github.nmorel.gwtjackson.objectify.shared; 2 | 3 | import com.github.nmorel.gwtjackson.shared.ObjectReaderTester; 4 | import com.github.nmorel.gwtjackson.shared.ObjectWriterTester; 5 | 6 | public final class BeanTester extends ObjectifyAbstractTester { 7 | 8 | public static final BeanTester INSTANCE = new BeanTester(); 9 | 10 | private static final String BEAN_JSON = "" + 11 | "{" + 12 | "\"id\":1," + 13 | "\"string\":\"string1\"," + 14 | "\"set\":[1]" + 15 | "}"; 16 | 17 | private static final String BEAN_NON_NULL_JSON = BEAN_JSON; 18 | 19 | private BeanTester() { 20 | } 21 | 22 | public void testSerialize( ObjectWriterTester writer ) { 23 | assertEquals( BEAN_JSON, writer.write( BEAN ) ); 24 | } 25 | 26 | public void testDeserialize( ObjectReaderTester reader ) { 27 | assertEquals( BEAN, reader.read( BEAN_JSON ) ); 28 | } 29 | 30 | public void testSerializeNonNull( ObjectWriterTester writer ) { 31 | assertEquals( BEAN_NON_NULL_JSON, writer.write( BEAN ) ); 32 | } 33 | 34 | public void testDeserializeNonNull( ObjectReaderTester reader ) { 35 | assertEquals( BEAN, reader.read( BEAN_NON_NULL_JSON ) ); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /extensions/objectify/src/test/resources/com/github/nmorel/gwtjackson/objectify/GwtJacksonObjectifyTest.gwt.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /extensions/remotelogging/README.md: -------------------------------------------------------------------------------- 1 | gwt-jackson-remotelogging 2 | ===== 3 | This extension contains serializer for Throwable. 4 | 5 | It allows you to support the equivalent of GWT RPC Remote Logging http://www.gwtproject.org/doc/latest/DevGuideLogging.html#Remote_Logging 6 | 7 | To use it add the library to your classpath (for maven, the artifactId is `gwt-jackson-remotelogging`): 8 | 1. Client-side: add `` to your module descriptor XML file. 9 | 2. Server-side: register the Jackson module `RemoteLoggingJacksonModule` 10 | 11 | Full working demo project: [gwt-storage-objectify](https://github.com/freddyboucher/gwt-storage-objectify) 12 | 13 | 14 | Copyright and license 15 | ------------- 16 | 17 | Copyright 2013 Nicolas Morel under the [Apache 2.0 license](LICENSE). 18 | -------------------------------------------------------------------------------- /extensions/remotelogging/src/main/java/com/github/nmorel/gwtjackson/remotelogging/rebind/RemoteLoggingConfiguration.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.remotelogging.rebind; 18 | 19 | import com.github.nmorel.gwtjackson.client.AbstractConfiguration; 20 | import com.github.nmorel.gwtjackson.remotelogging.client.RemoteThrowableJsonSerializer; 21 | import com.github.nmorel.gwtjackson.remotelogging.client.StackTraceElementJsonSerializer; 22 | import com.github.nmorel.gwtjackson.remotelogging.shared.RemoteThrowable; 23 | 24 | public class RemoteLoggingConfiguration extends AbstractConfiguration { 25 | 26 | @Override 27 | protected void configure() { 28 | type( StackTraceElement.class ).serializer( StackTraceElementJsonSerializer.class ); 29 | type( RemoteThrowable.class ).serializer( RemoteThrowableJsonSerializer.class ); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /extensions/remotelogging/src/main/java/com/github/nmorel/gwtjackson/remotelogging/server/RemoteLoggingJacksonModule.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.remotelogging.server; 18 | 19 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 20 | import com.fasterxml.jackson.core.Version; 21 | import com.fasterxml.jackson.databind.module.SimpleModule; 22 | 23 | public class RemoteLoggingJacksonModule extends SimpleModule { 24 | 25 | private static final long serialVersionUID = 1L; 26 | 27 | public RemoteLoggingJacksonModule() { 28 | super( "RemoteLogging", Version.unknownVersion() ); 29 | } 30 | 31 | @Override 32 | public void setupModule( SetupContext context ) { 33 | super.setupModule( context ); 34 | context.setMixInAnnotations( StackTraceElement.class, StackTraceElementMixIn.class ); 35 | } 36 | 37 | @JsonIgnoreProperties( "nativeMethod" ) 38 | public abstract static class StackTraceElementMixIn {} 39 | } -------------------------------------------------------------------------------- /extensions/remotelogging/src/main/resources/com/github/nmorel/gwtjackson/remotelogging/GwtJacksonRemoteLogging.gwt.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /extensions/remotelogging/src/test/java/com/github/nmorel/gwtjackson/remotelogging/client/GwtJacksonRemoteLoggingTestSuite.java: -------------------------------------------------------------------------------- 1 | package com.github.nmorel.gwtjackson.remotelogging.client; 2 | 3 | import com.google.gwt.junit.tools.GWTTestSuite; 4 | import junit.framework.Test; 5 | import junit.framework.TestCase; 6 | 7 | public class GwtJacksonRemoteLoggingTestSuite extends TestCase { 8 | 9 | public static Test suite() { 10 | GWTTestSuite suite = new GWTTestSuite(); 11 | suite.addTestSuite( ThrowableTestCase.class ); 12 | return suite; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /extensions/remotelogging/src/test/java/com/github/nmorel/gwtjackson/remotelogging/shared/CustomException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.remotelogging.shared; 18 | 19 | public class CustomException extends Exception { 20 | 21 | private final Object object; 22 | 23 | public CustomException( String message, Throwable cause, Object object ) { 24 | super( message, cause ); 25 | this.object = object; 26 | } 27 | 28 | public Object getObject() { 29 | return object; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /extensions/remotelogging/src/test/resources/com/github/nmorel/gwtjackson/remotelogging/GwtJacksonRemoteLoggingTest.gwt.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /gwt-jackson/.gitignore: -------------------------------------------------------------------------------- 1 | /.settings/ 2 | /.classpath 3 | /.project 4 | -------------------------------------------------------------------------------- /gwt-jackson/src/main/java/com/github/nmorel/gwtjackson/client/JsonMappingContext.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.client; 18 | 19 | import java.util.logging.Logger; 20 | 21 | /** 22 | * Base class for serialization and deserialization context 23 | * 24 | * @author Nicolas Morel 25 | * @version $Id: $ 26 | */ 27 | public abstract class JsonMappingContext { 28 | 29 | /** 30 | *

getLogger

31 | * 32 | * @return a {@link java.util.logging.Logger} object. 33 | */ 34 | public abstract Logger getLogger(); 35 | 36 | } 37 | -------------------------------------------------------------------------------- /gwt-jackson/src/main/java/com/github/nmorel/gwtjackson/client/ObjectMapper.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.client; 18 | 19 | /** 20 | * Interface combining {@link ObjectReader} and {@link ObjectWriter} 21 | * 22 | * @param Type of the mapped object 23 | * @author Nicolas Morel 24 | * @version $Id: $ 25 | */ 26 | public interface ObjectMapper extends ObjectReader, ObjectWriter {} 27 | -------------------------------------------------------------------------------- /gwt-jackson/src/main/java/com/github/nmorel/gwtjackson/client/arrays/JsList.java: -------------------------------------------------------------------------------- 1 | package com.github.nmorel.gwtjackson.client.arrays; 2 | 3 | import java.util.ArrayList; 4 | 5 | /** 6 | * ArrayList that more closely simulates JavaScipt set method, 7 | * which adds null values if index is bigger then the current 8 | * list capacity 9 | */ 10 | public class JsList extends ArrayList { 11 | 12 | private static final long serialVersionUID = 6747119276170603387L; 13 | 14 | @Override 15 | public T set(int index, T element) { 16 | if(index < size()) { 17 | return super.set(index, element); 18 | } else { 19 | for(int i = size(); i < index; i++) { 20 | add(null); 21 | } 22 | add(element); 23 | return null; 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /gwt-jackson/src/main/java/com/github/nmorel/gwtjackson/client/deser/bean/BackReferenceProperty.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.client.deser.bean; 18 | 19 | import com.github.nmorel.gwtjackson.client.JsonDeserializationContext; 20 | 21 | /** 22 | *

BackReferenceProperty interface.

23 | * 24 | * @author Nicolas Morel 25 | * @version $Id: $ 26 | */ 27 | public interface BackReferenceProperty { 28 | 29 | /** 30 | *

setBackReference

31 | * 32 | * @param value a T object. 33 | * @param reference a R object. 34 | * @param ctx a {@link com.github.nmorel.gwtjackson.client.JsonDeserializationContext} object. 35 | */ 36 | void setBackReference( T value, R reference, JsonDeserializationContext ctx ); 37 | } 38 | -------------------------------------------------------------------------------- /gwt-jackson/src/main/java/com/github/nmorel/gwtjackson/client/deser/collection/BaseSetJsonDeserializer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.client.deser.collection; 18 | 19 | import java.util.Set; 20 | 21 | import com.github.nmorel.gwtjackson.client.JsonDeserializer; 22 | 23 | /** 24 | * Base {@link JsonDeserializer} implementation for {@link Set}. 25 | * 26 | * @param {@link Set} type 27 | * @param Type of the elements inside the {@link Set} 28 | * @author Nicolas Morel 29 | * @version $Id: $ 30 | */ 31 | public abstract class BaseSetJsonDeserializer, T> extends BaseCollectionJsonDeserializer { 32 | 33 | /** 34 | *

Constructor for BaseSetJsonDeserializer.

35 | * 36 | * @param deserializer {@link JsonDeserializer} used to map the objects inside the {@link Set}. 37 | */ 38 | public BaseSetJsonDeserializer( JsonDeserializer deserializer ) { 39 | super( deserializer ); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /gwt-jackson/src/main/java/com/github/nmorel/gwtjackson/client/ser/bean/IdentitySerializationInfo.java: -------------------------------------------------------------------------------- 1 | package com.github.nmorel.gwtjackson.client.ser.bean; 2 | 3 | import com.github.nmorel.gwtjackson.client.JsonSerializationContext; 4 | 5 | /** 6 | * Contains identity informations for serialization process. 7 | * 8 | * @author Nicolas Morel 9 | * @version $Id: $ 10 | */ 11 | public interface IdentitySerializationInfo { 12 | 13 | /** 14 | *

isAlwaysAsId

15 | * 16 | * @return true if we should always serialize the bean as an identifier even if it has not been seralized yet 17 | */ 18 | boolean isAlwaysAsId(); 19 | 20 | /** 21 | *

isProperty

22 | * 23 | * @return true if the identifier is also a property of the bean 24 | */ 25 | boolean isProperty(); 26 | 27 | /** 28 | *

getPropertyName

29 | * 30 | * @return name of the identifier property 31 | */ 32 | String getPropertyName(); 33 | 34 | /** 35 | *

getObjectId

36 | * 37 | * @param bean a T object. 38 | * @param ctx a {@link com.github.nmorel.gwtjackson.client.JsonSerializationContext} object. 39 | * @return a {@link com.github.nmorel.gwtjackson.client.ser.bean.ObjectIdSerializer} object. 40 | */ 41 | ObjectIdSerializer getObjectId( T bean, JsonSerializationContext ctx ); 42 | } 43 | -------------------------------------------------------------------------------- /gwt-jackson/src/main/java/com/github/nmorel/gwtjackson/rebind/exception/UnsupportedTypeException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.rebind.exception; 18 | 19 | /** 20 | *

UnsupportedTypeException class.

21 | * 22 | * @author Nicolas Morel 23 | * @version $Id: $ 24 | */ 25 | public class UnsupportedTypeException extends Exception { 26 | 27 | /** 28 | *

Constructor for UnsupportedTypeException.

29 | * 30 | * @param message a {@link java.lang.String} object. 31 | */ 32 | public UnsupportedTypeException( String message ) { 33 | super( message ); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /gwt-jackson/src/main/resources/com/fasterxml/jackson/annotation/JacksonAnnotation.gwt.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /gwt-jackson/src/main/resources/com/fasterxml/jackson/databind/annotation/JacksonDatabindAnnotation.gwt.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /gwt-jackson/src/test/java/com/github/nmorel/gwtjackson/client/arrays/JsListTest.java: -------------------------------------------------------------------------------- 1 | package com.github.nmorel.gwtjackson.client.arrays; 2 | 3 | import java.util.List; 4 | 5 | import com.github.nmorel.gwtjackson.client.GwtJacksonTestCase; 6 | 7 | public class JsListTest extends GwtJacksonTestCase { 8 | 9 | public void testOverridingValueAtIndex() { 10 | List list = new JsList(); 11 | list.add(1); 12 | list.add(2); 13 | list.set(1, 3); 14 | 15 | assertEquals(list.get(1).intValue(), 3); 16 | assertEquals(list.size(), 2); 17 | } 18 | 19 | public void testSetValueAtIndexEqualToListSize() { 20 | List list = new JsList(); 21 | list.add(1); 22 | list.add(2); 23 | list.set(2, 3); 24 | 25 | assertEquals(list.get(1).intValue(), 2); 26 | assertEquals(list.get(2).intValue(), 3); 27 | assertEquals(list.size(), 3); 28 | } 29 | 30 | public void testSetValueAtIndexBiggerThanListSize() { 31 | List list = new JsList(); 32 | list.add(1); 33 | list.set(2, 3); 34 | 35 | assertNull(list.get(1)); 36 | assertEquals(list.get(2).intValue(), 3); 37 | assertEquals(list.size(), 3); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /gwt-jackson/src/test/java/com/github/nmorel/gwtjackson/client/deser/BooleanJsonDeserializerTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.client.deser; 18 | 19 | import com.github.nmorel.gwtjackson.client.JsonDeserializer; 20 | 21 | /** 22 | * @author Nicolas Morel 23 | */ 24 | public class BooleanJsonDeserializerTest extends AbstractJsonDeserializerTest { 25 | 26 | @Override 27 | protected JsonDeserializer createDeserializer() { 28 | return BooleanJsonDeserializer.getInstance(); 29 | } 30 | 31 | @Override 32 | public void testDeserializeValue() { 33 | assertTrue( deserialize( "true" ) ); 34 | assertTrue( deserialize( "\"trUe\"" ) ); 35 | assertTrue( deserialize( "1" ) ); 36 | 37 | assertFalse( deserialize( "faLse" ) ); 38 | assertFalse( deserialize( "\"false\"" ) ); 39 | assertFalse( deserialize( "0" ) ); 40 | assertFalse( deserialize( "other" ) ); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /gwt-jackson/src/test/java/com/github/nmorel/gwtjackson/client/deser/CharacterJsonDeserializerTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.client.deser; 18 | 19 | import com.github.nmorel.gwtjackson.client.JsonDeserializer; 20 | 21 | /** 22 | * @author Nicolas Morel 23 | */ 24 | public class CharacterJsonDeserializerTest extends AbstractJsonDeserializerTest { 25 | 26 | @Override 27 | protected JsonDeserializer createDeserializer() { 28 | return CharacterJsonDeserializer.getInstance(); 29 | } 30 | 31 | @Override 32 | public void testDeserializeValue() { 33 | assertDeserialization( 'e', "e" ); 34 | assertDeserialization( '\u00e9', "\"\u00e9\"" ); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /gwt-jackson/src/test/java/com/github/nmorel/gwtjackson/client/deser/StringJsonDeserializerTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.client.deser; 18 | 19 | import com.github.nmorel.gwtjackson.client.JsonDeserializer; 20 | 21 | /** 22 | * @author Nicolas Morel 23 | */ 24 | public class StringJsonDeserializerTest extends AbstractJsonDeserializerTest { 25 | 26 | @Override 27 | protected JsonDeserializer createDeserializer() { 28 | return StringJsonDeserializer.getInstance(); 29 | } 30 | 31 | @Override 32 | public void testDeserializeValue() { 33 | assertDeserialization( "", "\"\"" ); 34 | assertDeserialization( "Json", "Json" ); 35 | assertDeserialization( "&é(-è_ çà)='", "\"&é(-è_ çà)='\"" ); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /gwt-jackson/src/test/java/com/github/nmorel/gwtjackson/client/deser/UUIDJsonDeserializerTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.client.deser; 18 | 19 | import java.util.UUID; 20 | 21 | import com.github.nmorel.gwtjackson.client.JsonDeserializer; 22 | 23 | /** 24 | * @author Nicolas Morel 25 | */ 26 | public class UUIDJsonDeserializerTest extends AbstractJsonDeserializerTest { 27 | 28 | private static String uuid = "550e8400-e29b-41d4-a716-446655440000"; 29 | 30 | @Override 31 | protected JsonDeserializer createDeserializer() { 32 | return UUIDJsonDeserializer.getInstance(); 33 | } 34 | 35 | @Override 36 | public void testDeserializeValue() { 37 | assertDeserialization( UUID.fromString( uuid ), "\"" + uuid + "\"" ); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /gwt-jackson/src/test/java/com/github/nmorel/gwtjackson/client/deser/VoidJsonDeserializerTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.client.deser; 18 | 19 | import com.github.nmorel.gwtjackson.client.JsonDeserializer; 20 | 21 | /** 22 | * @author Nicolas Morel 23 | */ 24 | public class VoidJsonDeserializerTest extends AbstractJsonDeserializerTest { 25 | 26 | @Override 27 | protected JsonDeserializer createDeserializer() { 28 | return VoidJsonDeserializer.getInstance(); 29 | } 30 | 31 | @Override 32 | public void testDeserializeValue() { 33 | assertDeserialization( null, "null" ); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /gwt-jackson/src/test/java/com/github/nmorel/gwtjackson/client/deser/date/DateJsonDeserializerTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.client.deser.date; 18 | 19 | import java.util.Date; 20 | 21 | import com.github.nmorel.gwtjackson.client.deser.AbstractJsonDeserializerTest; 22 | import com.github.nmorel.gwtjackson.client.deser.BaseDateJsonDeserializer.DateJsonDeserializer; 23 | 24 | /** 25 | * @author Nicolas Morel 26 | */ 27 | public class DateJsonDeserializerTest extends AbstractJsonDeserializerTest { 28 | 29 | @Override 30 | protected DateJsonDeserializer createDeserializer() { 31 | return DateJsonDeserializer.getInstance(); 32 | } 33 | 34 | @Override 35 | public void testDeserializeValue() { 36 | assertDeserialization( new Date( 1377543971773l ), "1377543971773" ); 37 | assertEquals( getUTCDate( 2012, 8, 18, 15, 45, 56, 543 ), deserialize( "\"2012-08-18T17:45:56.543+02:00\"" ) ); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /gwt-jackson/src/test/java/com/github/nmorel/gwtjackson/client/deser/date/SqlDateJsonDeserializerTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.client.deser.date; 18 | 19 | import java.sql.Date; 20 | 21 | import com.github.nmorel.gwtjackson.client.deser.AbstractJsonDeserializerTest; 22 | import com.github.nmorel.gwtjackson.client.deser.BaseDateJsonDeserializer.SqlDateJsonDeserializer; 23 | 24 | /** 25 | * @author Nicolas Morel 26 | */ 27 | public class SqlDateJsonDeserializerTest extends AbstractJsonDeserializerTest { 28 | 29 | @Override 30 | protected SqlDateJsonDeserializer createDeserializer() { 31 | return SqlDateJsonDeserializer.getInstance(); 32 | } 33 | 34 | @Override 35 | public void testDeserializeValue() { 36 | assertDeserialization( new Date( 1377543971773l ), "1377543971773" ); 37 | assertEquals( getUTCTime( 2012, 8, 18, 0, 0, 0, 0 ), deserialize( "\"2012-08-18\"" ).getTime() ); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /gwt-jackson/src/test/java/com/github/nmorel/gwtjackson/client/deser/map/key/BigDecimalKeyDeserializerTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.client.deser.map.key; 18 | 19 | import java.math.BigDecimal; 20 | 21 | import com.github.nmorel.gwtjackson.client.deser.map.key.BaseNumberKeyDeserializer.BigDecimalKeyDeserializer; 22 | 23 | /** 24 | * @author Nicolas Morel 25 | */ 26 | public class BigDecimalKeyDeserializerTest extends AbstractKeyDeserializerTest { 27 | 28 | @Override 29 | protected BigDecimalKeyDeserializer createDeserializer() { 30 | return BigDecimalKeyDeserializer.getInstance(); 31 | } 32 | 33 | @Override 34 | public void testDeserializeValue() { 35 | String value = "15487846511321245665435132032454.1545815468465578451323888744"; 36 | BigDecimal expected = new BigDecimal( value ); 37 | assertDeserialization( expected, value ); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /gwt-jackson/src/test/java/com/github/nmorel/gwtjackson/client/deser/map/key/BigIntegerKeyDeserializerTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.client.deser.map.key; 18 | 19 | import java.math.BigInteger; 20 | 21 | import com.github.nmorel.gwtjackson.client.deser.map.key.BaseNumberKeyDeserializer.BigIntegerKeyDeserializer; 22 | 23 | /** 24 | * @author Nicolas Morel 25 | */ 26 | public class BigIntegerKeyDeserializerTest extends AbstractKeyDeserializerTest { 27 | 28 | @Override 29 | protected BigIntegerKeyDeserializer createDeserializer() { 30 | return BigIntegerKeyDeserializer.getInstance(); 31 | } 32 | 33 | @Override 34 | public void testDeserializeValue() { 35 | String value = "1548784651132124566543513203245448715154542123114001571970"; 36 | BigInteger expected = new BigInteger( value ); 37 | assertDeserialization( expected, value ); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /gwt-jackson/src/test/java/com/github/nmorel/gwtjackson/client/deser/map/key/BooleanKeyDeserializerTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.client.deser.map.key; 18 | 19 | /** 20 | * @author Nicolas Morel 21 | */ 22 | public class BooleanKeyDeserializerTest extends AbstractKeyDeserializerTest { 23 | 24 | @Override 25 | protected BooleanKeyDeserializer createDeserializer() { 26 | return BooleanKeyDeserializer.getInstance(); 27 | } 28 | 29 | @Override 30 | public void testDeserializeValue() { 31 | assertTrue( deserialize( "true" ) ); 32 | assertTrue( deserialize( "trUe" ) ); 33 | 34 | assertFalse( deserialize( "faLse" ) ); 35 | assertFalse( deserialize( "false" ) ); 36 | assertFalse( deserialize( "other" ) ); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /gwt-jackson/src/test/java/com/github/nmorel/gwtjackson/client/deser/map/key/ByteKeyDeserializerTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.client.deser.map.key; 18 | 19 | import com.github.nmorel.gwtjackson.client.deser.map.key.BaseNumberKeyDeserializer.ByteKeyDeserializer; 20 | 21 | /** 22 | * @author Nicolas Morel 23 | */ 24 | public class ByteKeyDeserializerTest extends AbstractKeyDeserializerTest { 25 | 26 | @Override 27 | protected ByteKeyDeserializer createDeserializer() { 28 | return ByteKeyDeserializer.getInstance(); 29 | } 30 | 31 | @Override 32 | public void testDeserializeValue() { 33 | assertDeserialization( new Byte( "34" ), "34" ); 34 | assertDeserialization( new Byte( "1" ), "1" ); 35 | assertDeserialization( Byte.MIN_VALUE, "-128" ); 36 | assertDeserialization( Byte.MAX_VALUE, "127" ); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /gwt-jackson/src/test/java/com/github/nmorel/gwtjackson/client/deser/map/key/CharacterKeyDeserializerTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.client.deser.map.key; 18 | 19 | /** 20 | * @author Nicolas Morel 21 | */ 22 | public class CharacterKeyDeserializerTest extends AbstractKeyDeserializerTest { 23 | 24 | @Override 25 | protected CharacterKeyDeserializer createDeserializer() { 26 | return CharacterKeyDeserializer.getInstance(); 27 | } 28 | 29 | @Override 30 | public void testDeserializeValue() { 31 | assertDeserialization( 'e', "e" ); 32 | assertDeserialization( '\u00e9', "\u00e9" ); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /gwt-jackson/src/test/java/com/github/nmorel/gwtjackson/client/deser/map/key/DateKeyDeserializerTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.client.deser.map.key; 18 | 19 | import java.util.Date; 20 | 21 | import com.github.nmorel.gwtjackson.client.deser.map.key.BaseDateKeyDeserializer.DateKeyDeserializer; 22 | 23 | /** 24 | * @author Nicolas Morel 25 | */ 26 | public class DateKeyDeserializerTest extends AbstractKeyDeserializerTest { 27 | 28 | @Override 29 | protected DateKeyDeserializer createDeserializer() { 30 | return DateKeyDeserializer.getInstance(); 31 | } 32 | 33 | @Override 34 | public void testDeserializeValue() { 35 | assertDeserialization( new Date( 1377543971773l ), "1377543971773" ); 36 | assertDeserialization( getUTCDate( 2012, 8, 18, 15, 45, 56, 543 ), "2012-08-18T17:45:56.543+02:00" ); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /gwt-jackson/src/test/java/com/github/nmorel/gwtjackson/client/deser/map/key/IntegerKeyDeserializerTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.client.deser.map.key; 18 | 19 | import com.github.nmorel.gwtjackson.client.deser.map.key.BaseNumberKeyDeserializer.IntegerKeyDeserializer; 20 | 21 | /** 22 | * @author Nicolas Morel 23 | */ 24 | public class IntegerKeyDeserializerTest extends AbstractKeyDeserializerTest { 25 | 26 | @Override 27 | protected IntegerKeyDeserializer createDeserializer() { 28 | return IntegerKeyDeserializer.getInstance(); 29 | } 30 | 31 | @Override 32 | public void testDeserializeValue() { 33 | assertDeserialization( 34, "34" ); 34 | assertDeserialization( -1, "-1" ); 35 | assertDeserialization( Integer.MIN_VALUE, "-2147483648" ); 36 | assertDeserialization( Integer.MAX_VALUE, "2147483647" ); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /gwt-jackson/src/test/java/com/github/nmorel/gwtjackson/client/deser/map/key/ShortKeyDeserializerTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.client.deser.map.key; 18 | 19 | import com.github.nmorel.gwtjackson.client.deser.map.key.BaseNumberKeyDeserializer.ShortKeyDeserializer; 20 | 21 | /** 22 | * @author Nicolas Morel 23 | */ 24 | public class ShortKeyDeserializerTest extends AbstractKeyDeserializerTest { 25 | 26 | @Override 27 | protected ShortKeyDeserializer createDeserializer() { 28 | return ShortKeyDeserializer.getInstance(); 29 | } 30 | 31 | @Override 32 | public void testDeserializeValue() { 33 | assertDeserialization( new Short( "34" ), "34" ); 34 | assertDeserialization( new Short( "-1" ), "-1" ); 35 | assertDeserialization( Short.MIN_VALUE, "-32768" ); 36 | assertDeserialization( Short.MAX_VALUE, "32767" ); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /gwt-jackson/src/test/java/com/github/nmorel/gwtjackson/client/deser/map/key/SqlDateKeyDeserializerTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.client.deser.map.key; 18 | 19 | import java.sql.Date; 20 | 21 | import com.github.nmorel.gwtjackson.client.deser.map.key.BaseDateKeyDeserializer.SqlDateKeyDeserializer; 22 | 23 | /** 24 | * @author Nicolas Morel 25 | */ 26 | public class SqlDateKeyDeserializerTest extends AbstractKeyDeserializerTest { 27 | 28 | @Override 29 | protected SqlDateKeyDeserializer createDeserializer() { 30 | return SqlDateKeyDeserializer.getInstance(); 31 | } 32 | 33 | @Override 34 | public void testDeserializeValue() { 35 | assertDeserialization( new Date( 1377543971773l ), "1377543971773" ); 36 | assertDeserialization( new Date( getUTCTime( 2012, 8, 18, 15, 45, 56, 543 ) ), "2012-08-18T17:45:56.543+02:00" ); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /gwt-jackson/src/test/java/com/github/nmorel/gwtjackson/client/deser/map/key/SqlTimeKeyDeserializerTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Nicolas Morel 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.github.nmorel.gwtjackson.client.deser.map.key; 18 | 19 | import java.sql.Time; 20 | 21 | import com.github.nmorel.gwtjackson.client.deser.map.key.BaseDateKeyDeserializer.SqlTimeKeyDeserializer; 22 | 23 | /** 24 | * @author Nicolas Morel 25 | */ 26 | public class SqlTimeKeyDeserializerTest extends AbstractKeyDeserializerTest