diff options
author | Simon Brandhof <simon.brandhof@gmail.com> | 2013-09-21 00:23:17 +0200 |
---|---|---|
committer | Simon Brandhof <simon.brandhof@gmail.com> | 2013-09-21 00:23:17 +0200 |
commit | 9d157c921ce0b088264d1b4e1c7a6dbcbac3768c (patch) | |
tree | 31db0fe819d44ebab2a161cb39adc9c99c00cfa4 /sonar-server/src/main/java/org/sonar | |
parent | afb597b0cd6196fabc60e8df5be4577ff4b161c1 (diff) | |
download | sonarqube-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.java | 24 | ||||
-rw-r--r-- | sonar-server/src/main/java/org/sonar/server/db/migrations/violation/ViolationConverters.java | 29 | ||||
-rw-r--r-- | sonar-server/src/main/java/org/sonar/server/db/migrations/violation/ViolationMigration.java | 3 | ||||
-rw-r--r-- | sonar-server/src/main/java/org/sonar/server/platform/Platform.java | 6 | ||||
-rw-r--r-- | sonar-server/src/main/java/org/sonar/server/ui/JRubyFacade.java | 2 |
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; |