Code Monkey home page Code Monkey logo

ig-json-parser's People

Contributors

aimango avatar ardacebi avatar bigfootjon avatar cgrushko avatar cjhopman avatar dmitryvinn avatar dmueller39 avatar dreiss avatar dulinriley avatar facebook-github-bot avatar jakewharton avatar jingibus avatar kangzhang avatar mgoovaer avatar ravidsrk avatar sashkostashuk avatar tkieft avatar ttung avatar zertosh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ig-json-parser's Issues

Object__JsonHelper is not recognized by the compiler but can be used

Hi everyone, using Android Studio I managed to generate the gen-src folder, with the generated Object_JsonHelper.
My project tree looks like this:

app
->gen-src
->main->java->com.mypackage
->src
->main->java->com.mypackage

The compiler show the Object_JsonHelper as an error but the fact is that when I press the play button the apk is deployed on the device/emulator. How can I get rid of the compiler error?

I'm very fond on implementing this solution.

Thanks

StringUtil missing

ig-json-parser/processor/src/main/java/com/instagram/common/json/annotation/processor/JsonAnnotationProcessor.java:264: error: cannot find symbol
      if (StringUtil.isNullOrEmpty(annotation.valueExtractFormatter()) ||
          ^
  symbol:   variable StringUtil
  location: class JsonAnnotationProcessor
ig-json-parser/processor/src/main/java/com/instagram/common/json/annotation/processor/JsonAnnotationProcessor.java:265: error: cannot find symbol
          StringUtil.isNullOrEmpty(annotation.serializeCodeFormatter())) {
          ^
  symbol:   variable StringUtil
  location: class JsonAnnotationProcessor
ig-json-parser/processor/src/main/java/com/instagram/common/json/annotation/processor/JsonParserClassData.java:224: error: cannot find symbol
        if (StringUtil.isNullOrEmpty(assignmentFormatter)) {
            ^
  symbol:   variable StringUtil
  location: class JsonParserClassData
ig-json-parser/processor/src/main/java/com/instagram/common/json/annotation/processor/JsonParserClassData.java:236: error: cannot find symbol
        if (StringUtil.isNullOrEmpty(assignmentFormatter)) {
            ^
  symbol:   variable StringUtil
  location: class JsonParserClassData
ig-json-parser/processor/src/main/java/com/instagram/common/json/annotation/processor/JsonParserClassData.java:284: error: cannot find symbol
    if (StringUtil.isNullOrEmpty(valueExtractFormatter)) {
        ^
  symbol:   variable StringUtil
  location: class JsonParserClassData
ig-json-parser/processor/src/main/java/com/instagram/common/json/annotation/processor/JsonParserClassData.java:394: error: cannot find symbol
        if (StringUtil.isNullOrEmpty(serializeCode)) {
            ^
  symbol:   variable StringUtil
  location: class JsonParserClassData
ig-json-parser/processor/src/main/java/com/instagram/common/json/annotation/processor/JsonParserClassData.java:428: error: cannot find symbol
          if (StringUtil.isNullOrEmpty(serializeCode)) {
              ^
  symbol:   variable StringUtil
  location: class JsonParserClassData
ig-json-parser/processor/src/main/java/com/instagram/common/json/annotation/processor/JsonParserClassData.java:445: error: cannot find symbol
          if (StringUtil.isNullOrEmpty(serializeCode)) {
              ^
  symbol:   variable StringUtil
  location: class JsonParserClassData
8 errors

The Guava Dependency adds 15k methods, can you reduce this?

Currently this parser has a dependency on Google's guava library that adds 15082 methods to any project that uses it. Given that the limit for a dex file is only 65k, is there any way you guys can reduce this? If not, can you at least give better proguard documentation? The current documentation for proguard does not seem to work, and neither does the proguard config file in the demo application.

Does not build with JDK 1.8

I had to download and install JDK 1.7 in order to build the project. Is this a known issue / should it be added to documentation? Or is there something that can be done to get it to work with 1.8?

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)
        at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472)
        at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
        at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
        at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
        at com.android.dx.command.dexer.Main.processClass(Main.java:665)
        at com.android.dx.command.dexer.Main.processFileBytes(Main.java:634)
        at com.android.dx.command.dexer.Main.access$600(Main.java:78)
        at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:572)
        at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)
        at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
        at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
        at com.android.dx.command.dexer.Main.processOne(Main.java:596)
        at com.android.dx.command.dexer.Main.processAllFiles(Main.java:498)
        at com.android.dx.command.dexer.Main.runMonoDex(Main.java:264)
        at com.android.dx.command.dexer.Main.run(Main.java:230)
        at com.android.dx.command.dexer.Main.main(Main.java:199)
        at com.android.dx.command.Main.main(Main.java:103)
...while parsing com/instagram/common/json/annotation/processor/JsonAnnotationProcessor$1.class

Conflict on the JavaWriter class

The JavaWriter from Square seems to be packaged directly into ig-json-parser jar without being moved or renamed. This seems to cause conflict with other libraries which need a more recent version JavaWriter such as Dagger.

Why not using an external dependency on JavaWriter instead? At worse repackaging it (at least during the build if this causes later merge issues)?

Consider support for serialization/deserialization of top level arrays

I didn't see a built-in way to handle top-level arrays, e.g.:

[
  {
    "name": "Jorge",
    "faveNumber": 4
  },
  {
    ...
  }
]

Our current solution is to iterate through the array, making calls to the appropriate JsonHelper type for each object. Not a big deal really, but we'd need to duplicate this for each kind of model that's in a top-level array, since I don't see a way to generalize this into a helper method (anyone else?).

List<Video> videos = new LinkedList<Video>();
if (parser.nextToken() == JsonToken.START_ARRAY) {
   while (parser.nextToken() != JsonToken.END_ARRAY) {
      Video video = Video__JsonHelper.parseFromJson(parser);
      videos.add(video);
   }
}

Maybe JsonHelper types could know how to serialize/deserialize arrays of their model types. Something like:

public static final List<MyModel> parseFromJsonArray(JsonParser jp)

List of enums

Seems to not work. Might be doing something wrong in the annotation

@JsonField(fieldName = "test_list",
valueExtractFormatter = "TestObject.TestEnum.valueOf(${parser_object}.getText())",
fieldAssignmentFormatter = "${object_varname}.${field_varname} = ${extracted_value}",
serializeCodeFormatter = "${generator_object}.writeStringField("${json_fieldname}", ${iterator}.toString())")
public List testList;

error: annotation exception: java.lang.IllegalStateException: Could not divine java type for test_list in class com.example.TestObject
at com.instagram.common.json.annotation.processor.JsonParserClassData.getJavaType(JsonParserClassData.java:407)
at com.instagram.common.json.annotation.processor.JsonParserClassData.generateArrayParser(JsonParserClassData.java:324)
at com.instagram.common.json.annotation.processor.JsonParserClassData.generateCollectionParser(JsonParserClassData.java:315)
at com.instagram.common.json.annotation.processor.JsonParserClassData.writeFields(JsonParserClassData.java:275)
at com.instagram.common.json.annotation.processor.JsonParserClassData.access$000(JsonParserClassData.java:40)
at com.instagram.common.json.annotation.processor.JsonParserClassData$1.emitJava(JsonParserClassData.java:159)

Support for case insensitive field names

It would obviously be a little slower for parsing, but this would provide a huge amount of flexibility. At least making it optional would allow this to be used in cases where the content you are consuming is a little less uniform/well defined.

using with annotationProcessor from android studio 3.0

Hi,

In the new version of gradle, the 'android-apt'-pligin is no longer compatible.

now you have to user 'annotationProcessor' instatof 'apt'

so far so good.

I do the folowing:

  1. Remove the class path for the apt from the build.gradle (Project: MyApplication)
    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'

  2. Remove the plug in from the build.gradle (Module: app)
    apply plugin: 'android-apt'

  3. Change the dependencies from apt to the new annotationProcessor
    annotationProcessor 'com.github.instagram.ig-json-parser:processor:master-SNAPSHOT'

gradle sync workes so far but the *__JsonHelper are not beeing generadet anymore!

Help?

Failing build

Hi

I am trying to build the project but getting the below error:

1 warning
:util:processTestResources UP-TO-DATE
:util:testClasses
:util:test
:util:check
:util:build
:processorJar
:processorJavadoc
/home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/JsonFactoryHolder.java:5: error: package com.fasterxml.jackson.core does not exist
import com.fasterxml.jackson.core.JsonFactory;
^
/home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/JsonFactoryHolder.java:11: error: cannot find symbol
public static final JsonFactory APP_FACTORY = new JsonFactory();
^
symbol: class JsonFactory
location: class JsonFactoryHolder
/home/ubuntu/projects/ig-json-parser/util/src/main/java/com/instagram/common/json/annotation/util/Console.java:5: error: package javax.annotation.concurrent does not exist
import javax.annotation.concurrent.GuardedBy;
^
/home/ubuntu/projects/ig-json-parser/processor/src/main/java/com/instagram/common/json/annotation/processor/JsonParserClassData.java:31: error: package com.fasterxml.jackson.core does not exist
import com.fasterxml.jackson.core.JsonGenerator;
^
/home/ubuntu/projects/ig-json-parser/processor/src/main/java/com/instagram/common/json/annotation/processor/JsonParserClassData.java:32: error: package com.fasterxml.jackson.core does not exist
import com.fasterxml.jackson.core.JsonParser;
^
/home/ubuntu/projects/ig-json-parser/processor/src/main/java/com/instagram/common/json/annotation/processor/JsonParserClassData.java:33: error: package com.fasterxml.jackson.core does not exist
import com.fasterxml.jackson.core.JsonToken;
^
/home/ubuntu/projects/ig-json-parser/processor/src/main/java/com/instagram/common/json/annotation/processor/StrFormat.java:8: error: package org.apache.commons.lang3.text does not exist
import org.apache.commons.lang3.text.StrSubstitutor;
^
/home/ubuntu/projects/ig-json-parser/util/src/main/java/com/instagram/common/json/annotation/util/Console.java:33: error: cannot find symbol
@GuardedBy("Console.class")
^
symbol: class GuardedBy
location: class Console
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:77: warning: no @param for packageName
public JavaWriter emitPackage(String packageName) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:77: warning: no @return
public JavaWriter emitPackage(String packageName) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:77: warning: no @throws for java.io.IOException
public JavaWriter emitPackage(String packageName) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:96: warning: no @param for types
public JavaWriter emitImports(String... types) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:96: warning: no @return
public JavaWriter emitImports(String... types) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:96: warning: no @throws for java.io.IOException
public JavaWriter emitImports(String... types) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:104: warning: no @param for types
public JavaWriter emitImports(Class... types) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:104: warning: no @return public JavaWriter emitImports(Class... types) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:104: warning: no @throws for java.io.IOException
public JavaWriter emitImports(Class... types) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:116: warning: no @param for types public JavaWriter emitImports(Collection types) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:116: warning: no @return public JavaWriter emitImports(Collection types) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:116: warning: no @throws for java.io.IOException public JavaWriter emitImports(Collection types) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:136: warning: no @param for types public JavaWriter emitStaticImports(String... types) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:136: warning: no @return public JavaWriter emitStaticImports(String... types) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:136: warning: no @throws for java.io.IOException public JavaWriter emitStaticImports(String... types) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:144: warning: no @param for types public JavaWriter emitStaticImports(Collection types) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:144: warning: no @return public JavaWriter emitStaticImports(Collection types) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:144: warning: no @throws for java.io.IOException public JavaWriter emitStaticImports(Collection types) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:175: warning: no @param for type public String compressType(String type) { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:175: warning: no @return public String compressType(String type) { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:243: warning: no @return public JavaWriter beginInitializer(boolean isStatic) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:243: warning: no @throws for java.io.IOException public JavaWriter beginInitializer(boolean isStatic) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:256: warning: no @return public JavaWriter endInitializer() throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:256: warning: no @throws for java.io.IOException public JavaWriter endInitializer() throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:268: warning: no @param for type public JavaWriter beginType(String type, String kind) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:268: warning: no @return public JavaWriter beginType(String type, String kind) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:268: warning: no @throws for java.io.IOException public JavaWriter beginType(String type, String kind) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:277: warning: no @param for type public JavaWriter beginType(String type, String kind, Set modifiers) ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:277: warning: no @param for modifiers public JavaWriter beginType(String type, String kind, Set modifiers) ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:277: warning: no @return public JavaWriter beginType(String type, String kind, Set modifiers) ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:277: warning: no @throws for java.io.IOException public JavaWriter beginType(String type, String kind, Set modifiers) ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:288: warning: no @param for type public JavaWriter beginType(String type, String kind, Set modifiers, String extendsType, ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:288: warning: no @param for modifiers public JavaWriter beginType(String type, String kind, Set modifiers, String extendsType, ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:288: warning: no @param for implementsTypes public JavaWriter beginType(String type, String kind, Set modifiers, String extendsType, ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:288: warning: no @return public JavaWriter beginType(String type, String kind, Set modifiers, String extendsType, ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:288: warning: no @throws for java.io.IOException public JavaWriter beginType(String type, String kind, Set modifiers, String extendsType, ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:317: warning: no @return public JavaWriter endType() throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:317: warning: no @throws for java.io.IOException public JavaWriter endType() throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:326: warning: no @param for type public JavaWriter emitField(String type, String name) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:326: warning: no @param for name public JavaWriter emitField(String type, String name) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:326: warning: no @return public JavaWriter emitField(String type, String name) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:326: warning: no @throws for java.io.IOException public JavaWriter emitField(String type, String name) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:331: warning: no @param for type public JavaWriter emitField(String type, String name, Set modifiers) ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:331: warning: no @param for name public JavaWriter emitField(String type, String name, Set modifiers) ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:331: warning: no @param for modifiers public JavaWriter emitField(String type, String name, Set modifiers) ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:331: warning: no @return public JavaWriter emitField(String type, String name, Set modifiers) ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:331: warning: no @throws for java.io.IOException public JavaWriter emitField(String type, String name, Set modifiers) ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:337: warning: no @param for type public JavaWriter emitField(String type, String name, Set modifiers, ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:337: warning: no @param for name public JavaWriter emitField(String type, String name, Set modifiers, ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:337: warning: no @param for modifiers public JavaWriter emitField(String type, String name, Set modifiers, ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:337: warning: no @param for initialValue public JavaWriter emitField(String type, String name, Set modifiers, ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:337: warning: no @return public JavaWriter emitField(String type, String name, Set modifiers, ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:337: warning: no @throws for java.io.IOException public JavaWriter emitField(String type, String name, Set modifiers, ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:372: warning: no @return public JavaWriter beginMethod(String returnType, String name, Set modifiers, ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:372: warning: no @throws for java.io.IOException public JavaWriter beginMethod(String returnType, String name, Set modifiers, ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:390: warning: no @return public JavaWriter beginMethod(String returnType, String name, Set modifiers, ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:390: warning: no @throws for java.io.IOException public JavaWriter beginMethod(String returnType, String name, Set modifiers, ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:448: warning: no @param for javadoc public JavaWriter emitJavadoc(String javadoc, Object... params) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:448: warning: no @param for params public JavaWriter emitJavadoc(String javadoc, Object... params) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:448: warning: no @return public JavaWriter emitJavadoc(String javadoc, Object... params) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:448: warning: no @throws for java.io.IOException public JavaWriter emitJavadoc(String javadoc, Object... params) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:468: warning: no @param for comment public JavaWriter emitSingleLineComment(String comment, Object... args) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:468: warning: no @param for args public JavaWriter emitSingleLineComment(String comment, Object... args) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:468: warning: no @return public JavaWriter emitSingleLineComment(String comment, Object... args) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:468: warning: no @throws for java.io.IOException public JavaWriter emitSingleLineComment(String comment, Object... args) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:492: warning: no @param for name public JavaWriter emitEnumValue(String name, boolean isLast) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:492: warning: no @param for isLast public JavaWriter emitEnumValue(String name, boolean isLast) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:492: warning: no @return public JavaWriter emitEnumValue(String name, boolean isLast) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:492: warning: no @throws for java.io.IOException public JavaWriter emitEnumValue(String name, boolean isLast) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:504: warning: no @param for names public JavaWriter emitEnumValues(Iterable names) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:504: warning: no @return public JavaWriter emitEnumValues(Iterable names) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:504: warning: no @throws for java.io.IOException public JavaWriter emitEnumValues(Iterable names) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:520: warning: no @param for annotation public JavaWriter emitAnnotation(String annotation) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:520: warning: no @return public JavaWriter emitAnnotation(String annotation) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:520: warning: no @throws for java.io.IOException public JavaWriter emitAnnotation(String annotation) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:525: warning: no @param for annotationType public JavaWriter emitAnnotation(Class annotationType) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:525: warning: no @return public JavaWriter emitAnnotation(Class annotationType) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:525: warning: no @throws for java.io.IOException public JavaWriter emitAnnotation(Class annotationType) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:536: warning: no @param for annotationType public JavaWriter emitAnnotation(Class annotationType, Object value) ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:536: warning: no @return public JavaWriter emitAnnotation(Class annotationType, Object value) ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:536: warning: no @throws for java.io.IOException public JavaWriter emitAnnotation(Class annotationType, Object value) ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:548: warning: no @param for annotation public JavaWriter emitAnnotation(String annotation, Object value) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:548: warning: no @return public JavaWriter emitAnnotation(String annotation, Object value) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:548: warning: no @throws for java.io.IOException public JavaWriter emitAnnotation(String annotation, Object value) throws IOException { ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:560: warning: no @param for annotationType public JavaWriter emitAnnotation(Class annotationType, ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:560: warning: no @param for attributes public JavaWriter emitAnnotation(Class annotationType, ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:560: warning: no @return public JavaWriter emitAnnotation(Class annotationType, ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:560: warning: no @throws for java.io.IOException public JavaWriter emitAnnotation(Class annotationType, ^ /home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:572: warning: no @param for annotation public JavaWriter emitAnnotation(String annotation, Map attributes)
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:572: warning: no @return
public JavaWriter emitAnnotation(String annotation, Map<String, ?> attributes)
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:572: warning: no @throws for java.io.IOException
public JavaWriter emitAnnotation(String annotation, Map<String, ?> attributes)
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:661: warning: no @param for args
public JavaWriter emitStatement(String pattern, Object... args) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/util/src/main/java/com/instagram/common/json/annotation/util/ProcessorClassData.java:44: error: reference not found

  • {@link Class#getQualifiedName()}.
    ^
    /home/ubuntu/projects/ig-json-parser/util/src/main/java/com/instagram/common/json/annotation/util/TypeUtils.java:207: error: self-closing element not allowed
  • ^ /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:89: error: no summary or caption for table

  • ^ /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:95: error: self-closing element not allowed
  • ^ /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:133: error: self-closing element not allowed

  • ^ /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:148: error: invalid entity ✔

  • <td>&#x2714;</td>
         ^
    
    /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:149: error: invalid entity ✔
  • <td>&#x2714;</td>
         ^
    
    /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:150: error: invalid entity ✔
  • <td>&#x2714;</td>
         ^
    
    /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:151: error: invalid entity ✗
  • <td>&#x2717;</td>
         ^
    
    /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:152: error: invalid entity ✔
  • <td>&#x2714;</td>
         ^
    
    /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:153: error: invalid entity ✗
  • <td>&#x2717;</td>
         ^
    
    /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:157: error: invalid entity ✔
  • <td>&#x2714;</td>
         ^
    
    /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:158: error: invalid entity ✔
  • <td>&#x2714;</td>
         ^
    
    /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:159: error: invalid entity ✔
  • <td>&#x2714;</td>
         ^
    
    /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:160: error: invalid entity ✗
  • <td>&#x2717;</td>
         ^
    
    /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:161: error: invalid entity ✗
  • <td>&#x2717;</td>
         ^
    
    /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:162: error: invalid entity ✔
  • <td>&#x2714;</td>
         ^
    
    /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:166: error: invalid entity ✔
  • <td>&#x2714;</td>
         ^
    
    /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:167: error: invalid entity ✗
  • <td>&#x2717;</td>
         ^
    
    /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:168: error: invalid entity ✗
  • <td>&#x2717;</td>
         ^
    
    /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:169: error: invalid entity ✔
  • <td>&#x2714;</td>
         ^
    
    /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:170: error: invalid entity ✗
  • <td>&#x2717;</td>
         ^
    
    /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:171: error: invalid entity ✗
  • <td>&#x2717;</td>
         ^
    
    /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:175: error: invalid entity ✔
  • <td>&#x2714;</td>
         ^
    
    /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:176: error: invalid entity ✗
  • <td>&#x2717;</td>
         ^
    
    /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:177: error: invalid entity ✗
  • <td>&#x2717;</td>
         ^
    
    /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:178: error: invalid entity ✔
  • <td>&#x2714;</td>
         ^
    
    /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:179: error: invalid entity ✗
  • <td>&#x2717;</td>
         ^
    
    /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:180: error: invalid entity ✔
  • <td>&#x2714;</td>
         ^
    
    /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:182: error: no summary or caption for table
  • ^ /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:183: error: self-closing element not allowed
  • ^ /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:49: error: reference not found

  • This string allows consumers to override how we extract the value from the {@link JsonParser}
    ^
    /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:54: error: reference not found
  • <td>the instance of {@link JsonParser} being read from
                                ^
    
    /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:67: error: no summary or caption for table
  • ^ /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:22: error: reference not found
  • occurred, so we are forced to throw a {@link JsonException}.
    ^
    /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/JsonFactoryHolder.java:8: error: reference not found
    • Holds the {@link JsonFactory} singleton.
      ^
      36 errors
      100 warnings
      :processorJavadoc FAILED

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':processorJavadoc'.

    Javadoc generation failed. Generated Javadoc options file (useful for troubleshooting): '/home/ubuntu/projects/ig-json-parser/build/tmp/processorJavadoc/javadoc.options'

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Thank you
Farid

Unable to build project: Could not resolve com.github.instagram.ig-json-parser:processor:master-SNAPSHOT

Not sure if it's a transient issue with jitpack but recently I've stopped being able to build a project that has ig-json-parser dependency:

  > Could not resolve com.github.instagram.ig-json-parser:processor:master-SNAPSHOT.
     > Unable to load Maven meta-data from https://jitpack.io/com/github/instagram/ig-json-parser/processor/master-SNAPSHOT/maven-metadata.xml.
        > Could not HEAD 'https://jitpack.io/com/github/instagram/ig-json-parser/processor/master-SNAPSHOT/maven-metadata.xml'.
           > Read timed out

The URL mentioned doesn't load on my computer. Could you confirm that README instructions still work?

Generated source location

Making a separate issue from this because it shouldn't be in the documentation issue...

Right now the generated source is in demo/igmodel/gen-src/main/java/com/instagram..., it should probably go in demo/build/generated/source/ig-gson/[variant]/com/instagram...

The current generated source is not flagged by the IDE as generated, so you can edit it and obviously it will be overwritten on next build. If you place the code in build/generated, you get a nice warning like this:

warning

Using with other annotation processor

Hello,

butterknife is a default library to development, so I must use it!

But I would like to use json parser.

And this part of gradle block butterknife:

compileJava {
  doFirst {
    // Directory should exists before compilation started.
    generatedSourcesDir.mkdirs()
  }
  options.compilerArgs += [
                       '-processor',
                       'com.instagram.common.json.annotation.processor.JsonAnnotationProcessor',
                       '-s',
                       generatedSourcesDir
  ]
}

What is the proper way to use both libraries together? Others recommended to use ig-json-parser with android-apt but I don't know how can I.

bg,
Larten

Can't import the project into Android-Studio

For some reason, it has plenty of errors, for example:

D:\android-studio\Android studioProjects\ig-json-parser\processor\support\src\main\java\com\instagram\common\json\annotation\processor\support\ExtensibleJSONWriter.java
Error:(7, 16) java: package org.json does not exist
Error:(8, 16) java: package org.json does not exist
Error:(30, 43) java: cannot find symbol
symbol: class JSONWriter
Error:(47, 64) java: cannot find symbol
symbol: class JSONException
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(56, 46) java: cannot find symbol
symbol: class JSONException
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(62, 49) java: cannot find symbol
symbol: class JSONException
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(68, 50) java: cannot find symbol
symbol: class JSONException
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(74, 52) java: cannot find symbol
symbol: class JSONException
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(80, 47) java: cannot find symbol
symbol: class JSONException
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(86, 55) java: cannot find symbol
symbol: class JSONException
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(92, 54) java: cannot find symbol
symbol: class JSONException
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(98, 52) java: cannot find symbol
symbol: class JSONException
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(104, 54) java: cannot find symbol
symbol: class JSONException
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(37, 53) java: cannot find symbol
symbol: class JSONException
location: interface com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter.Extender
Error:(57, 5) java: cannot find symbol
symbol: variable super
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(55, 3) java: method does not override or implement a method from a supertype
Error:(63, 5) java: cannot find symbol
symbol: variable super
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(61, 3) java: method does not override or implement a method from a supertype
Error:(69, 5) java: cannot find symbol
symbol: variable super
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(67, 3) java: method does not override or implement a method from a supertype
Error:(75, 5) java: cannot find symbol
symbol: variable super
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(73, 3) java: method does not override or implement a method from a supertype
Error:(81, 5) java: cannot find symbol
symbol: variable super
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(79, 3) java: method does not override or implement a method from a supertype
Error:(87, 5) java: cannot find symbol
symbol: variable super
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(85, 3) java: method does not override or implement a method from a supertype
Error:(93, 5) java: cannot find symbol
symbol: variable super
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(91, 3) java: method does not override or implement a method from a supertype
Error:(99, 5) java: cannot find symbol
symbol: variable super
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(97, 3) java: method does not override or implement a method from a supertype
Error:(105, 5) java: cannot find symbol
symbol: variable super
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(103, 3) java: method does not override or implement a method from a supertype

JDK Compatibility Error

Hi there
I'm facing an error, maybe someone can help.
To reproduce the error:
-Create a new project.
-Add the dependency (compile group: 'com.instagram', name: 'ig-json-parser-processor', version: '0.0.6+')
-Run the app.
My result: the gradle task ends with an error, aborting.

Here a screenshot:

image

I'm using Android Studio 2.2

  • compileSdkVersion 25
  • buildToolsVersion "25.0.1"
  • Java 1.8

I tried the solution of the screenshot but no luck.

Thanks in advice!

IOException on build with Proguard enabled

Might be a little early to talk about Proguard support, but I'm striking out trying to get it working. This error is from a barebones Android Studio project. Anyone else have any luck?

Edit: Only trying to shrink for now - no obfuscation.

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:proguardDebug'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
    at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
    at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
    at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:289)
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79)
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63)
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:23)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:86)
    at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:29)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
    at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)
    at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67)
    at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:54)
    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:166)
    at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:113)
    at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:81)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:64)
    at org.gradle.tooling.internal.provider.BuildModelAction.run(BuildModelAction.java:76)
    at org.gradle.tooling.internal.provider.BuildModelAction.run(BuildModelAction.java:31)
    at org.gradle.tooling.internal.provider.ConfiguringBuildAction.run(ConfiguringBuildAction.java:150)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:35)
    at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:45)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34)
    at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
    at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:42)
    at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
    at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:24)
    at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
    at org.gradle.launcher.daemon.server.exec.StartStopIfBuildAndStop.execute(StartStopIfBuildAndStop.java:33)
    at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
    at org.gradle.launcher.daemon.server.exec.ReturnResult.execute(ReturnResult.java:34)
    at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:71)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:69)
    at org.gradle.util.Swapper.swap(Swapper.java:38)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:69)
    at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
    at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34)
    at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
    at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:60)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34)
    at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
    at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:45)
    at org.gradle.launcher.daemon.server.DaemonStateCoordinator.runCommand(DaemonStateCoordinator.java:186)
    at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy.doBuild(StartBuildOrRespondWithBusy.java:49)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34)
    at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
    at org.gradle.launcher.daemon.server.exec.HandleStop.execute(HandleStop.java:36)
    at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
    at org.gradle.launcher.daemon.server.exec.DaemonHygieneAction.execute(DaemonHygieneAction.java:39)
    at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
    at org.gradle.launcher.daemon.server.exec.CatchAndForwardDaemonFailure.execute(CatchAndForwardDaemonFailure.java:32)
    at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
    at org.gradle.launcher.daemon.server.exec.DefaultDaemonCommandExecuter.executeCommand(DefaultDaemonCommandExecuter.java:51)
    at org.gradle.launcher.daemon.server.DefaultIncomingConnectionHandler$ConnectionWorker.handleCommand(DefaultIncomingConnectionHandler.java:155)
    at org.gradle.launcher.daemon.server.DefaultIncomingConnectionHandler$ConnectionWorker.receiveAndHandleCommand(DefaultIncomingConnectionHandler.java:128)
    at org.gradle.launcher.daemon.server.DefaultIncomingConnectionHandler$ConnectionWorker.run(DefaultIncomingConnectionHandler.java:116)
    at org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:64)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
    at java.lang.Thread.run(Thread.java:695)
