[sonar] Port to current guava
Michael Šimáček
msimacek at fedoraproject.org
Thu Mar 19 16:26:41 UTC 2015
commit a74db553c9df197199d3121de822e6a4c3f82827
Author: Michael Simacek <msimacek at redhat.com>
Date: Thu Mar 19 17:24:41 2015 +0100
Port to current guava
0001-Port-to-guava-16.patch | 85 ----------
...le.patch => 0001-Remove-oracle-DB-support.patch | 24 ++-
0002-Port-to-guava-18.patch | 175 +++++++++++++++++++++
...tion.patch => 0003-Never-thrown-exception.patch | 6 +-
sonar.spec | 13 +-
5 files changed, 205 insertions(+), 98 deletions(-)
---
diff --git a/sonar-3.2-remove-oracle.patch b/0001-Remove-oracle-DB-support.patch
similarity index 59%
rename from sonar-3.2-remove-oracle.patch
rename to 0001-Remove-oracle-DB-support.patch
index 605a880..fbd0a8c 100644
--- a/sonar-3.2-remove-oracle.patch
+++ b/0001-Remove-oracle-DB-support.patch
@@ -1,6 +1,17 @@
---- sonar-core/src/test/java/org/sonar/core/persistence/DatabaseCommands.java 2012-08-06 08:44:37.000000000 +0200
-+++ sonar-core/src/test/java/org/sonar/core/persistence/DatabaseCommands.java-gil 2012-08-14 15:50:55.007615657 +0200
-@@ -26,7 +26,6 @@
+From 41503865641fba80dc93ada9cca5da0b8be88320 Mon Sep 17 00:00:00 2001
+From: Michael Simacek <msimacek at redhat.com>
+Date: Thu, 19 Mar 2015 17:15:52 +0100
+Subject: [PATCH 1/3] Remove oracle DB support
+
+---
+ .../java/org/sonar/core/persistence/DatabaseCommands.java | 12 ------------
+ 1 file changed, 12 deletions(-)
+
+diff --git a/sonar-core/src/test/java/org/sonar/core/persistence/DatabaseCommands.java b/sonar-core/src/test/java/org/sonar/core/persistence/DatabaseCommands.java
+index 0e9f726..6e313b7 100644
+--- a/sonar-core/src/test/java/org/sonar/core/persistence/DatabaseCommands.java
++++ b/sonar-core/src/test/java/org/sonar/core/persistence/DatabaseCommands.java
+@@ -26,7 +26,6 @@ import org.dbunit.dataset.datatype.IDataTypeFactory;
import org.dbunit.ext.h2.H2DataTypeFactory;
import org.dbunit.ext.mssql.MsSqlDataTypeFactory;
import org.dbunit.ext.mysql.MySqlDataTypeFactory;
@@ -8,7 +19,7 @@
import org.dbunit.ext.postgresql.PostgresqlDataTypeFactory;
import org.sonar.core.persistence.dialect.Dialect;
import org.sonar.core.persistence.dialect.MsSql;
-@@ -61,7 +60,6 @@
+@@ -61,7 +60,6 @@ public abstract class DatabaseCommands {
org.sonar.core.persistence.dialect.H2.ID, H2,
MsSql.ID, MSSQL,
MySql.ID, MYSQL,
@@ -16,7 +27,7 @@
PostgreSql.ID, POSTGRESQL).get(dialect.getId());
return Preconditions.checkNotNull(command, "Unknown database: " + dialect);
-@@ -81,16 +79,6 @@
+@@ -81,16 +79,6 @@ public abstract class DatabaseCommands {
}
};
@@ -33,3 +44,6 @@
private static final DatabaseCommands MSSQL = new DatabaseCommands(new MsSqlDataTypeFactory()) {
@Override
public void resetPrimaryKeys(DataSource dataSource) {
+--
+2.1.0
+
diff --git a/0002-Port-to-guava-18.patch b/0002-Port-to-guava-18.patch
new file mode 100644
index 0000000..36f1bb2
--- /dev/null
+++ b/0002-Port-to-guava-18.patch
@@ -0,0 +1,175 @@
+From a7d7092dadf58b0e6a192b88794b158057b9c6d4 Mon Sep 17 00:00:00 2001
+From: Michael Simacek <msimacek at redhat.com>
+Date: Thu, 19 Mar 2015 17:13:05 +0100
+Subject: [PATCH 2/3] Port to guava-18
+
+---
+ .../main/java/org/sonar/core/review/ReviewDao.java | 4 +--
+ .../java/org/sonar/api/utils/HttpDownloader.java | 34 ++++++++++++++++++----
+ .../sonar/api/utils/command/CommandExecutor.java | 23 +++++++++++----
+ 3 files changed, 47 insertions(+), 14 deletions(-)
+
+diff --git a/sonar-core/src/main/java/org/sonar/core/review/ReviewDao.java b/sonar-core/src/main/java/org/sonar/core/review/ReviewDao.java
+index ba5572f..7a7aad7 100644
+--- a/sonar-core/src/main/java/org/sonar/core/review/ReviewDao.java
++++ b/sonar-core/src/main/java/org/sonar/core/review/ReviewDao.java
+@@ -22,7 +22,7 @@ package org.sonar.core.review;
+ import com.google.common.base.Preconditions;
+ import com.google.common.base.Predicate;
+ import com.google.common.base.Predicates;
+-import com.google.common.cache.Cache;
++import com.google.common.cache.LoadingCache;
+ import com.google.common.cache.CacheBuilder;
+ import com.google.common.cache.CacheLoader;
+ import com.google.common.collect.Collections2;
+@@ -37,7 +37,7 @@ import java.util.Collection;
+
+ public class ReviewDao implements BatchComponent, ServerComponent {
+ private final MyBatis mybatis;
+- private final Cache<Long, Collection<ReviewDto>> cacheByResource;
++ private final LoadingCache<Long, Collection<ReviewDto>> cacheByResource;
+
+ public ReviewDao(MyBatis mybatis) {
+ this.mybatis = mybatis;
+diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/utils/HttpDownloader.java b/sonar-plugin-api/src/main/java/org/sonar/api/utils/HttpDownloader.java
+index 7b57626..8e4dae7 100644
+--- a/sonar-plugin-api/src/main/java/org/sonar/api/utils/HttpDownloader.java
++++ b/sonar-plugin-api/src/main/java/org/sonar/api/utils/HttpDownloader.java
+@@ -20,14 +20,13 @@
+ package org.sonar.api.utils;
+
+ import com.google.common.annotations.VisibleForTesting;
+-
+ import com.google.common.base.Joiner;
+ import com.google.common.collect.ImmutableList;
+ import com.google.common.collect.Lists;
+ import com.google.common.io.ByteStreams;
+ import com.google.common.io.CharStreams;
+ import com.google.common.io.Files;
+-import com.google.common.io.InputSupplier;
++
+ import org.apache.commons.io.FileUtils;
+ import org.slf4j.LoggerFactory;
+ import org.sonar.api.BatchComponent;
+@@ -36,8 +35,10 @@ import org.sonar.api.config.Settings;
+ import org.sonar.api.platform.Server;
+
+ import java.io.File;
++import java.io.FileOutputStream;
+ import java.io.IOException;
+ import java.io.InputStream;
++import java.io.InputStreamReader;
+ import java.net.Authenticator;
+ import java.net.HttpURLConnection;
+ import java.net.PasswordAuthentication;
+@@ -137,7 +138,12 @@ public class HttpDownloader extends UriReader.SchemeProcessor implements BatchCo
+ @Override
+ byte[] readBytes(URI uri) {
+ try {
+- return ByteStreams.toByteArray(new HttpInputSupplier(uri));
++ InputStream is = null;
++ try {
++ return ByteStreams.toByteArray(is = new HttpInputSupplier(uri).getInput());
++ } finally {
++ if (is != null) is.close();
++ }
+ } catch (IOException e) {
+ throw failToDownload(uri, e);
+ }
+@@ -146,7 +152,14 @@ public class HttpDownloader extends UriReader.SchemeProcessor implements BatchCo
+ @Override
+ String readString(URI uri, Charset charset) {
+ try {
+- return CharStreams.toString(CharStreams.newReaderSupplier(new HttpInputSupplier(uri), charset));
++ InputStream is = null;
++ try {
++ is = new HttpInputSupplier(uri).getInput();
++ InputStreamReader rdr = new InputStreamReader(is, charset);
++ return CharStreams.toString(rdr);
++ } finally {
++ if (is != null) is.close();
++ }
+ } catch (IOException e) {
+ throw failToDownload(uri, e);
+ }
+@@ -169,8 +182,17 @@ public class HttpDownloader extends UriReader.SchemeProcessor implements BatchCo
+ }
+
+ public void download(URI uri, File toFile) {
++ FileOutputStream fo = null;
++ InputStream is = null;
+ try {
+- Files.copy(new HttpInputSupplier(uri), toFile);
++ try {
++ fo = new FileOutputStream(toFile);
++ is = new HttpInputSupplier(uri).getInput();
++ ByteStreams.copy(is, fo);
++ } finally {
++ if (fo != null) fo.close();
++ if (is != null) is.close();
++ }
+ } catch (IOException e) {
+ FileUtils.deleteQuietly(toFile);
+ throw failToDownload(uri, e);
+@@ -181,7 +203,7 @@ public class HttpDownloader extends UriReader.SchemeProcessor implements BatchCo
+ return new SonarException(String.format("Fail to download the file: %s (%s)", uri, getProxySynthesis(uri)), e);
+ }
+
+- class HttpInputSupplier implements InputSupplier<InputStream> {
++ class HttpInputSupplier {
+ private final URI uri;
+
+ HttpInputSupplier(URI uri) {
+diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/utils/command/CommandExecutor.java b/sonar-plugin-api/src/main/java/org/sonar/api/utils/command/CommandExecutor.java
+index b5da739..bae7079 100644
+--- a/sonar-plugin-api/src/main/java/org/sonar/api/utils/command/CommandExecutor.java
++++ b/sonar-plugin-api/src/main/java/org/sonar/api/utils/command/CommandExecutor.java
+@@ -23,6 +23,7 @@ import com.google.common.io.Closeables;
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+
++import java.io.Closeable;
+ import java.io.BufferedReader;
+ import java.io.IOException;
+ import java.io.InputStream;
+@@ -129,12 +130,22 @@ public class CommandExecutor {
+ return execute(command, new DefaultConsumer(), new DefaultConsumer(), timeoutMilliseconds);
+ }
+
++ private static final Logger closeablesLogger = LoggerFactory.getLogger(Closeables.class.getName());
++
++ private static void closeQuietly(Closeable closeable) {
++ try {
++ Closeables.close(closeable, true);
++ } catch (IOException e) {
++ closeablesLogger.warn("IOException should not have been thrown.", e);
++ }
++ }
++
+ private void closeStreams(Process process) {
+ if (process != null) {
+- Closeables.closeQuietly(process.getInputStream());
+- Closeables.closeQuietly(process.getInputStream());
+- Closeables.closeQuietly(process.getOutputStream());
+- Closeables.closeQuietly(process.getErrorStream());
++ closeQuietly(process.getInputStream());
++ closeQuietly(process.getInputStream());
++ closeQuietly(process.getOutputStream());
++ closeQuietly(process.getErrorStream());
+ }
+ }
+
+@@ -172,8 +183,8 @@ public class CommandExecutor {
+ exception = ioe;
+
+ } finally {
+- Closeables.closeQuietly(br);
+- Closeables.closeQuietly(isr);
++ closeQuietly(br);
++ closeQuietly(isr);
+ }
+ }
+
+--
+2.1.0
+
diff --git a/0001-Never-thrown-exception.patch b/0003-Never-thrown-exception.patch
similarity index 91%
rename from 0001-Never-thrown-exception.patch
rename to 0003-Never-thrown-exception.patch
index 6012129..8fa6c3d 100644
--- a/0001-Never-thrown-exception.patch
+++ b/0003-Never-thrown-exception.patch
@@ -1,7 +1,7 @@
-From 8ca8c37feee4b1b27b243f2fb69b76b725e57ebc Mon Sep 17 00:00:00 2001
+From 0351f59ff406eec7605c7954c8a4a5c50dfb3238 Mon Sep 17 00:00:00 2001
From: Michael Simacek <msimacek at redhat.com>
Date: Fri, 24 Oct 2014 15:55:08 +0200
-Subject: [PATCH] Never thrown exception
+Subject: [PATCH 3/3] Never thrown exception
---
.../java/org/sonar/wsclient/connectors/HttpClient4Connector.java | 5 -----
@@ -32,5 +32,5 @@ index 40d216d..9f7feb1 100644
}
--
-1.9.3
+2.1.0
diff --git a/sonar.spec b/sonar.spec
index db393d0..3d47bfb 100644
--- a/sonar.spec
+++ b/sonar.spec
@@ -1,15 +1,15 @@
Name: sonar
Version: 3.2
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: An open platform to manage code quality
License: LGPLv3+
URL: http://www.sonarqube.org
Source0: https://github.com/SonarSource/sonarqube/archive/%{version}.tar.gz
-Patch0: 0001-Port-to-guava-16.patch
# dbunit with (unavailable) oracle support
-Patch1: %{name}-%{version}-remove-oracle.patch
-Patch2: 0001-Never-thrown-exception.patch
+Patch0: 0001-Remove-oracle-DB-support.patch
+Patch1: 0002-Port-to-guava-18.patch
+Patch2: 0003-Never-thrown-exception.patch
BuildRequires: maven-local
@@ -249,7 +249,7 @@ tests.
%prep
%setup -q -n sonarqube-%{version}
%patch0 -p1
-%patch1 -p0
+%patch1 -p1
%patch2 -p1
find . -name "*.bat" -delete
@@ -352,6 +352,9 @@ rm -r plugins/sonar-squid-java-plugin/test-resources/ sonar-duplications/src/tes
%files jacoco-plugin -f .mfiles-%{name}-jacoco-plugin
%changelog
+* Thu Mar 19 2015 Michael Simacek <msimacek at redhat.com> - 3.2-3
+- Port to current guava
+
* Fri Nov 14 2014 Michael Simacek <msimacek at redhat.com> - 3.2-2
- Fix license tag and install license file
- Split into subpackages
More information about the scm-commits
mailing list