You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metamodel.apache.org by ka...@apache.org on 2013/07/17 13:18:32 UTC
[1/5] git commit: Backported fix for eobjects Ticket #1131
Updated Branches:
refs/heads/master e4990f709 -> 03eea7d65
Backported fix for eobjects Ticket #1131
Project: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/commit/9d7c83b6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/tree/9d7c83b6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/diff/9d7c83b6
Branch: refs/heads/master
Commit: 9d7c83b6b0323c639bf24838d6fa9dd5243e1929
Parents: e4990f7
Author: kaspers <ka...@kaspers-think.humaninference.com>
Authored: Wed Jul 17 13:09:26 2013 +0200
Committer: kaspers <ka...@kaspers-think.humaninference.com>
Committed: Wed Jul 17 13:09:26 2013 +0200
----------------------------------------------------------------------
core/src/main/java/org/eobjects/metamodel/update/Update.java | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/9d7c83b6/core/src/main/java/org/eobjects/metamodel/update/Update.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eobjects/metamodel/update/Update.java b/core/src/main/java/org/eobjects/metamodel/update/Update.java
index 5814697..5e390fe 100644
--- a/core/src/main/java/org/eobjects/metamodel/update/Update.java
+++ b/core/src/main/java/org/eobjects/metamodel/update/Update.java
@@ -29,7 +29,6 @@ import org.eobjects.metamodel.UpdateableDataContext;
import org.eobjects.metamodel.data.AbstractRowBuilder;
import org.eobjects.metamodel.data.Style;
import org.eobjects.metamodel.data.WhereClauseBuilder;
-import org.eobjects.metamodel.insert.InsertInto;
import org.eobjects.metamodel.query.FilterItem;
import org.eobjects.metamodel.query.SelectItem;
import org.eobjects.metamodel.query.builder.AbstractFilterBuilder;
@@ -45,7 +44,7 @@ import org.eobjects.metamodel.schema.Table;
* based on the knowledge that there will only be a single update statement
* executed.
*/
-public final class Update extends AbstractRowBuilder<InsertInto> implements UpdateScript, WhereClauseBuilder<Update> {
+public final class Update extends AbstractRowBuilder<Update> implements UpdateScript, WhereClauseBuilder<Update> {
private final Table _table;
private final List<FilterItem> _whereItems;
[3/5] git commit: Backported fix for eobjects Ticket #1145
Posted by ka...@apache.org.
Backported fix for eobjects Ticket #1145
Project: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/commit/d7c8bb1d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/tree/d7c8bb1d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/diff/d7c8bb1d
Branch: refs/heads/master
Commit: d7c8bb1d331199301d09d0477f9ee3841381a099
Parents: 98cbe69
Author: kaspers <ka...@kaspers-think.humaninference.com>
Authored: Wed Jul 17 13:12:06 2013 +0200
Committer: kaspers <ka...@kaspers-think.humaninference.com>
Committed: Wed Jul 17 13:12:06 2013 +0200
----------------------------------------------------------------------
core/src/main/java/org/eobjects/metamodel/util/FileResource.java | 3 +++
1 file changed, 3 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/d7c8bb1d/core/src/main/java/org/eobjects/metamodel/util/FileResource.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eobjects/metamodel/util/FileResource.java b/core/src/main/java/org/eobjects/metamodel/util/FileResource.java
index e614171..27382c8 100644
--- a/core/src/main/java/org/eobjects/metamodel/util/FileResource.java
+++ b/core/src/main/java/org/eobjects/metamodel/util/FileResource.java
@@ -52,6 +52,9 @@ public class FileResource implements Resource, Serializable {
@Override
public boolean isReadOnly() {
+ if (!isExists()) {
+ return false;
+ }
boolean canWrite = _file.canWrite();
return !canWrite;
}
[5/5] git commit: Backported fix for eobjects Ticket #1140
Posted by ka...@apache.org.
Backported fix for eobjects Ticket #1140
Project: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/commit/03eea7d6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/tree/03eea7d6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/diff/03eea7d6
Branch: refs/heads/master
Commit: 03eea7d65066b11c862e6892640743243a89a626
Parents: 7180851
Author: kaspers <ka...@kaspers-think.humaninference.com>
Authored: Wed Jul 17 13:18:22 2013 +0200
Committer: kaspers <ka...@kaspers-think.humaninference.com>
Committed: Wed Jul 17 13:18:22 2013 +0200
----------------------------------------------------------------------
.../salesforce/SalesforceDataContext.java | 5 ++++
.../metamodel/salesforce/SalesforceDataSet.java | 1 +
.../salesforce/SalesforceDataContextTest.java | 30 +++++++++++++++++---
3 files changed, 32 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/03eea7d6/salesforce/src/main/java/org/eobjects/metamodel/salesforce/SalesforceDataContext.java
----------------------------------------------------------------------
diff --git a/salesforce/src/main/java/org/eobjects/metamodel/salesforce/SalesforceDataContext.java b/salesforce/src/main/java/org/eobjects/metamodel/salesforce/SalesforceDataContext.java
index 61e0f3f..7e1ac81 100644
--- a/salesforce/src/main/java/org/eobjects/metamodel/salesforce/SalesforceDataContext.java
+++ b/salesforce/src/main/java/org/eobjects/metamodel/salesforce/SalesforceDataContext.java
@@ -22,6 +22,7 @@ package org.eobjects.metamodel.salesforce;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
+import java.util.TimeZone;
import org.eobjects.metamodel.MetaModelException;
import org.eobjects.metamodel.QueryPostprocessDataContext;
@@ -58,6 +59,7 @@ import com.sforce.ws.ConnectionException;
*/
public class SalesforceDataContext extends QueryPostprocessDataContext implements UpdateableDataContext {
+ public static final TimeZone SOQL_TIMEZONE = TimeZone.getTimeZone("UTC");
public static final String SOQL_DATE_FORMAT_IN = "yyyy-MM-dd'T'HH:mm:ss.SSS";
public static final String SOQL_DATE_FORMAT_OUT = "yyyy-MM-dd'T'HH:mm:ssZZZ";
@@ -273,7 +275,9 @@ public class SalesforceDataContext extends QueryPostprocessDataContext implement
sb.append(operand);
} else if (operand instanceof Date) {
SimpleDateFormat dateFormat = new SimpleDateFormat(SOQL_DATE_FORMAT_OUT);
+ dateFormat.setTimeZone(SOQL_TIMEZONE);
String str = dateFormat.format((Date) operand);
+ logger.debug("Date '{}' formatted as: {}", operand, str);
sb.append(str);
} else if (operand instanceof Column) {
sb.append(((Column) operand).getName());
@@ -317,6 +321,7 @@ public class SalesforceDataContext extends QueryPostprocessDataContext implement
}
private QueryResult executeSoqlQuery(String query) {
+ logger.info("Executing SOQL query: {}", query);
try {
QueryResult queryResult = _connection.query(query);
return queryResult;
http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/03eea7d6/salesforce/src/main/java/org/eobjects/metamodel/salesforce/SalesforceDataSet.java
----------------------------------------------------------------------
diff --git a/salesforce/src/main/java/org/eobjects/metamodel/salesforce/SalesforceDataSet.java b/salesforce/src/main/java/org/eobjects/metamodel/salesforce/SalesforceDataSet.java
index 404ca32..833ad42 100644
--- a/salesforce/src/main/java/org/eobjects/metamodel/salesforce/SalesforceDataSet.java
+++ b/salesforce/src/main/java/org/eobjects/metamodel/salesforce/SalesforceDataSet.java
@@ -112,6 +112,7 @@ final class SalesforceDataSet extends AbstractDataSet {
}
if (columnType.isTimeBased()) {
SimpleDateFormat format = new SimpleDateFormat(SalesforceDataContext.SOQL_DATE_FORMAT_IN);
+ format.setTimeZone(SalesforceDataContext.SOQL_TIMEZONE);
try {
return format.parse(value.toString());
} catch (ParseException e) {
http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/03eea7d6/salesforce/src/test/java/org/eobjects/metamodel/salesforce/SalesforceDataContextTest.java
----------------------------------------------------------------------
diff --git a/salesforce/src/test/java/org/eobjects/metamodel/salesforce/SalesforceDataContextTest.java b/salesforce/src/test/java/org/eobjects/metamodel/salesforce/SalesforceDataContextTest.java
index a6da3e3..81698d9 100644
--- a/salesforce/src/test/java/org/eobjects/metamodel/salesforce/SalesforceDataContextTest.java
+++ b/salesforce/src/test/java/org/eobjects/metamodel/salesforce/SalesforceDataContextTest.java
@@ -44,12 +44,34 @@ import org.eobjects.metamodel.util.Month;
public class SalesforceDataContextTest extends SalesforceTestCase {
+ public void testQueryStrangeRecord() throws Exception {
+ SalesforceDataContext dc = new SalesforceDataContext(getUsername(), getPassword(), getSecurityToken());
+
+ Column[] timeColumns = dc.getDefaultSchema().getTableByName("Contact").getTimeBasedColumns();
+ assertEquals(
+ "[Column[name=Birthdate,columnNumber=30,type=DATE,nullable=true,nativeType=date,columnSize=0], "
+ + "Column[name=CreatedDate,columnNumber=33,type=DATE,nullable=false,nativeType=datetime,columnSize=0], "
+ + "Column[name=LastModifiedDate,columnNumber=35,type=DATE,nullable=false,nativeType=datetime,columnSize=0], "
+ + "Column[name=SystemModstamp,columnNumber=37,type=DATE,nullable=false,nativeType=datetime,columnSize=0], "
+ + "Column[name=LastActivityDate,columnNumber=38,type=DATE,nullable=true,nativeType=date,columnSize=0], "
+ + "Column[name=LastCURequestDate,columnNumber=39,type=DATE,nullable=true,nativeType=datetime,columnSize=0], "
+ + "Column[name=LastCUUpdateDate,columnNumber=40,type=DATE,nullable=true,nativeType=datetime,columnSize=0], "
+ + "Column[name=EmailBouncedDate,columnNumber=42,type=DATE,nullable=true,nativeType=datetime,columnSize=0]]",
+ Arrays.toString(timeColumns));
+ DataSet ds = dc.query().from("Contact").select("LastModifiedDate").where("Id").eq("003b0000006xfAUAAY")
+ .execute();
+ assertTrue(ds.next());
+ System.out.println(ds.getRow());
+ assertFalse(ds.next());
+ }
+
public void testInvalidLoginException() throws Exception {
try {
new SalesforceDataContext("foo", "bar", "baz");
fail("Exception expected");
} catch (IllegalStateException e) {
- assertEquals("Failed to log in to Salesforce service: INVALID_LOGIN: Invalid username, password, security token; or user locked out.",
+ assertEquals(
+ "Failed to log in to Salesforce service: INVALID_LOGIN: Invalid username, password, security token; or user locked out.",
e.getMessage());
}
}
@@ -237,10 +259,10 @@ public class SalesforceDataContextTest extends SalesforceTestCase {
public void testRewriteWhereItem() throws Exception {
final StringBuilder sb = new StringBuilder("FOOBAR: ");
- Calendar cal = Calendar.getInstance();
+ final Calendar cal = Calendar.getInstance();
cal.setTime(DateUtils.get(2013, Month.JANUARY, 23));
cal.setTimeZone(TimeZone.getTimeZone("GMT+1"));
- Date date = cal.getTime();
+ final Date date = cal.getTime();
final List<FilterItem> children = new ArrayList<FilterItem>();
children.add(new FilterItem(new SelectItem(new MutableColumn("foo")), OperatorType.EQUALS_TO, "hello\n 'world'"));
@@ -250,7 +272,7 @@ public class SalesforceDataContextTest extends SalesforceTestCase {
SalesforceDataContext.rewriteFilterItem(sb, filterItem);
- assertEquals("FOOBAR: (foo = 'hello\\n \\'world\\'' OR bar = 123 OR baz = 2013-01-23T00:00:00+0100)",
+ assertEquals("FOOBAR: (foo = 'hello\n \'world\'' OR bar = 123 OR baz = 2013-01-22T23:00:00+0000)",
sb.toString());
}
}
[2/5] git commit: Backported fix for eobjects Ticket #1146
Posted by ka...@apache.org.
Backported fix for eobjects Ticket #1146
Project: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/commit/98cbe692
Tree: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/tree/98cbe692
Diff: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/diff/98cbe692
Branch: refs/heads/master
Commit: 98cbe692556af495654e0d8b413fd3a6e96d7e01
Parents: 9d7c83b
Author: kaspers <ka...@kaspers-think.humaninference.com>
Authored: Wed Jul 17 13:10:35 2013 +0200
Committer: kaspers <ka...@kaspers-think.humaninference.com>
Committed: Wed Jul 17 13:10:35 2013 +0200
----------------------------------------------------------------------
.../org/eobjects/metamodel/salesforce/SalesforceUtils.java | 7 +++++++
1 file changed, 7 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/98cbe692/salesforce/src/main/java/org/eobjects/metamodel/salesforce/SalesforceUtils.java
----------------------------------------------------------------------
diff --git a/salesforce/src/main/java/org/eobjects/metamodel/salesforce/SalesforceUtils.java b/salesforce/src/main/java/org/eobjects/metamodel/salesforce/SalesforceUtils.java
index 838cc72..a04e523 100644
--- a/salesforce/src/main/java/org/eobjects/metamodel/salesforce/SalesforceUtils.java
+++ b/salesforce/src/main/java/org/eobjects/metamodel/salesforce/SalesforceUtils.java
@@ -19,11 +19,16 @@
*/
package org.eobjects.metamodel.salesforce;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import com.sforce.soap.partner.fault.ApiFault;
import com.sforce.soap.partner.fault.ExceptionCode;
import com.sforce.ws.ConnectionException;
public class SalesforceUtils {
+
+ private static final Logger logger = LoggerFactory.getLogger(SalesforceUtils.class);
/**
* Wraps a checked exception thrown by Salesforce into an
@@ -34,6 +39,7 @@ public class SalesforceUtils {
* @return
*/
public static IllegalStateException wrapException(ConnectionException e, String whatWentWrong) {
+ logger.error("Wrapping Salesforce.com ConnectionException", e);
String message = null;
Throwable cause = e;
while (message == null && cause != null) {
@@ -43,6 +49,7 @@ public class SalesforceUtils {
message = exceptionCode + ": " + exceptionMessage;
break;
}
+ cause = cause.getCause();
}
throw new IllegalStateException(whatWentWrong + ": " + message, cause);
}
[4/5] git commit: Backported fix for eobjects Ticket #1141
Posted by ka...@apache.org.
Backported fix for eobjects Ticket #1141
Project: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/commit/71808513
Tree: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/tree/71808513
Diff: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/diff/71808513
Branch: refs/heads/master
Commit: 718085136c485ce1ef89d088e9dc7370231780a0
Parents: d7c8bb1
Author: kaspers <ka...@kaspers-think.humaninference.com>
Authored: Wed Jul 17 13:15:36 2013 +0200
Committer: kaspers <ka...@kaspers-think.humaninference.com>
Committed: Wed Jul 17 13:15:36 2013 +0200
----------------------------------------------------------------------
.../eobjects/metamodel/BatchUpdateScript.java | 30 ++++++++++++++++++++
.../metamodel/jdbc/JdbcDataContext.java | 13 ++-------
.../metamodel/jdbc/JdbcTestTemplates.java | 3 +-
3 files changed, 34 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/71808513/core/src/main/java/org/eobjects/metamodel/BatchUpdateScript.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eobjects/metamodel/BatchUpdateScript.java b/core/src/main/java/org/eobjects/metamodel/BatchUpdateScript.java
new file mode 100644
index 0000000..4bd1332
--- /dev/null
+++ b/core/src/main/java/org/eobjects/metamodel/BatchUpdateScript.java
@@ -0,0 +1,30 @@
+/**
+ * eobjects.org MetaModel
+ * Copyright (C) 2010 eobjects.org
+ *
+ * This copyrighted material is made available to anyone wishing to use, modify,
+ * copy, or redistribute it subject to the terms and conditions of the GNU
+ * Lesser General Public License, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this distribution; if not, write to:
+ * Free Software Foundation, Inc.
+ * 51 Franklin Street, Fifth Floor
+ * Boston, MA 02110-1301 USA
+ */
+package org.eobjects.metamodel;
+
+/**
+ * Indicator sub-interface of {@link UpdateScript}. Implementing your updates
+ * using this interface indicates to the underlying
+ * {@link UpdateableDataContext} that the update script represents a large batch
+ * update and that appropriate optimizations may be taken into use if available.
+ */
+public interface BatchUpdateScript extends UpdateScript {
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/71808513/jdbc/src/main/java/org/eobjects/metamodel/jdbc/JdbcDataContext.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/eobjects/metamodel/jdbc/JdbcDataContext.java b/jdbc/src/main/java/org/eobjects/metamodel/jdbc/JdbcDataContext.java
index cfe53b1..f321c20 100644
--- a/jdbc/src/main/java/org/eobjects/metamodel/jdbc/JdbcDataContext.java
+++ b/jdbc/src/main/java/org/eobjects/metamodel/jdbc/JdbcDataContext.java
@@ -35,16 +35,13 @@ import java.util.StringTokenizer;
import javax.sql.DataSource;
import org.eobjects.metamodel.AbstractDataContext;
+import org.eobjects.metamodel.BatchUpdateScript;
import org.eobjects.metamodel.MetaModelException;
import org.eobjects.metamodel.UpdateScript;
import org.eobjects.metamodel.UpdateableDataContext;
-import org.eobjects.metamodel.create.CreateTable;
import org.eobjects.metamodel.data.DataSet;
import org.eobjects.metamodel.data.EmptyDataSet;
import org.eobjects.metamodel.data.MaxRowsDataSet;
-import org.eobjects.metamodel.delete.DeleteFrom;
-import org.eobjects.metamodel.drop.DropTable;
-import org.eobjects.metamodel.insert.InsertInto;
import org.eobjects.metamodel.jdbc.dialects.DB2QueryRewriter;
import org.eobjects.metamodel.jdbc.dialects.DefaultQueryRewriter;
import org.eobjects.metamodel.jdbc.dialects.H2QueryRewriter;
@@ -57,7 +54,6 @@ import org.eobjects.metamodel.query.CompiledQuery;
import org.eobjects.metamodel.query.Query;
import org.eobjects.metamodel.schema.Schema;
import org.eobjects.metamodel.schema.TableType;
-import org.eobjects.metamodel.update.Update;
import org.eobjects.metamodel.util.FileHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -749,12 +745,7 @@ public class JdbcDataContext extends AbstractDataContext implements UpdateableDa
public void executeUpdate(final UpdateScript update) {
final JdbcUpdateCallback updateCallback;
- if (update instanceof InsertInto || update instanceof Update || update instanceof DeleteFrom
- || update instanceof CreateTable || update instanceof DropTable) {
- // we will only need to fire a single operation, so we don't want
- // the overhead of the batch callback
- updateCallback = new JdbcSimpleUpdateCallback(this);
- } else if (_supportsBatchUpdates) {
+ if (_supportsBatchUpdates && update instanceof BatchUpdateScript) {
updateCallback = new JdbcBatchUpdateCallback(this);
} else {
updateCallback = new JdbcSimpleUpdateCallback(this);
http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/71808513/jdbc/src/test/java/org/eobjects/metamodel/jdbc/JdbcTestTemplates.java
----------------------------------------------------------------------
diff --git a/jdbc/src/test/java/org/eobjects/metamodel/jdbc/JdbcTestTemplates.java b/jdbc/src/test/java/org/eobjects/metamodel/jdbc/JdbcTestTemplates.java
index b7026c9..14b7a5e 100644
--- a/jdbc/src/test/java/org/eobjects/metamodel/jdbc/JdbcTestTemplates.java
+++ b/jdbc/src/test/java/org/eobjects/metamodel/jdbc/JdbcTestTemplates.java
@@ -35,6 +35,7 @@ import java.util.Date;
import java.util.HashMap;
import java.util.Map;
+import org.eobjects.metamodel.BatchUpdateScript;
import org.eobjects.metamodel.UpdateCallback;
import org.eobjects.metamodel.UpdateScript;
import org.eobjects.metamodel.create.ColumnCreationBuilder;
@@ -341,7 +342,7 @@ public class JdbcTestTemplates {
});
}
- dc.executeUpdate(new UpdateScript() {
+ dc.executeUpdate(new BatchUpdateScript() {
@Override
public void run(UpdateCallback cb) {
Table table = cb.createTable(schema, tableName).withColumn("id").asPrimaryKey().ofType(ColumnType.INTEGER)