Comments (9)
I think that we probably can not bump dependency up for 2.9, due to timing; I'd be more willing with minor versions. Plus it's the last 2.x too... although at some point we may have to reconsider if and when Guava's compatibility constraints make it impossible to support older and newer versions.
However: for 3.0 I think we can upgrade to 22. Since master
is now 3.0.0-SNAPSHOT, PR could be done against that?
I don't know what to do wrt Android, but I think we could cross that bridge when we get there. 3.0 will not be out until 2018.
from jackson-datatypes-collections.
I can look at implementing this perhaps. Here is an example of ImmutableLongArray
deserializer:
public class ImmutableLongArrayDeserializer extends JsonDeserializer<ImmutableLongArray> {
@Override
public ImmutableLongArray deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) throws IOException {
final ImmutableLongArray.Builder builder = ImmutableLongArray.builder();
while (!jsonParser.nextToken().equals(JsonToken.END_ARRAY)) {
builder.add(jsonParser.getLongValue());
}
return builder.build();
}
}
from jackson-datatypes-collections.
@wykapedia, as far as I'm concerned: please go ahead :) (Although I opened the issue and indicated I'd be fine producing a PR, I won't have time for this in the near future. So we won't be in each other's way.)
from jackson-datatypes-collections.
Note that no decision yet made to go to version 22.0 of Guava, although baseline will be at least 20 (for 3.0) and so deciding slightly higher baseline is not out of question.
Java 8 won't be problem with 3.x at least
I recommend suggesting version dep bump on:
https://groups.google.com/forum/#!forum/jackson-user
(or maybe jackson-dev
?)
from jackson-datatypes-collections.
Is there harm in creating a PR with guava upgraded to version 22.0 (against master) with these features made available? Can be merged when the upgrade is done otherwise, or can be the reason for upgrade perhaps.
from jackson-datatypes-collections.
@wykapedia There is pretty big harm for everyone who has a dependency to older Guava version because of aggressive deprecation policy Guava has. If we force use of a newish version I can guarantee I will get a flood of bug reports....
from jackson-datatypes-collections.
There is the flip-side as well; we depend on Jackson and Guava and regularly update both. The longer it takes to achieve version compatibility across the two the more difficult it is for us to remain up to date with bug fixes and features. I've responded to the Google group linked above as well.
We've recently upgraded to Guava version 25 as version 23 is already over a year old. I assume it's not possible to guarantee compatibility across a large range due to the changes in Guava itself. Would it be possible to support two variants of this library?
For example, one for "stable" and one for "edge"? The update policy for Guava could be pegged for each; say "edge" is updated within 6 months and "stable" is only updated every couple of years.
from jackson-datatypes-collections.
@vjkoskela It's a particularly tricky problem, and I don't have very good solutions.
Ideally I think we would be using versioning in some form -- perhaps similar to how Scala module works... or Hibernate? -- but whereas number of major versions for those is sort of limited / low, Guava has produced larger number of somewhat disjoint versions.
Then again, wasn't there some talk about Guava stabilizing little bit as of late?
Anyway, I am open to suggestions, proposals. Separate modules for newer Guava would be an option, but I am not sure what would be the best way to try to avoid collisions.
from jackson-datatypes-collections.
Quick note: Jackson 2.12 has Guava 21.0 as baseline. This was an important increase as version compatibility after Guava 21 (that is, with 21 and all major versions up to and including) has been much improved compared to earlier versions.
No decision yet made on Jackson 2.13, which could further increase baseline.
Note that Jackson 2.13 DOES increase JDK baseline to 8 (excluding jackson-annotations
and jackson-core
which are still JDK 6 compatible, but has no effect here) so there are no blockers for increasing to Java 8 only guava version.
If anyone is interested in getting Guava minimum baseline increased, please bring this up jackson-dev
google group (https://groups.google.com/g/jackson-dev).
PR for this feature is going in master
as of now, for what that is worth.
from jackson-datatypes-collections.
Related Issues (20)
- Accept lowerCase enums for `Range` `BoundType` serialization HOT 3
- `ArrayListMultimapDeserializer` does not support multimaps inside another object as a property HOT 13
- Update default Guava dependency for Jackson 2.15 from Guava 21.0 to 23.6.1-jre
- There maybe a misusage in GuavaMultimapDeserializer.findTransformer method HOT 1
- Update default Guava dependency for Jackson 2.16 from Guava 23.x to 25.x
- `ImmutableRangeSet` fails to deserialize without explicit deserializer HOT 2
- Support `@JsonFormat(shape=STRING)` for serialization of `Range<T>` HOT 6
- PCollections module info (`module-info.class`) incorrect HOT 4
- Some deserializers throw unexpected `NullPointerException` when handling invalid input
- Add deserialization support for bracket notation Range HOT 2
- `GuavaCollectionDeserializer` still throws NPE in some circumstances
- `Cache` deserialization fails with NPE for `null` valued entries HOT 7
- `RangeSet` deserializer fails for content `null`s with NPE
- `GuavaOptionalDeserializer.getEmptyValue()` should not call itself recursively HOT 2
- Remove Guava (test) dependency
- Cache Serialization serializes empty contents HOT 6
- `@JsonDeserialize.contentConverter` does not work for non-builtin collections HOT 7
- Eclipse Collection serialization for Pairs does not work when upgrading to EC version 11.0.0 HOT 3
- GuavaMultimapDeserializer throws JsonMappingException: Expecting START_OBJECT, found FIELD_NAME HOT 2
- Rename "com.fasterxml.jackson" -> "tools.jackson" HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jackson-datatypes-collections.