Caused by: org.gradle.internal.UncheckedException: java.io.IOException: Please correct the above warnings first.
    at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:39)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:66)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:219)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:212)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:201)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:533)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:516)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
    ... 70 more
Caused by: java.io.IOException: Please correct the above warnings first.
    at proguard.Initializer.execute(Initializer.java:369)
    at proguard.ProGuard.initialize(ProGuard.java:211)
    at proguard.ProGuard.execute(ProGuard.java:86)
    at proguard.gradle.ProGuardTask.proguard(ProGuardTask.java:1074)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:63)
    ... 77 more

Haven't been able to get the full strack trace, even w/ --full-stacktrace command..

Who wrote the upload section of Instagram?

stupid programmers who are not even able to make a simple upload. The stupid developer team of Instagram is not working for the suspand accounts. Ajax request are all wrong, you don't answer any email, so what do you do!

Support Map types

Lists are supported, adding support for Map types would be very helpful.

Gradle issue

I'm importing the project (Import->Gradle Project), generating the model but with no success. The projects not compile and I don't have the option when right click on demo to run as Android application. Could you guide us on how to get it work?

Thanks in advice

Error while compile release apk with proguard

I got warning message when I build release apk for my app
"Warning: com.instagram.common.json.annotation.processor.JsonAnnotationProcessor: can't find referenced field 'javax.annotation.processing.ProcessingEnvironment processingEnv' in program class com.instagram.common.json.annotation.processor.JsonAnnotationProcessor"

