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 2014/03/24 22:16:51 UTC

[2/9] git commit: Extracted interface DataContextFactoryParameters to separate the factorybean itself from the parameters given to factory delegates.

Extracted interface DataContextFactoryParameters to separate the
factorybean itself from the parameters given to factory delegates.

Project: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/commit/d3b5f9a6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/tree/d3b5f9a6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/diff/d3b5f9a6

Branch: refs/heads/hbase-module
Commit: d3b5f9a63a3cd98ca3d2d280b4c775e0f821ba9e
Parents: fd04063
Author: Kasper Sørensen <i....@gmail.com>
Authored: Sat Feb 8 08:42:45 2014 +0100
Committer: Kasper Sørensen <i....@gmail.com>
Committed: Sat Feb 8 08:42:45 2014 +0100

----------------------------------------------------------------------
 .../AbstractDataContextFactoryBeanDelegate.java | 12 +--
 .../CouchDbDataContextFactoryBeanDelegate.java  | 12 +--
 .../CsvDataContextFactoryBeanDelegate.java      | 18 ++---
 .../spring/DataContextFactoryBean.java          | 37 +++++++--
 .../spring/DataContextFactoryBeanDelegate.java  |  4 +-
 .../spring/DataContextFactoryParameters.java    | 79 ++++++++++++++++++++
 .../ExcelDataContextFactoryBeanDelegate.java    | 10 +--
 .../JdbcDataContextFactoryBeanDelegate.java     | 18 ++---
 .../MongoDbDataContextFactoryBeanDelegate.java  | 14 ++--
 .../MockDataContextFactoryBeanDelegate.java     |  2 +-
 10 files changed, 155 insertions(+), 51 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/d3b5f9a6/spring/src/main/java/org/apache/metamodel/spring/AbstractDataContextFactoryBeanDelegate.java
----------------------------------------------------------------------
diff --git a/spring/src/main/java/org/apache/metamodel/spring/AbstractDataContextFactoryBeanDelegate.java b/spring/src/main/java/org/apache/metamodel/spring/AbstractDataContextFactoryBeanDelegate.java
index 3e05824..d51b161 100644
--- a/spring/src/main/java/org/apache/metamodel/spring/AbstractDataContextFactoryBeanDelegate.java
+++ b/spring/src/main/java/org/apache/metamodel/spring/AbstractDataContextFactoryBeanDelegate.java
@@ -34,14 +34,14 @@ public abstract class AbstractDataContextFactoryBeanDelegate implements DataCont
     
     protected final Logger logger = LoggerFactory.getLogger(getClass());
 
