diff --git a/build.gradle b/build.gradle index 5594e43b5..390f2ab8b 100644 --- a/build.gradle +++ b/build.gradle @@ -1,17 +1,54 @@ apply plugin: 'java' -apply from: 'gradle-mvn-push.gradle' +apply plugin: 'maven' -targetCompatibility = '1.6' -sourceCompatibility = '1.6' +group = 'com.github.matheusbristot' -sourceSets { - main { - java { - srcDir 'src' - } - } +sourceCompatibility = 1.8 // java 8 +targetCompatibility = 1.8 + + +repositories { + mavenCentral() } dependencies { - compile fileTree(dir: 'libs', include: '*.jar') + compile 'com.google.guava:guava:18.0' } + +task sourcesJar(type: Jar, dependsOn: classes) { + classifier = 'sources' + from sourceSets.main.allSource +} + +task javadocJar(type: Jar, dependsOn: javadoc) { + classifier = 'javadoc' + from javadoc.destinationDir +} + +artifacts { + archives sourcesJar + archives javadocJar +} + +// To specify a license in the pom: +install { + repositories.mavenInstaller { + pom.project { + groupId "com.github.matheusbristot" + artifactId "com.activeandroid" + version "3.2.9" + licenses { + license { + name 'The Apache Software License, Version 2.0' + url 'http://www.apache.org/licenses/LICENSE-2.0.txt' + distribution 'repo' + } + } + scm { + connection = 'scm:git@github.com:matheusbristot/ActiveAndroid.git' + developerConnection = 'scm:git@github.com:matheusbristot/ActiveAndroid.git' + url = 'https://github.com/matheusbristot/ActiveAndroid' + } + } + } +} \ No newline at end of file diff --git a/build.xml b/build.xml deleted file mode 100644 index b2b7bfa6a..000000000 --- a/build.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/gradle.properties b/gradle.properties deleted file mode 100644 index 424d885af..000000000 --- a/gradle.properties +++ /dev/null @@ -1,18 +0,0 @@ -VERSION_NAME=3.1.0-SNAPSHOT -VERSION_CODE=1 -GROUP=com.michaelpardo - -POM_DESCRIPTION=Active record style SQLite persistence for Android. -POM_URL=https://github.com/pardom/ActiveAndroid -POM_SCM_URL=https://github.com/pardom/ActiveAndroid -POM_SCM_CONNECTION=scm:git@github.com:pardom/ActiveAndroid.git -POM_SCM_DEV_CONNECTION=scm:git@github.com:pardom/ActiveAndroid.git -POM_LICENCE_NAME=The Apache Software License, Version 2.0 -POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt -POM_LICENCE_DIST=repo -POM_DEVELOPER_ID=michaelpardo -POM_DEVELOPER_NAME=Michael Pardo - -POM_NAME=ActiveAndroid -POM_ARTIFACT_ID=activeandroid -POM_PACKAGING=jar diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 330a2c9f8..054073342 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=http\://services.gradle.org/distributions/gradle-1.8-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip diff --git a/pom-child.xml b/pom-child.xml deleted file mode 100644 index 4f0c72df4..000000000 --- a/pom-child.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - 4.0.0 - com.activeandroid - activeandroid - 3.1-SNAPSHOT - jar - ActiveAndroid - - - - The Apache Software License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - repo - - - - - com.activeandroid - activeandroid-parent - 3.1-SNAPSHOT - ./pom.xml - - - - scm:git:git@github.com:pardom/ActiveAndroid.git - scm:git:git@github.com:pardom/ActiveAndroid.git - git@github.com:pardom/ActiveAndroid.git - - - - 1.6 - 16 - 4.1.1.4 - r7 - - - - - com.google.android - android - ${platform.version} - provided - - - com.google.android - android-test - ${platform.version} - provided - - - com.google.android - support-v4 - ${platform.support-version} - - - - - src - - - org.apache.maven.plugins - maven-surefire-plugin - 2.14.1 - - - maven-compiler-plugin - 3.1 - - ${java.version} - ${java.version} - - - - com.jayway.maven.plugins.android.generation2 - android-maven-plugin - 3.8.2 - - - ${env.ANDROID_HOME} - ${platform.sdk} - - - true - - - - - diff --git a/pom.xml b/pom.xml deleted file mode 100644 index eafb111c5..000000000 --- a/pom.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - 4.0.0 - com.activeandroid - activeandroid-parent - 3.1-SNAPSHOT - pom - ActiveAndroid - Parent - - - pom-child.xml - tests - - - - 1.6 - 16 - 4.1.1.4 - r7 - - - - - - - com.jayway.maven.plugins.android.generation2 - android-maven-plugin - 3.8.2 - - - maven-compiler-plugin - 3.1 - - - - - diff --git a/src/com/activeandroid/Model.java b/src/com/activeandroid/Model.java index 421426ea3..04d7d3dba 100644 --- a/src/com/activeandroid/Model.java +++ b/src/com/activeandroid/Model.java @@ -64,11 +64,15 @@ public final Long getId() { } public final void delete() { - Cache.openDatabase().delete(mTableInfo.getTableName(), idName+"=?", new String[] { getId().toString() }); - Cache.removeEntity(this); - - Cache.getContext().getContentResolver() - .notifyChange(ContentProvider.createUri(mTableInfo.getType(), mId), null); + try { + Cache.openDatabase().delete(mTableInfo.getTableName(), idName + "=?", new String[]{getId().toString()}); + Cache.removeEntity(this); + + Cache.getContext().getContentResolver() + .notifyChange(ContentProvider.createUri(mTableInfo.getType(), mId), null); + } catch (Throwable t){ + t.printStackTrace() + } } public final Long save() { @@ -151,15 +155,17 @@ else if (ReflectionUtils.isSubclassOf(fieldType, Enum.class)) { } } - if (mId == null) { - mId = db.insert(mTableInfo.getTableName(), null, values); - } - else { - db.update(mTableInfo.getTableName(), values, idName+"=" + mId, null); + try { + if (mId == null) { + mId = db.insert(mTableInfo.getTableName(), null, values); + } else { + db.update(mTableInfo.getTableName(), values, idName + "=" + mId, null); + } + Cache.getContext().getContentResolver() + .notifyChange(ContentProvider.createUri(mTableInfo.getType(), mId), null); + } catch (Throwable t){ + t.printStackTrace() } - - Cache.getContext().getContentResolver() - .notifyChange(ContentProvider.createUri(mTableInfo.getType(), mId), null); return mId; } diff --git a/src/com/activeandroid/content/ContentProvider.java b/src/com/activeandroid/content/ContentProvider.java index b4a841d64..279fa0524 100644 --- a/src/com/activeandroid/content/ContentProvider.java +++ b/src/com/activeandroid/content/ContentProvider.java @@ -147,18 +147,14 @@ public Cursor query(Uri uri, String[] projection, String selection, String[] sel ////////////////////////////////////////////////////////////////////////////////////// public static Uri createUri(Class type, Long id) { - final StringBuilder uri = new StringBuilder(); - uri.append("content://"); - uri.append(sAuthority); - uri.append("/"); - uri.append(Cache.getTableName(type).toLowerCase()); - + Uri.Builder uriBuilder = new Uri.Builder(); + uriBuilder.authority(sAuthority); + uriBuilder.scheme("content"); + uriBuilder.appendPath(Cache.getTableName(type).toLowerCase()); if (id != null) { - uri.append("/"); - uri.append(id.toString()); + uriBuilder.appendPath(id.toString()); } - - return Uri.parse(uri.toString()); + return uriBuilder.build(); } ////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/com/activeandroid/query/From.java b/src/com/activeandroid/query/From.java index ab3837a90..4ddf7b87d 100644 --- a/src/com/activeandroid/query/From.java +++ b/src/com/activeandroid/query/From.java @@ -29,63 +29,63 @@ import java.util.List; public final class From implements Sqlable { - private Sqlable mQueryBase; - - private Class mType; - private String mAlias; - private List mJoins; - private final StringBuilder mWhere = new StringBuilder(); - private String mGroupBy; - private String mHaving; - private String mOrderBy; - private String mLimit; - private String mOffset; - - private List mArguments; - - public From(Class table, Sqlable queryBase) { - mType = table; - mJoins = new ArrayList(); - mQueryBase = queryBase; - - mJoins = new ArrayList(); - mArguments = new ArrayList(); - } - - public From as(String alias) { - mAlias = alias; - return this; - } - - public Join join(Class table) { - Join join = new Join(this, table, null); - mJoins.add(join); - return join; - } - - public Join leftJoin(Class table) { - Join join = new Join(this, table, JoinType.LEFT); - mJoins.add(join); - return join; - } - - public Join outerJoin(Class table) { - Join join = new Join(this, table, JoinType.OUTER); - mJoins.add(join); - return join; - } - - public Join innerJoin(Class table) { - Join join = new Join(this, table, JoinType.INNER); - mJoins.add(join); - return join; - } - - public Join crossJoin(Class table) { - Join join = new Join(this, table, JoinType.CROSS); - mJoins.add(join); - return join; - } + private Sqlable mQueryBase; + + private Class mType; + private String mAlias; + private List mJoins; + private final StringBuilder mWhere = new StringBuilder(); + private String mGroupBy; + private String mHaving; + private String mOrderBy; + private String mLimit; + private String mOffset; + + private List mArguments; + + public From(Class table, Sqlable queryBase) { + mType = table; + mJoins = new ArrayList(); + mQueryBase = queryBase; + + mJoins = new ArrayList(); + mArguments = new ArrayList(); + } + + public From as(String alias) { + mAlias = alias; + return this; + } + + public Join join(Class table) { + Join join = new Join(this, table, null); + mJoins.add(join); + return join; + } + + public Join leftJoin(Class table) { + Join join = new Join(this, table, JoinType.LEFT); + mJoins.add(join); + return join; + } + + public Join outerJoin(Class table) { + Join join = new Join(this, table, JoinType.OUTER); + mJoins.add(join); + return join; + } + + public Join innerJoin(Class table) { + Join join = new Join(this, table, JoinType.INNER); + mJoins.add(join); + return join; + } + + public Join crossJoin(Class table) { + Join join = new Join(this, table, JoinType.CROSS); + mJoins.add(join); + return join; + } public From where(String clause) { // Chain conditions if a previous condition exists. @@ -121,48 +121,48 @@ public From or(String clause, Object... args) { or(clause).addArguments(args); return this; } - - public From groupBy(String groupBy) { - mGroupBy = groupBy; - return this; - } - - public From having(String having) { - mHaving = having; - return this; - } - - public From orderBy(String orderBy) { - mOrderBy = orderBy; - return this; - } - - public From limit(int limit) { - return limit(String.valueOf(limit)); - } - - public From limit(String limit) { - mLimit = limit; - return this; - } - - public From offset(int offset) { - return offset(String.valueOf(offset)); - } - - public From offset(String offset) { - mOffset = offset; - return this; - } - - void addArguments(Object[] args) { - for(Object arg : args) { + + public From groupBy(String groupBy) { + mGroupBy = groupBy; + return this; + } + + public From having(String having) { + mHaving = having; + return this; + } + + public From orderBy(String orderBy) { + mOrderBy = orderBy; + return this; + } + + public From limit(int limit) { + return limit(String.valueOf(limit)); + } + + public From limit(String limit) { + mLimit = limit; + return this; + } + + public From offset(int offset) { + return offset(String.valueOf(offset)); + } + + public From offset(String offset) { + mOffset = offset; + return this; + } + + void addArguments(Object[] args) { + for (Object arg : args) { if (arg.getClass() == boolean.class || arg.getClass() == Boolean.class) { arg = (arg.equals(true) ? 1 : 0); } mArguments.add(arg); } - } + } private void addFrom(final StringBuilder sql) { sql.append("FROM "); @@ -293,33 +293,37 @@ public String toCountSql() { return sqlString(sql); } - public List execute() { - if (mQueryBase instanceof Select) { - return SQLiteUtils.rawQuery(mType, toSql(), getArguments()); - - } else { - SQLiteUtils.execSql(toSql(), getArguments()); - Cache.getContext().getContentResolver().notifyChange(ContentProvider.createUri(mType, null), null); - return null; - - } - } - - public T executeSingle() { - if (mQueryBase instanceof Select) { - limit(1); - return (T) SQLiteUtils.rawQuerySingle(mType, toSql(), getArguments()); - - } else { - limit(1); - SQLiteUtils.rawQuerySingle(mType, toSql(), getArguments()).delete(); - return null; - - } - } - + public List execute() { + if (mQueryBase instanceof Select) { + return SQLiteUtils.rawQuery(mType, toSql(), getArguments()); + } else { + SQLiteUtils.execSql(toSql(), getArguments()); + try { + Cache.getContext().getContentResolver().notifyChange(ContentProvider.createUri(mType, null), null); + } catch (Throwable t) { + t.printStackTrace() + } + return null; + + } + } + + public T executeSingle() { + if (mQueryBase instanceof Select) { + limit(1); + return (T) SQLiteUtils.rawQuerySingle(mType, toSql(), getArguments()); + + } else { + limit(1); + SQLiteUtils.rawQuerySingle(mType, toSql(), getArguments()).delete(); + return null; + + } + } + /** * Gets a value indicating whether the query returns any rows. + * * @return true if the query returns at least one row; otherwise, false. */ public boolean exists() { @@ -333,14 +337,14 @@ public int count() { return SQLiteUtils.intQuery(toCountSql(), getArguments()); } - public String[] getArguments() { - final int size = mArguments.size(); - final String[] args = new String[size]; + public String[] getArguments() { + final int size = mArguments.size(); + final String[] args = new String[size]; - for (int i = 0; i < size; i++) { - args[i] = mArguments.get(i).toString(); - } + for (int i = 0; i < size; i++) { + args[i] = mArguments.get(i).toString(); + } - return args; - } + return args; + } } diff --git a/tests/pom.xml b/tests/pom.xml index 6db50e11a..50820a8c1 100644 --- a/tests/pom.xml +++ b/tests/pom.xml @@ -9,17 +9,17 @@ com.activeandroid activeandroid-parent - 3.1-SNAPSHOT + 3.1.2-SNAPSHOT com.activeandroid activeandroid-tests - 3.1-SNAPSHOT + 3.1.2-SNAPSHOT apk ActiveAndroid - Tests - 1.6 + 1.8 16 4.1.1.4 r7 @@ -36,7 +36,7 @@ com.activeandroid activeandroid jar - 3.1-SNAPSHOT + 3.1.2-SNAPSHOT junit