aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-server/src/main/java/org/sonar
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@gmail.com>2013-09-21 00:23:17 +0200
committerSimon Brandhof <simon.brandhof@gmail.com>2013-09-21 00:23:17 +0200
commit9d157c921ce0b088264d1b4e1c7a6dbcbac3768c (patch)
tree31db0fe819d44ebab2a161cb39adc9c99c00cfa4 /sonar-server/src/main/java/org/sonar
parentafb597b0cd6196fabc60e8df5be4577ff4b161c1 (diff)
downloadsonarqube-9d157c921ce0b088264d1b4e1c7a6dbcbac3768c.tar.gz
sonarqube-9d157c921ce0b088264d1b4e1c7a6dbcbac3768c.zip
SONAR-4690 improve code
Diffstat (limited to 'sonar-server/src/main/java/org/sonar')
-rw-r--r--sonar-server/src/main/java/org/sonar/server/db/migrations/DatabaseMigration.java (renamed from sonar-server/src/main/java/org/sonar/server/db/DatabaseMigration.java)2
-rw-r--r--sonar-server/src/main/java/org/sonar/server/db/migrations/DatabaseMigrations.java (renamed from sonar-server/src/main/java/org/sonar/server/db/DatabaseMigrations.java)3
-rw-r--r--sonar-server/src/main/java/org/sonar/server/db/migrations/DatabaseMigrator.java (renamed from sonar-server/src/main/java/org/sonar/server/db/DatabaseMigrator.java)2
-rw-r--r--sonar-server/src/main/java/org/sonar/server/db/migrations/violation/Progress.java24
-rw-r--r--sonar-server/src/main/java/org/sonar/server/db/migrations/violation/ViolationConverters.java29
-rw-r--r--sonar-server/src/main/java/org/sonar/server/db/migrations/violation/ViolationMigration.java3
-rw-r--r--sonar-server/src/main/java/org/sonar/server/platform/Platform.java6
-rw-r--r--sonar-server/src/main/java/org/sonar/server/ui/JRubyFacade.java2
8 files changed, 41 insertions, 30 deletions
diff --git a/sonar-server/src/main/java/org/sonar/server/db/DatabaseMigration.java b/sonar-server/src/main/java/org/sonar/server/db/migrations/DatabaseMigration.java
index f49d40d0505..4126138c7d7 100644
--- a/sonar-server/src/main/java/org/sonar/server/db/DatabaseMigration.java
+++ b/sonar-server/src/main/java/org/sonar/server/db/migrations/DatabaseMigration.java
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonar.server.db;
+package org.sonar.server.db.migrations;
/**
* Java alternative of ActiveRecord::Migration. Do not forget to declare implementation classes in {@link DatabaseMigrations#CLASSES}
diff --git a/sonar-server/src/main/java/org/sonar/server/db/DatabaseMigrations.java b/sonar-server/src/main/java/org/sonar/server/db/migrations/DatabaseMigrations.java
index 23e4a8a52b0..d20ef966380 100644
--- a/sonar-server/src/main/java/org/sonar/server/db/DatabaseMigrations.java
+++ b/sonar-server/src/main/java/org/sonar/server/db/migrations/DatabaseMigrations.java
@@ -17,9 +17,8 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonar.server.db;
+package org.sonar.server.db.migrations;
-import org.sonar.server.db.DatabaseMigration;
import org.sonar.server.db.migrations.violation.ViolationMigration;
public interface DatabaseMigrations {
diff --git a/sonar-server/src/main/java/org/sonar/server/db/DatabaseMigrator.java b/sonar-server/src/main/java/org/sonar/server/db/migrations/DatabaseMigrator.java
index c8012b3ca65..2a0a165c8b7 100644
--- a/sonar-server/src/main/java/org/sonar/server/db/DatabaseMigrator.java
+++ b/sonar-server/src/main/java/org/sonar/server/db/migrations/DatabaseMigrator.java
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonar.server.db;
+package org.sonar.server.db.migrations;
import com.google.common.annotations.VisibleForTesting;
import org.apache.commons.dbutils.DbUtils;
diff --git a/sonar-server/src/main/java/org/sonar/server/db/migrations/violation/Progress.java b/sonar-server/src/main/java/org/sonar/server/db/migrations/violation/Progress.java
index 8057855c913..0e6f0f51d66 100644
--- a/sonar-server/src/main/java/org/sonar/server/db/migrations/violation/Progress.java
+++ b/sonar-server/src/main/java/org/sonar/server/db/migrations/violation/Progress.java
@@ -33,11 +33,16 @@ class Progress extends TimerTask {
private final AtomicInteger counter = new AtomicInteger(0);
private final Logger logger;
private final int totalViolations;
- private long start = System.currentTimeMillis();
+ private final long start;
- Progress(int totalViolations, Logger logger) {
+ Progress(int totalViolations, Logger logger, long startDate) {
this.totalViolations = totalViolations;
this.logger = logger;
+ this.start = startDate;
+ }
+
+ Progress(int totalViolations, Logger logger) {
+ this(totalViolations, logger, System.currentTimeMillis());
}
Progress(int totalViolations) {
@@ -52,13 +57,16 @@ class Progress extends TimerTask {
public void run() {
int totalIssues = counter.get();
long durationMinutes = (System.currentTimeMillis() - start) / 60000L;
- int remaining = 0;
- if (durationMinutes > 0) {
+ int percents = (100 * totalIssues) / totalViolations;
+ if (totalIssues>0 && durationMinutes > 0) {
int frequency = (int) (totalIssues / durationMinutes);
- remaining = (totalViolations - totalIssues) / frequency;
+ int remaining = (totalViolations - totalIssues) / frequency;
+ logger.info(String.format(
+ "%d%% [%d/%d violations, %d minutes remaining]", percents, totalIssues, totalViolations, remaining)
+ );
+ } else {
+ logger.info(String.format("%d%% [%d/%d violations]", percents, totalIssues, totalViolations));
}
- logger.info(String.format(
- "%d%% [%d/%d violations, %d minutes remaining]", (100 * totalIssues) / totalViolations, totalIssues, totalViolations, remaining)
- );
+
}
}
diff --git a/sonar-server/src/main/java/org/sonar/server/db/migrations/violation/ViolationConverters.java b/sonar-server/src/main/java/org/sonar/server/db/migrations/violation/ViolationConverters.java
index 492d95a6228..640903d8850 100644
--- a/sonar-server/src/main/java/org/sonar/server/db/migrations/violation/ViolationConverters.java
+++ b/sonar-server/src/main/java/org/sonar/server/db/migrations/violation/ViolationConverters.java
@@ -25,10 +25,8 @@ import org.sonar.core.persistence.Database;
import java.util.List;
import java.util.Timer;
-import java.util.concurrent.Callable;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
+import java.util.TimerTask;
+import java.util.concurrent.*;
class ViolationConverters {
@@ -42,21 +40,28 @@ class ViolationConverters {
void execute(Referentials referentials, Database db) throws Exception {
Progress progress = new Progress(referentials.totalViolations());
- Timer timer = new Timer(Progress.THREAD_NAME);
- timer.schedule(progress, Progress.DELAY_MS, Progress.DELAY_MS);
List<Callable<Object>> converters = Lists.newArrayList();
for (int i = 0; i < numberOfThreads(); i++) {
converters.add(new ViolationConverter(referentials, db, progress));
}
- ExecutorService executor = Executors.newFixedThreadPool(converters.size());
- List<Future<Object>> results = executor.invokeAll(converters);
- executor.shutdown();
- for (Future result : results) {
- result.get();
+ doExecute(progress, converters);
+ }
+
+ void doExecute(TimerTask progress, List<Callable<Object>> converters) throws InterruptedException, ExecutionException {
+ Timer timer = new Timer(Progress.THREAD_NAME);
+ timer.schedule(progress, Progress.DELAY_MS, Progress.DELAY_MS);
+ try {
+ ExecutorService executor = Executors.newFixedThreadPool(converters.size());
+ List<Future<Object>> results = executor.invokeAll(converters);
+ executor.shutdown();
+ for (Future result : results) {
+ result.get();
+ }
+ } finally {
+ timer.cancel();
}
- timer.cancel();
}
int numberOfThreads() {
diff --git a/sonar-server/src/main/java/org/sonar/server/db/migrations/violation/ViolationMigration.java b/sonar-server/src/main/java/org/sonar/server/db/migrations/violation/ViolationMigration.java
index 8dae2f15034..88c60a8e815 100644
--- a/sonar-server/src/main/java/org/sonar/server/db/migrations/violation/ViolationMigration.java
+++ b/sonar-server/src/main/java/org/sonar/server/db/migrations/violation/ViolationMigration.java
@@ -24,7 +24,7 @@ import org.slf4j.LoggerFactory;
import org.sonar.api.config.Settings;
import org.sonar.api.utils.MessageException;
import org.sonar.core.persistence.Database;
-import org.sonar.server.db.DatabaseMigration;
+import org.sonar.server.db.migrations.DatabaseMigration;
import java.sql.SQLException;
@@ -33,7 +33,6 @@ import java.sql.SQLException;
*/
public class ViolationMigration implements DatabaseMigration {
-
private final Settings settings;
private Logger logger = LoggerFactory.getLogger(ViolationMigration.class);
diff --git a/sonar-server/src/main/java/org/sonar/server/platform/Platform.java b/sonar-server/src/main/java/org/sonar/server/platform/Platform.java
index 44b95743aa8..9949cb18e2e 100644
--- a/sonar-server/src/main/java/org/sonar/server/platform/Platform.java
+++ b/sonar-server/src/main/java/org/sonar/server/platform/Platform.java
@@ -75,10 +75,10 @@ import org.sonar.server.component.DefaultComponentFinder;
import org.sonar.server.component.DefaultRubyComponentService;
import org.sonar.server.configuration.Backup;
import org.sonar.server.configuration.ProfilesManager;
-import org.sonar.server.db.DatabaseMigration;
-import org.sonar.server.db.DatabaseMigrator;
+import org.sonar.server.db.migrations.DatabaseMigration;
+import org.sonar.server.db.migrations.DatabaseMigrator;
import org.sonar.server.db.EmbeddedDatabaseFactory;
-import org.sonar.server.db.DatabaseMigrations;
+import org.sonar.server.db.migrations.DatabaseMigrations;
import org.sonar.server.issue.*;
import org.sonar.server.notifications.NotificationCenter;
import org.sonar.server.notifications.NotificationService;
diff --git a/sonar-server/src/main/java/org/sonar/server/ui/JRubyFacade.java b/sonar-server/src/main/java/org/sonar/server/ui/JRubyFacade.java
index 340eb9ef3a1..807cb564be7 100644
--- a/sonar-server/src/main/java/org/sonar/server/ui/JRubyFacade.java
+++ b/sonar-server/src/main/java/org/sonar/server/ui/JRubyFacade.java
@@ -57,7 +57,7 @@ import org.sonar.core.resource.ResourceKeyUpdaterDao;
import org.sonar.core.timemachine.Periods;
import org.sonar.server.configuration.Backup;
import org.sonar.server.configuration.ProfilesManager;
-import org.sonar.server.db.DatabaseMigrator;
+import org.sonar.server.db.migrations.DatabaseMigrator;
import org.sonar.server.platform.Platform;
import org.sonar.server.platform.ServerIdGenerator;
import org.sonar.server.platform.ServerSettings;