But when I add "-dontwarn com.instagram.common.json.annotation.processor.", it can be fixed.
Does not matter if I put "-dontwarn com.instagram.common.json.annotation.processor.
" in proguard file? Thanks

Support sub types?

Currently with jackson subtypes it is possible to use for polymorphic structure. I don't see equivalent feature in ig-json. Is this achievable in some other ways or any workaround?

Jackson example:

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY)
@JsonSubTypes({
    @JsonSubTypes.Type(value = Dog.class, name = "Dog"),
    @JsonSubTypes.Type(value = Cat.class, name = "Cat") }
)
public abstract class Animal {

    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

Then

public class Dog extends Animal {

    private String breed;

    public Dog() {

    }

    public Dog(String name, String breed) {
        setName(name);
        setBreed(breed);
    }

    public String getBreed() {
        return breed;
    }

    public void setBreed(String breed) {
        this.breed = breed;
    }
}

public class Cat extends Animal {

    public String getFavoriteToy() {
        return favoriteToy;
    }

    public Cat() {}

    public Cat(String name, String favoriteToy) {
        setName(name);
        setFavoriteToy(favoriteToy);
    }

    public void setFavoriteToy(String favoriteToy) {
        this.favoriteToy = favoriteToy;
    }

    private String favoriteToy;

}

And then:

public class Test {