-    protected Resource getResource(DataContextFactoryBean bean) {
-        final org.springframework.core.io.Resource resource = bean.getResource();
+    protected Resource getResource(DataContextFactoryParameters params) {
+        final org.springframework.core.io.Resource resource = params.getResource();
         if (resource != null) {
             return new SpringResource(resource);
-        } else if (bean.getFilename() != null) {
-            return new FileResource(bean.getFilename());
-        } else if (bean.getUrl() != null) {
-            return new UrlResource(bean.getUrl());
+        } else if (params.getFilename() != null) {
+            return new FileResource(params.getFilename());
+        } else if (params.getUrl() != null) {
+            return new UrlResource(params.getUrl());
         }
         return null;
     }

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/d3b5f9a6/spring/src/main/java/org/apache/metamodel/spring/CouchDbDataContextFactoryBeanDelegate.java
----------------------------------------------------------------------
diff --git a/spring/src/main/java/org/apache/metamodel/spring/CouchDbDataContextFactoryBeanDelegate.java b/spring/src/main/java/org/apache/metamodel/spring/CouchDbDataContextFactoryBeanDelegate.java
index 6410f9c..02182fb 100644
--- a/spring/src/main/java/org/apache/metamodel/spring/CouchDbDataContextFactoryBeanDelegate.java
+++ b/spring/src/main/java/org/apache/metamodel/spring/CouchDbDataContextFactoryBeanDelegate.java
@@ -29,12 +29,12 @@ import org.apache.metamodel.util.SimpleTableDef;
 public class CouchDbDataContextFactoryBeanDelegate extends AbstractDataContextFactoryBeanDelegate {
 
     @Override
-    public DataContext createDataContext(DataContextFactoryBean bean) {
-        String hostname = bean.getHostname();
-        Integer port = bean.getPort();
-        String username = bean.getUsername();
-        String password = bean.getPassword();
-        SimpleTableDef[] tableDefs = bean.getTableDefs();
+    public DataContext createDataContext(DataContextFactoryParameters params) {
+        String hostname = params.getHostname();
+        Integer port = params.getPort();
+        String username = params.getUsername();
+        String password = params.getPassword();
+        SimpleTableDef[] tableDefs = params.getTableDefs();
         return DataContextFactory.createCouchDbDataContext(hostname, port, username, password, tableDefs);
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/d3b5f9a6/spring/src/main/java/org/apache/metamodel/spring/CsvDataContextFactoryBeanDelegate.java
----------------------------------------------------------------------
diff --git a/spring/src/main/java/org/apache/metamodel/spring/CsvDataContextFactoryBeanDelegate.java b/spring/src/main/java/org/apache/metamodel/spring/CsvDataContextFactoryBeanDelegate.java
index baab6d7..f4f30ae 100644
--- a/spring/src/main/java/org/apache/metamodel/spring/CsvDataContextFactoryBeanDelegate.java
+++ b/spring/src/main/java/org/apache/metamodel/spring/CsvDataContextFactoryBeanDelegate.java
@@ -30,15 +30,15 @@ import org.apache.metamodel.util.Resource;
 public class CsvDataContextFactoryBeanDelegate extends AbstractDataContextFactoryBeanDelegate {
 
     @Override
-    public DataContext createDataContext(DataContextFactoryBean bean) {
-        final Resource resource = getResource(bean);
-        final int columnNameLineNumber = getInt(bean.getColumnNameLineNumber(), CsvConfiguration.DEFAULT_COLUMN_NAME_LINE);
-        final String encoding = getString(bean.getEncoding(), FileHelper.DEFAULT_ENCODING);
-        final char separatorChar = getChar(bean.getSeparatorChar(), CsvConfiguration.DEFAULT_SEPARATOR_CHAR);
-        final char quoteChar = getChar(bean.getQuoteChar(), CsvConfiguration.DEFAULT_QUOTE_CHAR);
-        final char escapeChar = getChar(bean.getEscapeChar(), CsvConfiguration.DEFAULT_ESCAPE_CHAR);
-        final boolean failOnInconsistentRowLength = getBoolean(bean.getFailOnInconsistentRowLength(), false);
-        final boolean multilineValues = getBoolean(bean.getMultilineValues(), true);
+    public DataContext createDataContext(DataContextFactoryParameters params) {
+        final Resource resource = getResource(params);
+        final int columnNameLineNumber = getInt(params.getColumnNameLineNumber(), CsvConfiguration.DEFAULT_COLUMN_NAME_LINE);
+        final String encoding = getString(params.getEncoding(), FileHelper.DEFAULT_ENCODING);
+        final char separatorChar = getChar(params.getSeparatorChar(), CsvConfiguration.DEFAULT_SEPARATOR_CHAR);
+        final char quoteChar = getChar(params.getQuoteChar(), CsvConfiguration.DEFAULT_QUOTE_CHAR);
+        final char escapeChar = getChar(params.getEscapeChar(), CsvConfiguration.DEFAULT_ESCAPE_CHAR);
+        final boolean failOnInconsistentRowLength = getBoolean(params.getFailOnInconsistentRowLength(), false);
+        final boolean multilineValues = getBoolean(params.getMultilineValues(), true);
         final CsvConfiguration configuration = new CsvConfiguration(columnNameLineNumber, encoding, separatorChar,
                 quoteChar, escapeChar, failOnInconsistentRowLength, multilineValues);
         return new CsvDataContext(resource, configuration);

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/d3b5f9a6/spring/src/main/java/org/apache/metamodel/spring/DataContextFactoryBean.java
----------------------------------------------------------------------
diff --git a/spring/src/main/java/org/apache/metamodel/spring/DataContextFactoryBean.java b/spring/src/main/java/org/apache/metamodel/spring/DataContextFactoryBean.java
index 143474e..020702c 100644
--- a/spring/src/main/java/org/apache/metamodel/spring/DataContextFactoryBean.java
+++ b/spring/src/main/java/org/apache/metamodel/spring/DataContextFactoryBean.java
@@ -36,7 +36,7 @@ import org.springframework.beans.factory.FactoryBean;
  * objects based on property values that will typically be injected by the
  * Spring configuration.
  */
-public class DataContextFactoryBean implements FactoryBean<DataContext> {
+public class DataContextFactoryBean implements FactoryBean<DataContext>, DataContextFactoryParameters {
 
     private static final Logger logger = LoggerFactory.getLogger(DataContextFactoryBean.class);
 
@@ -206,20 +206,23 @@ public class DataContextFactoryBean implements FactoryBean<DataContext> {
         if (tableDefinitionText == null || tableDefinitionText.trim().isEmpty()) {
             return null;
         }
-        
+
         int startColumnSection = tableDefinitionText.indexOf("(");
         if (startColumnSection == -1) {
-            throw new IllegalArgumentException("Failed to parse table definition: " + tableDefinitionText + ". No start parenthesis found for column section.");
+            throw new IllegalArgumentException("Failed to parse table definition: " + tableDefinitionText
+                    + ". No start parenthesis found for column section.");
         }
-        
+
         int endColumnSection = tableDefinitionText.indexOf(")", startColumnSection);
         if (endColumnSection == -1) {
-            throw new IllegalArgumentException("Failed to parse table definition: " + tableDefinitionText + ". No end parenthesis found for column section.");
+            throw new IllegalArgumentException("Failed to parse table definition: " + tableDefinitionText
+                    + ". No end parenthesis found for column section.");
         }
 
         String tableName = tableDefinitionText.substring(0, startColumnSection).trim();
         if (tableName.isEmpty()) {
-            throw new IllegalArgumentException("Failed to parse table definition: " + tableDefinitionText + ". No table name found.");
+            throw new IllegalArgumentException("Failed to parse table definition: " + tableDefinitionText
+                    + ". No table name found.");
         }
 
         String columnSection = tableDefinitionText.substring(startColumnSection + 1, endColumnSection);
@@ -262,6 +265,7 @@ public class DataContextFactoryBean implements FactoryBean<DataContext> {
         _type = type;
     }
 
+    @Override
     public org.springframework.core.io.Resource getResource() {
         return _resource;
     }
@@ -270,6 +274,7 @@ public class DataContextFactoryBean implements FactoryBean<DataContext> {
         _resource = resource;
     }
 
+    @Override
     public String getFilename() {
         return _filename;
     }
@@ -278,6 +283,7 @@ public class DataContextFactoryBean implements FactoryBean<DataContext> {
         _filename = filename;
     }
 
+    @Override
     public String getUrl() {
         return _url;
     }
@@ -286,6 +292,7 @@ public class DataContextFactoryBean implements FactoryBean<DataContext> {
         _url = url;
     }
 
+    @Override
     public String getColumnNameLineNumber() {
         return _columnNameLineNumber;
     }
@@ -294,6 +301,7 @@ public class DataContextFactoryBean implements FactoryBean<DataContext> {
         _columnNameLineNumber = columnNameLineNumber;
     }
 
+    @Override
     public String getSkipEmptyLines() {
         return _skipEmptyLines;
     }
@@ -302,6 +310,7 @@ public class DataContextFactoryBean implements FactoryBean<DataContext> {
         _skipEmptyLines = skipEmptyLines;
     }
 
+    @Override
     public String getSkipEmptyColumns() {
         return _skipEmptyColumns;
     }
@@ -310,6 +319,7 @@ public class DataContextFactoryBean implements FactoryBean<DataContext> {
         _skipEmptyColumns = skipEmptyColumns;
     }
 
+    @Override
     public String getEncoding() {
         return _encoding;
     }
@@ -318,6 +328,7 @@ public class DataContextFactoryBean implements FactoryBean<DataContext> {
         _encoding = encoding;
     }
 
+    @Override
     public String getSeparatorChar() {
         return _separatorChar;
     }
@@ -326,6 +337,7 @@ public class DataContextFactoryBean implements FactoryBean<DataContext> {
         _separatorChar = separatorChar;
     }
 
+    @Override
     public String getQuoteChar() {
         return _quoteChar;
     }
@@ -334,6 +346,7 @@ public class DataContextFactoryBean implements FactoryBean<DataContext> {
         _quoteChar = quoteChar;
     }
 
+    @Override
     public String getEscapeChar() {
         return _escapeChar;
     }
@@ -342,6 +355,7 @@ public class DataContextFactoryBean implements FactoryBean<DataContext> {
         _escapeChar = escapeChar;
     }
 
+    @Override
     public String getFailOnInconsistentRowLength() {
         return _failOnInconsistentRowLength;
     }
@@ -350,6 +364,7 @@ public class DataContextFactoryBean implements FactoryBean<DataContext> {
         _failOnInconsistentRowLength = failOnInconsistentRowLength;
     }
 
+    @Override
     public String getMultilineValues() {
         return _multilineValues;
     }
@@ -358,6 +373,7 @@ public class DataContextFactoryBean implements FactoryBean<DataContext> {
         _multilineValues = multilineValues;
     }
 
+    @Override
     public TableType[] getTableTypes() {
         return _tableTypes;
     }
@@ -366,6 +382,7 @@ public class DataContextFactoryBean implements FactoryBean<DataContext> {
         _tableTypes = tableTypes;
     }
 
+    @Override
     public String getCatalogName() {
         return _catalogName;
     }
@@ -374,6 +391,7 @@ public class DataContextFactoryBean implements FactoryBean<DataContext> {
         _catalogName = catalogName;
     }
 
+    @Override
     public DataSource getDataSource() {
         return _dataSource;
     }
@@ -382,6 +400,7 @@ public class DataContextFactoryBean implements FactoryBean<DataContext> {
         _dataSource = dataSource;
     }
 
+    @Override
     public String getUsername() {
         return _username;
     }
@@ -390,6 +409,7 @@ public class DataContextFactoryBean implements FactoryBean<DataContext> {
         _username = username;
     }
 
+    @Override
     public String getPassword() {
         return _password;
     }
@@ -398,6 +418,7 @@ public class DataContextFactoryBean implements FactoryBean<DataContext> {
         _password = password;
     }
 
+    @Override
     public String getDriverClassName() {
         return _driverClassName;
     }
@@ -406,6 +427,7 @@ public class DataContextFactoryBean implements FactoryBean<DataContext> {
         _driverClassName = driverClassName;
     }
 
+    @Override
     public String getHostname() {
         return _hostname;
     }
@@ -414,6 +436,7 @@ public class DataContextFactoryBean implements FactoryBean<DataContext> {
         _hostname = hostname;
     }
 
+    @Override
     public Integer getPort() {
         return _port;
     }
@@ -422,6 +445,7 @@ public class DataContextFactoryBean implements FactoryBean<DataContext> {
         _port = port;
     }
 
+    @Override
     public String getDatabaseName() {
         return _databaseName;
     }
@@ -430,6 +454,7 @@ public class DataContextFactoryBean implements FactoryBean<DataContext> {
         _databaseName = databaseName;
     }
 
+    @Override
     public SimpleTableDef[] getTableDefs() {
         return _tableDefs;
     }

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/d3b5f9a6/spring/src/main/java/org/apache/metamodel/spring/DataContextFactoryBeanDelegate.java
----------------------------------------------------------------------
diff --git a/spring/src/main/java/org/apache/metamodel/spring/DataContextFactoryBeanDelegate.java b/spring/src/main/java/org/apache/metamodel/spring/DataContextFactoryBeanDelegate.java
index 625870f..5183877 100644
--- a/spring/src/main/java/org/apache/metamodel/spring/DataContextFactoryBeanDelegate.java
+++ b/spring/src/main/java/org/apache/metamodel/spring/DataContextFactoryBeanDelegate.java
@@ -36,11 +36,11 @@ public interface DataContextFactoryBeanDelegate {
     /**
      * Creates the particular {@link DataContext} object.
      * 
-     * @param bean
+     * @param params
      *            the {@link DataContextFactoryBean} with properties set as per
      *            the spring configuration.
      * @return a non-null {@link DataContext} object, built with the properties
      *         set on the {@link DataContextFactoryBean}
      */
-    public DataContext createDataContext(DataContextFactoryBean bean);
+    public DataContext createDataContext(DataContextFactoryParameters params);
 }

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/d3b5f9a6/spring/src/main/java/org/apache/metamodel/spring/DataContextFactoryParameters.java
----------------------------------------------------------------------
diff --git a/spring/src/main/java/org/apache/metamodel/spring/DataContextFactoryParameters.java b/spring/src/main/java/org/apache/metamodel/spring/DataContextFactoryParameters.java
new file mode 100644
index 0000000..3209812
--- /dev/null
+++ b/spring/src/main/java/org/apache/metamodel/spring/DataContextFactoryParameters.java
@@ -0,0 +1,79 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.metamodel.spring;
+
+import javax.sql.DataSource;
+
+import org.apache.metamodel.DataContext;
+import org.apache.metamodel.schema.TableType;
+import org.apache.metamodel.util.SimpleTableDef;
+
+/**
+ * Represents parameters used by a factory {@link DataContext} objects.
+ * 
+ * All getters in this interface may return null, since the parameters may be
+ * originating from an external configuration file or similar means.
+ */
+public interface DataContextFactoryParameters {
+
+    public abstract org.springframework.core.io.Resource getResource();
+
+    public abstract String getFilename();
+
+    public abstract String getUrl();
+
+    public abstract String getColumnNameLineNumber();
+
+    public abstract String getSkipEmptyLines();
+
+    public abstract String getSkipEmptyColumns();
+
+    public abstract String getEncoding();
+
+    public abstract String getSeparatorChar();
+
+    public abstract String getQuoteChar();
+
+    public abstract String getEscapeChar();
+
+    public abstract String getFailOnInconsistentRowLength();
+
+    public abstract String getMultilineValues();
+
+    public abstract TableType[] getTableTypes();
+
+    public abstract String getCatalogName();
+
+    public abstract DataSource getDataSource();
+
+    public abstract String getUsername();
+
+    public abstract String getPassword();
+
+    public abstract String getDriverClassName();
+
+    public abstract String getHostname();
+
+    public abstract Integer getPort();
+
+    public abstract String getDatabaseName();
+
+    public abstract SimpleTableDef[] getTableDefs();
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/d3b5f9a6/spring/src/main/java/org/apache/metamodel/spring/ExcelDataContextFactoryBeanDelegate.java
----------------------------------------------------------------------
diff --git a/spring/src/main/java/org/apache/metamodel/spring/ExcelDataContextFactoryBeanDelegate.java b/spring/src/main/java/org/apache/metamodel/spring/ExcelDataContextFactoryBeanDelegate.java
index f6d7d9b..9b7dd06 100644
--- a/spring/src/main/java/org/apache/metamodel/spring/ExcelDataContextFactoryBeanDelegate.java
+++ b/spring/src/main/java/org/apache/metamodel/spring/ExcelDataContextFactoryBeanDelegate.java
@@ -29,12 +29,12 @@ import org.apache.metamodel.util.Resource;
 public class ExcelDataContextFactoryBeanDelegate extends AbstractDataContextFactoryBeanDelegate {
 
     @Override
-    public DataContext createDataContext(DataContextFactoryBean bean) {
-        final Resource resource = getResource(bean);
-        final int columnNameLineNumber = getInt(bean.getColumnNameLineNumber(),
+    public DataContext createDataContext(DataContextFactoryParameters params) {
+        final Resource resource = getResource(params);
+        final int columnNameLineNumber = getInt(params.getColumnNameLineNumber(),
                 ExcelConfiguration.DEFAULT_COLUMN_NAME_LINE);
-        final boolean skipEmptyLines = getBoolean(bean.getSkipEmptyLines(), true);
-        final boolean skipEmptyColumns = getBoolean(bean.getSkipEmptyColumns(), false);
+        final boolean skipEmptyLines = getBoolean(params.getSkipEmptyLines(), true);
+        final boolean skipEmptyColumns = getBoolean(params.getSkipEmptyColumns(), false);
         final ExcelConfiguration configuration = new ExcelConfiguration(columnNameLineNumber, skipEmptyLines,
                 skipEmptyColumns);
         return new ExcelDataContext(resource, configuration);

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/d3b5f9a6/spring/src/main/java/org/apache/metamodel/spring/JdbcDataContextFactoryBeanDelegate.java
----------------------------------------------------------------------
diff --git a/spring/src/main/java/org/apache/metamodel/spring/JdbcDataContextFactoryBeanDelegate.java b/spring/src/main/java/org/apache/metamodel/spring/JdbcDataContextFactoryBeanDelegate.java
index e87700d..05c551c 100644
--- a/spring/src/main/java/org/apache/metamodel/spring/JdbcDataContextFactoryBeanDelegate.java
+++ b/spring/src/main/java/org/apache/metamodel/spring/JdbcDataContextFactoryBeanDelegate.java
@@ -33,16 +33,16 @@ import org.apache.metamodel.schema.TableType;
 public class JdbcDataContextFactoryBeanDelegate extends AbstractDataContextFactoryBeanDelegate {
 
     @Override
-    public DataContext createDataContext(DataContextFactoryBean bean) {
-        TableType[] tableTypes = bean.getTableTypes();
+    public DataContext createDataContext(DataContextFactoryParameters params) {
+        TableType[] tableTypes = params.getTableTypes();
         if (tableTypes == null) {
             tableTypes = TableType.DEFAULT_TABLE_TYPES;
         }
 
-        final DataSource dataSource = bean.getDataSource();
+        final DataSource dataSource = params.getDataSource();
 
         if (dataSource == null) {
-            final String driverClassName = getString(bean.getDriverClassName(), null);
+            final String driverClassName = getString(params.getDriverClassName(), null);
             if (driverClassName != null) {
                 try {
                     Class.forName(driverClassName);
@@ -51,23 +51,23 @@ public class JdbcDataContextFactoryBeanDelegate extends AbstractDataContextFacto
                 }
             }
 
-            final String url = bean.getUrl();
+            final String url = params.getUrl();
             final Connection connection;
             try {
-                if (bean.getUsername() == null && bean.getPassword() == null) {
+                if (params.getUsername() == null && params.getPassword() == null) {
                     connection = DriverManager.getConnection(url);
                 } else {
-                    connection = DriverManager.getConnection(url, bean.getUsername(), bean.getPassword());
+                    connection = DriverManager.getConnection(url, params.getUsername(), params.getPassword());
                 }
             } catch (Exception e) {
                 logger.error("Failed to get JDBC connection using URL: " + url, e);
                 throw new IllegalStateException("Failed to get JDBC connection", e);
             }
 
-            return new JdbcDataContext(connection, tableTypes, bean.getCatalogName());
+            return new JdbcDataContext(connection, tableTypes, params.getCatalogName());
         }
 
-        return new JdbcDataContext(dataSource, tableTypes, bean.getCatalogName());
+        return new JdbcDataContext(dataSource, tableTypes, params.getCatalogName());
     }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/d3b5f9a6/spring/src/main/java/org/apache/metamodel/spring/MongoDbDataContextFactoryBeanDelegate.java
----------------------------------------------------------------------
diff --git a/spring/src/main/java/org/apache/metamodel/spring/MongoDbDataContextFactoryBeanDelegate.java b/spring/src/main/java/org/apache/metamodel/spring/MongoDbDataContextFactoryBeanDelegate.java
index b3cd779..9bc8279 100644
--- a/spring/src/main/java/org/apache/metamodel/spring/MongoDbDataContextFactoryBeanDelegate.java
+++ b/spring/src/main/java/org/apache/metamodel/spring/MongoDbDataContextFactoryBeanDelegate.java
@@ -29,13 +29,13 @@ import org.apache.metamodel.util.SimpleTableDef;
 public class MongoDbDataContextFactoryBeanDelegate extends AbstractDataContextFactoryBeanDelegate {
 
     @Override
-    public DataContext createDataContext(DataContextFactoryBean bean) {
-        String hostname = bean.getHostname();
-        Integer port = bean.getPort();
-        String databaseName = bean.getDatabaseName();
-        String username = bean.getUsername();
-        char[] password = bean.getPassword().toCharArray();
-        SimpleTableDef[] tableDefs = bean.getTableDefs();
+    public DataContext createDataContext(DataContextFactoryParameters params) {
+        String hostname = params.getHostname();
+        Integer port = params.getPort();
+        String databaseName = params.getDatabaseName();
+        String username = params.getUsername();
+        char[] password = params.getPassword().toCharArray();
+        SimpleTableDef[] tableDefs = params.getTableDefs();
         return DataContextFactory.createMongoDbDataContext(hostname, port, databaseName, username, password, tableDefs);
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/d3b5f9a6/spring/src/test/java/org/apache/metamodel/spring/MockDataContextFactoryBeanDelegate.java
----------------------------------------------------------------------
diff --git a/spring/src/test/java/org/apache/metamodel/spring/MockDataContextFactoryBeanDelegate.java b/spring/src/test/java/org/apache/metamodel/spring/MockDataContextFactoryBeanDelegate.java
index 4d97be2..e668320 100644
--- a/spring/src/test/java/org/apache/metamodel/spring/MockDataContextFactoryBeanDelegate.java
+++ b/spring/src/test/java/org/apache/metamodel/spring/MockDataContextFactoryBeanDelegate.java
@@ -32,7 +32,7 @@ import org.apache.metamodel.pojo.TableDataProvider;
 public class MockDataContextFactoryBeanDelegate implements DataContextFactoryBeanDelegate {
 
     @Override
-    public DataContext createDataContext(DataContextFactoryBean bean) {
+    public DataContext createDataContext(DataContextFactoryParameters bean) {
         String username = bean.getUsername();
         return new PojoDataContext(username, new ArrayList<TableDataProvider<?>>());
     }