[gooddata-cl] Fix build
Lubomir Rintel
lkundrak at fedoraproject.org
Thu Jul 11 17:04:51 UTC 2013
commit a6e8c1c8e6c6376b09d287bded32eaef8fcaef0c
Author: Lubomir Rintel <lubo.rintel at gooddata.com>
Date: Thu Jul 11 19:01:56 2013 +0200
Fix build
0001-Drop-GA-connector.patch | 665 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 665 insertions(+), 0 deletions(-)
---
diff --git a/0001-Drop-GA-connector.patch b/0001-Drop-GA-connector.patch
new file mode 100644
index 0000000..38a71e8
--- /dev/null
+++ b/0001-Drop-GA-connector.patch
@@ -0,0 +1,665 @@
+From bf282d52f5944838e4d1830efa51be075042c9a2 Mon Sep 17 00:00:00 2001
+From: Lubomir Rintel <lkundrak at v3.sk>
+Date: Thu, 11 Jul 2013 18:20:31 +0200
+Subject: [PATCH] Drop GA connector
+
+---
+ .../main/java/com/gooddata/processor/GdcDI.java | 1 -
+ connector/pom.xml | 15 -
+ .../java/com/gooddata/connector/GaConnector.java | 349 ---------------------
+ .../com/gooddata/google/analytics/FeedDumper.java | 130 --------
+ .../com/gooddata/google/analytics/GaQuery.java | 51 ---
+ pom.xml | 15 -
+ .../main/java/com/gooddata/web/WebInterface.java | 7 +-
+ 7 files changed, 3 insertions(+), 565 deletions(-)
+ delete mode 100644 connector/src/main/java/com/gooddata/connector/GaConnector.java
+ delete mode 100644 connector/src/main/java/com/gooddata/google/analytics/FeedDumper.java
+ delete mode 100644 connector/src/main/java/com/gooddata/google/analytics/GaQuery.java
+
+diff --git a/cli/src/main/java/com/gooddata/processor/GdcDI.java b/cli/src/main/java/com/gooddata/processor/GdcDI.java
+index d4f6633..17ddcd7 100644
+--- a/cli/src/main/java/com/gooddata/processor/GdcDI.java
++++ b/cli/src/main/java/com/gooddata/processor/GdcDI.java
+@@ -1456,7 +1456,6 @@ public class GdcDI implements Executor {
+ private Connector[] instantiateConnectors() throws IOException {
+ return new Connector[]{
+ CsvConnector.createConnector(),
+- GaConnector.createConnector(),
+ SfdcConnector.createConnector(),
+ JdbcConnector.createConnector(),
+ PtConnector.createConnector(),
+diff --git a/connector/pom.xml b/connector/pom.xml
+index ec37afb..40db2cc 100644
+--- a/connector/pom.xml
++++ b/connector/pom.xml
+@@ -56,21 +56,6 @@
+ </dependency>
+ <!-- 3rd party dependencies -->
+ <dependency>
+- <groupId>com.google.gdata</groupId>
+- <artifactId>gdata-java-client</artifactId>
+- <version>1.40.0</version>
+- </dependency>
+- <dependency>
+- <groupId>com.google.gdata</groupId>
+- <artifactId>gdata-java-core</artifactId>
+- <version>1.40.0</version>
+- </dependency>
+- <dependency>
+- <groupId>com.google.gdata</groupId>
+- <artifactId>gdata-java-analytics</artifactId>
+- <version>1.40.0</version>
+- </dependency>
+- <dependency>
+ <groupId>net.sf.opencsv</groupId>
+ <artifactId>opencsv</artifactId>
+ </dependency>
+diff --git a/connector/src/main/java/com/gooddata/connector/GaConnector.java b/connector/src/main/java/com/gooddata/connector/GaConnector.java
+deleted file mode 100644
+index 43c9102..0000000
+--- a/connector/src/main/java/com/gooddata/connector/GaConnector.java
++++ /dev/null
+@@ -1,349 +0,0 @@
+-/*
+- * Copyright (c) 2009, GoodData Corporation. All rights reserved.
+- *
+- * Redistribution and use in source and binary forms, with or without modification, are permitted provided
+- * that the following conditions are met:
+- *
+- * * Redistributions of source code must retain the above copyright notice, this list of conditions and
+- * the following disclaimer.
+- * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions
+- * and the following disclaimer in the documentation and/or other materials provided with the distribution.
+- * * Neither the name of the GoodData Corporation nor the names of its contributors may be used to endorse
+- * or promote products derived from this software without specific prior written permission.
+- *
+- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+- */
+-
+-package com.gooddata.connector;
+-
+-import com.gooddata.exception.InternalErrorException;
+-import com.gooddata.exception.InvalidArgumentException;
+-import com.gooddata.exception.InvalidCommandException;
+-import com.gooddata.exception.ProcessingException;
+-import com.gooddata.google.analytics.FeedDumper;
+-import com.gooddata.google.analytics.GaQuery;
+-import com.gooddata.modeling.model.SourceColumn;
+-import com.gooddata.modeling.model.SourceSchema;
+-import com.gooddata.processor.CliParams;
+-import com.gooddata.processor.Command;
+-import com.gooddata.processor.ProcessingContext;
+-import com.gooddata.transform.Transformer;
+-import com.gooddata.util.CSVWriter;
+-import com.gooddata.util.FileUtil;
+-import com.google.gdata.client.ClientLoginAccountType;
+-import com.google.gdata.client.analytics.AnalyticsService;
+-import com.google.gdata.data.analytics.DataFeed;
+-import com.google.gdata.util.AuthenticationException;
+-import com.google.gdata.util.ServiceException;
+-import org.apache.log4j.Logger;
+-
+-import java.io.File;
+-import java.io.IOException;
+-import java.net.MalformedURLException;
+-
+-/**
+- * GoodData Google Analytics Connector
+- *
+- * @author zd <zd at gooddata.com>
+- * @version 1.0
+- */
+-public class GaConnector extends AbstractConnector implements Connector {
+-
+- public static final String GA_DATE = "ga:date";
+-
+- private static Logger l = Logger.getLogger(GaConnector.class);
+-
+- private static final String APP_NAME = "gdc-ga-client";
+-
+- private static final int GOOGLE_ANALYTICS_CHUNK = 9900;
+- private String googleAnalyticsUsername;
+- private String googleAnalyticsPassword;
+- private String googleAnalyticsToken;
+- private GaQuery googleAnalyticsQuery;
+-
+- /**
+- * Creates a new Google Analytics Connector
+- */
+- protected GaConnector() {
+- }
+-
+- /**
+- * Creates a new Google Analytics Connector
+- *
+- * @return a new instance of the GA connector
+- */
+- public static GaConnector createConnector() {
+- return new GaConnector();
+- }
+-
+- /**
+- * Saves a template of the config file
+- *
+- * @param name the new config file name
+- * @param configFileName the new config file name
+- * @param gQuery the Google Analytics query
+- * @throws com.gooddata.exception.InvalidArgumentException
+- * if there is a problem with arguments
+- * @throws IOException if there is a problem with writing the config file
+- */
+- public static void saveConfigTemplate(String name, String configFileName, GaQuery gQuery)
+- throws IOException {
+- l.debug("Saving GA config template.");
+- String dims = gQuery.getDimensions();
+- String mtrs = gQuery.getMetrics();
+- SourceSchema s = SourceSchema.createSchema(name);
+- SourceColumn cp = new SourceColumn("id", SourceColumn.LDM_TYPE_CONNECTION_POINT, "id");
+- s.addColumn(cp);
+- cp = new SourceColumn("profileId", SourceColumn.LDM_TYPE_ATTRIBUTE, "profileId");
+- s.addColumn(cp);
+- if (dims != null && dims.length() > 0) {
+- String[] dimensions = dims.split("\\|");
+- for (String dim : dimensions) {
+- // remove the "ga:"
+- if (dim != null && dim.length() > 3) {
+- String d = dim.substring(3);
+- if (GA_DATE.equals(dim)) {
+- SourceColumn sc = new SourceColumn(d, SourceColumn.LDM_TYPE_DATE, d);
+- sc.setFormat("yyyy-MM-dd");
+- s.addColumn(sc);
+- } else {
+- SourceColumn sc = new SourceColumn(d, SourceColumn.LDM_TYPE_ATTRIBUTE, d);
+- s.addColumn(sc);
+- }
+- } else {
+- l.debug("Invalid dimension name '" + dim + "'");
+- throw new InvalidArgumentException("Invalid dimension name '" + dim + "'");
+- }
+- }
+- } else {
+- l.debug("Please specify Google Analytics dimensions separated by comma.");
+- throw new InvalidArgumentException("Please specify Google Analytics dimensions separated by comma.");
+- }
+- if (mtrs != null && mtrs.length() > 0) {
+- String[] metrics = mtrs.split("\\|");
+- for (String mtr : metrics) {
+- // remove the "ga:"
+- if (mtr != null && mtr.length() > 3) {
+- String m = mtr.substring(3);
+- SourceColumn sc = new SourceColumn(m, SourceColumn.LDM_TYPE_FACT, m);
+- s.addColumn(sc);
+- } else {
+- l.debug("Invalid dimension name '" + mtr + "'");
+- throw new InvalidArgumentException("Invalid metric name '" + mtr + "'");
+- }
+- }
+- } else {
+- l.debug("Please specify Google Analytics metrics separated by comma.");
+- throw new InvalidArgumentException("Please specify Google Analytics metrics separated by comma.");
+- }
+- s.writeConfig(new File(configFileName));
+- l.debug("Saved GA config template.");
+- }
+-
+- /**
+- * {@inheritDoc}
+- */
+- public void extract(String file, final boolean transform) throws IOException {
+- try {
+- AnalyticsService as = new AnalyticsService(APP_NAME);
+- if (googleAnalyticsToken != null && googleAnalyticsToken.length() > 0) {
+- as.setAuthSubToken(googleAnalyticsToken);
+- } else if (googleAnalyticsUsername != null && googleAnalyticsUsername.length() > 0 &&
+- googleAnalyticsPassword != null && googleAnalyticsPassword.length() > 0) {
+- as.setUserCredentials(googleAnalyticsUsername, googleAnalyticsPassword, ClientLoginAccountType.GOOGLE);
+- } else {
+- throw new InvalidCommandException("The UseGoogleAnalytics command requires either GA token or " +
+- "username and password!");
+- }
+- File dataFile = new File(file);
+- GaQuery gaq = getGoogleAnalyticsQuery();
+- gaq.setMaxResults(GOOGLE_ANALYTICS_CHUNK);
+- int cnt = 1;
+-
+- CSVWriter cw = FileUtil.createUtf8CsvWriter(dataFile);
+- Transformer t = Transformer.create(schema);
+-
+- String[] header = t.getHeader(transform);
+- cw.writeNext(header);
+-
+- for (int startIndex = 1; cnt > 0; startIndex += cnt + 1) {
+- gaq.setStartIndex(startIndex);
+- DataFeed feed = as.getFeed(gaq.getUrl(), DataFeed.class);
+- l.debug("Retrieving GA data from index=" + startIndex);
+- cnt = FeedDumper.dump(cw, feed, gaq, t, transform);
+- l.debug("Retrieved " + cnt + " entries.");
+- }
+- cw.close();
+- } catch (AuthenticationException e) {
+- throw new InternalErrorException(e);
+- } catch (ServiceException e) {
+- throw new InternalErrorException(e);
+- }
+- }
+-
+-
+- /**
+- * Google Analytics username getter
+- *
+- * @return Google Analytics username
+- */
+- public String getGoogleAnalyticsUsername() {
+- return googleAnalyticsUsername;
+- }
+-
+- /**
+- * Google Analytics username setter
+- *
+- * @param googleAnalyticsUsername Google Analytics username
+- */
+- public void setGoogleAnalyticsUsername(String googleAnalyticsUsername) {
+- this.googleAnalyticsUsername = googleAnalyticsUsername;
+- }
+-
+- /**
+- * Google Analytics password getter
+- *
+- * @return Google Analytics password
+- */
+- public String getGoogleAnalyticsPassword() {
+- return googleAnalyticsPassword;
+- }
+-
+- /**
+- * Google Analytics password setter
+- *
+- * @param googleAnalyticsPassword Google Analytics password
+- */
+- public void setGoogleAnalyticsPassword(String googleAnalyticsPassword) {
+- this.googleAnalyticsPassword = googleAnalyticsPassword;
+- }
+-
+- /**
+- * Google Analytics query getter
+- *
+- * @return Google Analytics query
+- */
+- public GaQuery getGoogleAnalyticsQuery() {
+- return googleAnalyticsQuery;
+- }
+-
+- /**
+- * Google Analytics query setter
+- *
+- * @param googleAnalyticsQuery Google Analytics query
+- */
+- public void setGoogleAnalyticsQuery(GaQuery googleAnalyticsQuery) {
+- this.googleAnalyticsQuery = googleAnalyticsQuery;
+- }
+-
+- /**
+- * {@inheritDoc}
+- */
+- public boolean processCommand(Command c, CliParams cli, ProcessingContext ctx) throws ProcessingException {
+- l.debug("Processing command " + c.getCommand());
+- try {
+- if (c.match("GenerateGoogleAnalyticsConfig")) {
+- generateGAConfig(c, cli, ctx);
+- } else if (c.match("UseGoogleAnalytics")) {
+- loadGA(c, cli, ctx);
+- } else {
+- l.debug("No match passing the command " + c.getCommand() + " further.");
+- return super.processCommand(c, cli, ctx);
+- }
+- } catch (IOException e) {
+- throw new ProcessingException(e);
+- }
+- l.debug("Processed command " + c.getCommand());
+- return true;
+- }
+-
+- /**
+- * Loads new GA data command processor
+- *
+- * @param c command
+- * @param p command line arguments
+- * @param ctx current processing context
+- * @throws IOException in case of IO issues
+- */
+- private void loadGA(Command c, CliParams p, ProcessingContext ctx) throws IOException {
+- GaQuery gq;
+- try {
+- gq = new GaQuery();
+- } catch (MalformedURLException e) {
+- throw new IllegalArgumentException(e.getMessage());
+- }
+- String configFile = c.getParamMandatory("configFile");
+- String usr = c.getParam("username");
+- String psw = c.getParam("password");
+- String token = c.getParam("token");
+- String id = c.getParamMandatory("profileId");
+- File conf = FileUtil.getFile(configFile);
+- initSchema(conf.getAbsolutePath());
+- gq.setIds(id);
+- if (token != null && token.length() > 0) {
+- setGoogleAnalyticsToken(token);
+- } else if (usr != null && usr.length() > 0 &&
+- psw != null && psw.length() > 0) {
+- setGoogleAnalyticsUsername(usr);
+- setGoogleAnalyticsPassword(psw);
+- } else {
+- throw new InvalidCommandException("The UseGoogleAnalytics command requires either GA token or " +
+- "username and password!");
+- }
+- setGoogleAnalyticsQuery(gq);
+- gq.setDimensions(c.getParamMandatory("dimensions").replace("|", ","));
+- gq.setMetrics(c.getParamMandatory("metrics").replace("|", ","));
+- gq.setStartDate(c.getParamMandatory("startDate"));
+- gq.setEndDate(c.getParamMandatory("endDate"));
+- if (c.checkParam("filters"))
+- gq.setFilters(c.getParam("filters"));
+- c.paramsProcessed();
+-
+- // sets the current connector
+- ctx.setConnector(this);
+- setProjectId(ctx);
+- l.info("Google Analytics Connector successfully loaded (id: " + id + ").");
+- }
+-
+- /**
+- * Generate GA config command processor
+- *
+- * @param c command
+- * @param p command line arguments
+- * @param ctx current processing context
+- * @throws IOException in case of IO issues
+- */
+- private void generateGAConfig(Command c, CliParams p, ProcessingContext ctx) throws IOException {
+- String configFile = c.getParamMandatory("configFile");
+- String name = c.getParamMandatory("name");
+- String dimensions = c.getParamMandatory("dimensions");
+- String metrics = c.getParamMandatory("metrics");
+- c.paramsProcessed();
+-
+- GaQuery gq;
+- try {
+- gq = new GaQuery();
+- } catch (MalformedURLException e) {
+- throw new IllegalArgumentException(e.getMessage());
+- }
+- gq.setDimensions(dimensions);
+- gq.setMetrics(metrics);
+- GaConnector.saveConfigTemplate(name, configFile, gq);
+- l.info("Google Analytics Connector configuration successfully generated. See config file: " + configFile);
+- }
+-
+- public String getGoogleAnalyticsToken() {
+- return googleAnalyticsToken;
+- }
+-
+- public void setGoogleAnalyticsToken(String googleAnalyticsToken) {
+- this.googleAnalyticsToken = googleAnalyticsToken;
+- }
+-}
+diff --git a/connector/src/main/java/com/gooddata/google/analytics/FeedDumper.java b/connector/src/main/java/com/gooddata/google/analytics/FeedDumper.java
+deleted file mode 100644
+index 2cc1618..0000000
+--- a/connector/src/main/java/com/gooddata/google/analytics/FeedDumper.java
++++ /dev/null
+@@ -1,130 +0,0 @@
+-/*
+- * Copyright (c) 2009, GoodData Corporation. All rights reserved.
+- *
+- * Redistribution and use in source and binary forms, with or without modification, are permitted provided
+- * that the following conditions are met:
+- *
+- * * Redistributions of source code must retain the above copyright notice, this list of conditions and
+- * the following disclaimer.
+- * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions
+- * and the following disclaimer in the documentation and/or other materials provided with the distribution.
+- * * Neither the name of the GoodData Corporation nor the names of its contributors may be used to endorse
+- * or promote products derived from this software without specific prior written permission.
+- *
+- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+- */
+-
+-package com.gooddata.google.analytics;
+-
+-import com.gooddata.connector.AbstractConnector;
+-import com.gooddata.connector.GaConnector;
+-import com.gooddata.exception.InvalidParameterException;
+-import com.gooddata.transform.Transformer;
+-import com.gooddata.util.CSVWriter;
+-import com.gooddata.util.DateUtil;
+-import com.google.gdata.data.analytics.DataEntry;
+-import com.google.gdata.data.analytics.DataFeed;
+-import com.google.gdata.data.analytics.Dimension;
+-import com.google.gdata.data.analytics.Metric;
+-import org.apache.log4j.Logger;
+-import org.joda.time.DateTime;
+-import org.joda.time.format.DateTimeFormatter;
+-
+-import java.io.IOException;
+-import java.util.ArrayList;
+-import java.util.List;
+-
+-/**
+- * Google feed dumper dumps the Google result data to CSV
+- *
+- * @author ZD <zd at gooddata.com>
+- * @version 1.0
+- */
+-public class FeedDumper {
+-
+- private static final String UNKNOWN_DATE = "(other)";
+-
+- private static final String IN_FMT = "yyyyMMdd";
+- private static final String OUT_FMT = "yyyy-MM-dd";
+-
+- private static Logger l = Logger.getLogger(FeedDumper.class);
+-
+- /**
+- * Dupmps the gdata feed to CSV
+- *
+- * @param cw CSVWriter
+- * @param feed Google feed
+- * @param gaq Google Analytics Query
+- * @param t Transformer
+- * @param transform perform transformations?
+- * @throws IOException in case of an IO problem
+- */
+- public static int dump(CSVWriter cw, DataFeed feed, GaQuery gaq, Transformer t, boolean transform) throws IOException {
+- l.debug("Dumping GA feed.");
+- String profileId = gaq.getIds();
+- if (profileId == null || profileId.length() <= 0)
+- throw new InvalidParameterException("Empty Google Analytics profile ID in query.");
+- List<DataEntry> entries = feed.getEntries();
+- List<Dimension> dimensions = null;
+- List<String> dimensionNames = new ArrayList<String>();
+- List<Metric> metrics = null;
+-
+- if (!entries.isEmpty()) {
+- DataEntry singleEntry = entries.get(0);
+- dimensions = singleEntry.getDimensions();
+- metrics = singleEntry.getMetrics();
+- } else
+- return 0;
+-
+- final List<String> headers = new ArrayList<String>();
+- for (Dimension dimension : dimensions) {
+- headers.add(dimension.getName());
+- dimensionNames.add(dimension.getName());
+- }
+- for (Metric metric : metrics) {
+- headers.add(metric.getName());
+- }
+-
+- final DateTimeFormatter inFmt = DateUtil.getDateFormatter(IN_FMT, false);
+- final DateTimeFormatter outFmt = DateUtil.getDateFormatter(OUT_FMT, false);
+- for (DataEntry entry : entries) {
+- final List<String> row = new ArrayList<String>();
+- for (String dataName : headers) {
+- final String valueIn = entry.stringValueOf(dataName);
+- String valueOut;
+- if (GaConnector.GA_DATE.equalsIgnoreCase(dataName)) {
+- if (valueIn == null || valueIn.length() != 8 || UNKNOWN_DATE.equals(valueIn)) {
+- valueOut = "";
+- l.debug("Invalid date value '" + valueIn + "'");
+- } else {
+- try {
+- DateTime dt = inFmt.parseDateTime(valueIn);
+- valueOut = outFmt.print(dt);
+- } catch (IllegalArgumentException e) {
+- valueOut = "";
+- l.debug("Invalid date value '" + valueIn + "'");
+- }
+- }
+- } else {
+- valueOut = valueIn;
+- }
+- row.add(valueOut);
+- }
+- row.add(0, profileId);
+- String[] r = row.toArray(new String[]{});
+- if (transform)
+- r = t.transformRow(r, AbstractConnector.DATE_LENGTH_UNRESTRICTED);
+- cw.writeNext(r);
+- }
+- l.debug("Dumped " + entries.size() + " rows from GA feed.");
+- return entries.size();
+- }
+-
+-}
+\ No newline at end of file
+diff --git a/connector/src/main/java/com/gooddata/google/analytics/GaQuery.java b/connector/src/main/java/com/gooddata/google/analytics/GaQuery.java
+deleted file mode 100644
+index ac735ec..0000000
+--- a/connector/src/main/java/com/gooddata/google/analytics/GaQuery.java
++++ /dev/null
+@@ -1,51 +0,0 @@
+-/*
+- * Copyright (c) 2009, GoodData Corporation. All rights reserved.
+- *
+- * Redistribution and use in source and binary forms, with or without modification, are permitted provided
+- * that the following conditions are met:
+- *
+- * * Redistributions of source code must retain the above copyright notice, this list of conditions and
+- * the following disclaimer.
+- * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions
+- * and the following disclaimer in the documentation and/or other materials provided with the distribution.
+- * * Neither the name of the GoodData Corporation nor the names of its contributors may be used to endorse
+- * or promote products derived from this software without specific prior written permission.
+- *
+- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+- */
+-
+-package com.gooddata.google.analytics;
+-
+-import com.google.gdata.client.analytics.DataQuery;
+-
+-import java.net.MalformedURLException;
+-import java.net.URL;
+-
+-/**
+- * Google analytics query
+- *
+- * @author zd <zd at gooddata.com>
+- * @version 1.0
+- */
+-public class GaQuery extends DataQuery {
+-
+- // GA API URL
+- private static final String DATA_QUERY_URL = "https://www.google.com/analytics/feeds/data";
+-
+- /**
+- * Constructor
+- *
+- * @throws MalformedURLException internal error
+- */
+- public GaQuery() throws MalformedURLException {
+- super(new URL(DATA_QUERY_URL));
+- }
+-
+-}
+diff --git a/pom.xml b/pom.xml
+index f377184..605934c 100755
+--- a/pom.xml
++++ b/pom.xml
+@@ -218,21 +218,6 @@
+ </exclusions>
+ </dependency>
+ <dependency>
+- <groupId>com.google.gdata</groupId>
+- <artifactId>gdata-java-client</artifactId>
+- <version>1.40.0</version>
+- </dependency>
+- <dependency>
+- <groupId>com.google.gdata</groupId>
+- <artifactId>gdata-java-core</artifactId>
+- <version>1.40.0</version>
+- </dependency>
+- <dependency>
+- <groupId>com.google.gdata</groupId>
+- <artifactId>gdata-java-analytics</artifactId>
+- <version>1.40.0</version>
+- </dependency>
+- <dependency>
+ <groupId>net.sf.opencsv</groupId>
+ <artifactId>opencsv</artifactId>
+ <version>2.1</version>
+diff --git a/web/src/main/java/com/gooddata/web/WebInterface.java b/web/src/main/java/com/gooddata/web/WebInterface.java
+index e378293..467efa8 100644
+--- a/web/src/main/java/com/gooddata/web/WebInterface.java
++++ b/web/src/main/java/com/gooddata/web/WebInterface.java
+@@ -25,10 +25,9 @@ package com.gooddata.web;
+
+ import com.gooddata.Constants;
+ import com.gooddata.util.FileUtil;
+-import com.google.gdata.util.common.util.Base64;
+-import com.google.gdata.util.common.util.Base64DecoderException;
+ import net.sf.json.JSONObject;
+ import org.apache.commons.codec.digest.DigestUtils;
++import org.apache.commons.codec.binary.Base64;
+ import org.joda.time.DateTime;
+ import org.joda.time.format.DateTimeFormat;
+ import org.joda.time.format.DateTimeFormatter;
+@@ -242,12 +241,12 @@ public class WebInterface extends HttpServlet {
+ if (base64 != null) {
+ String content = base64.split("\\.")[1];
+ try {
+- String decodedContent = new String(Base64.decodeWebSafe(content));
++ String decodedContent = new String(new Base64(true).decodeBase64(content));
+ JSONObject json = JSONObject.fromObject(decodedContent);
+ if (json.containsKey("oauth_token"))
+ token = json.getString("oauth_token");
+ debug("Extracting token: token=" + token);
+- } catch (Base64DecoderException e) {
++ } catch (IllegalArgumentException e) {
+ throw new IOException(e.getMessage());
+ }
+ }
+--
+1.8.3.1
+
More information about the scm-commits
mailing list