    public static void main(String[] args) {

        ObjectMapper objectMapper = new ObjectMapper();

        Animal myDog = new Dog("ruffus","english shepherd");

        Animal myCat = new Cat("goya", "mice");

        try {
            String dogJson = objectMapper.writeValueAsString(myDog);

            System.out.println(dogJson);

            Animal deserializedDog = objectMapper.readValue(dogJson, Animal.class);

            System.out.println("Deserialized dogJson Class: " + deserializedDog.getClass().getSimpleName());

            String catJson = objectMapper.writeValueAsString(myCat);

            Animal deseriliazedCat = objectMapper.readValue(catJson, Animal.class);

            System.out.println("Deserialized catJson Class: " + deseriliazedCat.getClass().getSimpleName());



        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

annotation null pointer exception when List is used as @JsonField in Eclipse

The exception from the Eclipse .log file is as follows:

!ENTRY org.eclipse.jdt.apt.pluggable.core 1 1 2015-01-27 00:48:04.922
!MESSAGE annotation exception: java.lang.NullPointerException cause: java.lang.NullPointerException
at java.util.regex.Matcher.getTextLength(Matcher.java:1234)
at java.util.regex.Matcher.reset(Matcher.java:308)
at java.util.regex.Matcher.(Matcher.java:228)
at java.util.regex.Pattern.matcher(Pattern.java:1088)
at java.util.Formatter.parse(Formatter.java:2515)
at java.util.Formatter.format(Formatter.java:2469)
at java.util.Formatter.format(Formatter.java:2423)
at java.lang.String.format(String.java:2790)
at com.instagram.javawriter.JavaWriter.emitStatement(JavaWriter.java:663)
at com.instagram.common.json.annotation.processor.JsonParserClassData.writeSerializeCalls(JsonParserClassData.java:514)
at com.instagram.common.json.annotation.processor.JsonParserClassData.access$200(JsonParserClassData.java:39)
at com.instagram.common.json.annotation.processor.JsonParserClassData$2.emitJava(JsonParserClassData.java:199)
at com.instagram.javawriter.JavaWriter.emitWithGenerator(JavaWriter.java:72)
at com.instagram.common.json.annotation.processor.JsonParserClassData.getJavaCode(JsonParserClassData.java:183)
at com.instagram.common.json.annotation.processor.JsonAnnotationProcessor.process(JsonAnnotationProcessor.java:101)
at org.eclipse.jdt.internal.compiler.apt.dispatch.RoundDispatcher.handleProcessor(RoundDispatcher.java:139)
at org.eclipse.jdt.internal.compiler.apt.dispatch.RoundDispatcher.round(RoundDispatcher.java:121)
at org.eclipse.jdt.internal.compiler.apt.dispatch.BaseAnnotationProcessorManager.processAnnotations(BaseAnnotationProcessorManager.java:159)
at org.eclipse.jdt.internal.apt.pluggable.core.dispatch.IdeAnnotationProcessorManager.processAnnotations(IdeAnnotationProcessorManager.java:134)
at org.eclipse.jdt.internal.compiler.Compiler.processAnnotations(Compiler.java:820)
at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:434)
at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:366)
at org.eclipse.jdt.internal.core.builder.IncrementalImageBuilder.compile(IncrementalImageBuilder.java:329)
at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:303)
at org.eclipse.jdt.internal.core.builder.IncrementalImageBuilder.build(IncrementalImageBuilder.java:134)
at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildDeltas(JavaBuilder.java:265)
at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:193)
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:733)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:206)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:246)
at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:299)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:302)
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:358)
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:381)
at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143)
at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:241)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)

Proper documentation + Wiki

After going through the demo and unit test projects it took me almost 3 hours to realize how to make this to work. The current documentation only talks about annotating classes and misses consumption and generation of JSON. Proper documentation + Wiki is a must.

This library is not compatible JDK7 anymore

As per gradle dependencies versions :

|    +--- com.instagram:ig-json-parser-processor:0.0.6
|    |    +--- com.fasterxml.jackson.core:jackson-core:[2.2.3,) -> 2.9.0-SNAPSHOT
|    |    +--- com.google.guava:guava:[12.0.1,) -> 21.0-SNAPSHOT
|    |    \--- org.apache.commons:commons-lang3:[3.1,) -> 3.5

ig-json-parser now will get Guava 21 which is only JDK8 compatible :
The coming release (21.0) will require JDK 1.8, but we will begin providing a backport soon thereafter.
(see https://github.com/google/guava).

It totally breaks apps running on JDK7.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.