diff options
author | Simon Brandhof <simon.brandhof@gmail.com> | 2013-07-15 18:06:20 +0200 |
---|---|---|
committer | Simon Brandhof <simon.brandhof@gmail.com> | 2013-07-15 18:13:35 +0200 |
commit | 5b745f6619eb0dea2380e4428e135dbb1c2124d5 (patch) | |
tree | 4c5d1ae76819999c71453306107be758fec6050b | |
parent | 02459fcf2a9c7bf30ca8e3f14b79738d30248caf (diff) | |
download | sonarqube-5b745f6619eb0dea2380e4428e135dbb1c2124d5.tar.gz sonarqube-5b745f6619eb0dea2380e4428e135dbb1c2124d5.zip |
SONAR-2860 API: remove the dependency on commons-configuration
7 files changed, 10 insertions, 207 deletions
diff --git a/sonar-batch/src/main/java/org/sonar/batch/ResourceDatabaseConfiguration.java b/sonar-batch/src/main/java/org/sonar/batch/ResourceDatabaseConfiguration.java deleted file mode 100644 index cbb39798eb6..00000000000 --- a/sonar-batch/src/main/java/org/sonar/batch/ResourceDatabaseConfiguration.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * SonarQube, open source software quality management tool. - * Copyright (C) 2008-2013 SonarSource - * mailto:contact AT sonarsource DOT com - * - * SonarQube is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * SonarQube is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * 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.batch; - -import org.apache.commons.configuration.BaseConfiguration; - -import org.sonar.api.database.DatabaseSession; -import org.sonar.api.database.configuration.Property; -import org.sonar.api.database.model.ResourceModel; - -import java.util.List; - -public class ResourceDatabaseConfiguration extends BaseConfiguration { - private final DatabaseSession session; - private Integer resourceId = null; - - public ResourceDatabaseConfiguration(DatabaseSession session, ResourceModel resource) { - this.session = session; - if (resource != null) { - this.resourceId = resource.getId(); - } - load(); - } - - public ResourceDatabaseConfiguration(DatabaseSession session, Integer resourceId) { - this.session = session; - this.resourceId = resourceId; - load(); - } - - public ResourceDatabaseConfiguration(DatabaseSession session, String resourceKey) { - this.session = session; - - ResourceModel resource = session.getSingleResult(ResourceModel.class, "key", resourceKey); - if (resource != null) { - this.resourceId = resource.getId(); - } - load(); - } - - public void load() { - clear(); - - loadResourceProperties(); - } - - private void loadResourceProperties() { - if (resourceId != null) { - List<Property> properties = session - .createQuery("from " + Property.class.getSimpleName() + " p where p.resourceId=:resourceId") - .setParameter("resourceId", resourceId) - .getResultList(); - - registerProperties(properties); - } - } - - private void registerProperties(List<Property> properties) { - if (properties != null) { - for (Property property : properties) { - setProperty(property.getKey(), property.getValue()); - } - } - } - -} diff --git a/sonar-core/src/main/java/org/sonar/api/database/configuration/DatabaseConfiguration.java b/sonar-core/src/main/java/org/sonar/api/database/configuration/DatabaseConfiguration.java deleted file mode 100644 index c281654ca37..00000000000 --- a/sonar-core/src/main/java/org/sonar/api/database/configuration/DatabaseConfiguration.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * SonarQube, open source software quality management tool. - * Copyright (C) 2008-2013 SonarSource - * mailto:contact AT sonarsource DOT com - * - * SonarQube is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * SonarQube is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * 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.api.database.configuration; - -import org.apache.commons.configuration.BaseConfiguration; -import org.sonar.api.database.DatabaseSession; -import org.sonar.jpa.session.DatabaseSessionFactory; - -import java.util.List; - -/** - * IMPORTANT : This class can't be moved to org.sonar.jpa.dao for backward-compatibility reasons. - * This class is still used in some plugins. - * - * @since 1.10 - */ -public class DatabaseConfiguration extends BaseConfiguration { - private DatabaseSessionFactory sessionFactory; - private DatabaseSession session; - - public DatabaseConfiguration(DatabaseSessionFactory sessionFactory) { - this.sessionFactory = sessionFactory; - load(); - } - - public DatabaseConfiguration(DatabaseSession session) { - this.session = session; - load(); - } - - public final void load() { - clear(); - - // Ugly workaround before the move to myBatis - // Session is not up-to-date when Ruby on Rails inserts new rows in its own transaction. Seems like - // Hibernate keeps a cache... - getSession().commit(); - - List<Property> properties = getSession() - .createQuery("from " + Property.class.getSimpleName() + " p where p.resourceId is null and p.userId is null") - .getResultList(); - - if (properties != null) { - for (Property property : properties) { - setProperty(property.getKey(), property.getValue()); - } - } - } - - private DatabaseSession getSession() { - if (session != null) { - return session; - } - return sessionFactory.getSession(); - } -}
\ No newline at end of file diff --git a/sonar-core/src/main/java/org/sonar/core/config/ConfigurationUtils.java b/sonar-core/src/main/java/org/sonar/core/config/ConfigurationUtils.java index 3086aad7bd9..0d6067199e8 100644 --- a/sonar-core/src/main/java/org/sonar/core/config/ConfigurationUtils.java +++ b/sonar-core/src/main/java/org/sonar/core/config/ConfigurationUtils.java @@ -19,13 +19,11 @@ */ package org.sonar.core.config; -import org.apache.commons.configuration.Configuration; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.lang.text.StrSubstitutor; import javax.annotation.WillClose; - import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -83,13 +81,4 @@ public final class ConfigurationUtils { } return result; } - - public static void copyToCommonsConfiguration(Map<String, String> input, Configuration commonsConfig) { - // update deprecated configuration - commonsConfig.clear(); - for (Map.Entry<String, String> entry : input.entrySet()) { - String key = entry.getKey(); - commonsConfig.setProperty(key, entry.getValue()); - } - } } diff --git a/sonar-core/src/test/java/org/sonar/api/database/configuration/DatabaseConfigurationTest.java b/sonar-core/src/test/java/org/sonar/api/database/configuration/DatabaseConfigurationTest.java deleted file mode 100644 index 6edd7162a54..00000000000 --- a/sonar-core/src/test/java/org/sonar/api/database/configuration/DatabaseConfigurationTest.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * SonarQube, open source software quality management tool. - * Copyright (C) 2008-2013 SonarSource - * mailto:contact AT sonarsource DOT com - * - * SonarQube is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * SonarQube is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * 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.api.database.configuration; - -import org.junit.Test; -import org.sonar.jpa.test.AbstractDbUnitTestCase; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; - -public class DatabaseConfigurationTest extends AbstractDbUnitTestCase { - - @Test - public void shouldLoadPropertiesFromDatabase() { - setupData("some-properties"); - - DatabaseConfiguration configuration = new DatabaseConfiguration(getSessionFactory()); - - assertEquals("value1", configuration.getString("key1")); - assertEquals("value2", configuration.getString("key2")); - assertNull(configuration.getString("keyxxxx")); - } -} diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/DefaultFormulaContext.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/DefaultFormulaContext.java index d48391a08d7..d5d8d04e474 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/DefaultFormulaContext.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/DefaultFormulaContext.java @@ -44,6 +44,10 @@ public class DefaultFormulaContext implements FormulaContext { return decoratorContext.getResource(); } + /** + * @deprecated in 3.7. Use {@link org.sonar.api.config.Settings}. + */ + @Deprecated public Configuration getConfiguration() { return decoratorContext.getProject().getConfiguration(); } diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/measures/FormulaContext.java b/sonar-plugin-api/src/main/java/org/sonar/api/measures/FormulaContext.java index d0c4177efa0..67aa4823932 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/measures/FormulaContext.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/measures/FormulaContext.java @@ -31,6 +31,10 @@ public interface FormulaContext { Resource getResource(); + /** + * @deprecated in 3.7. Use {@link org.sonar.api.config.Settings}. + */ + @Deprecated Configuration getConfiguration(); }
\ No newline at end of file diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/rules/RuleUtils.java b/sonar-plugin-api/src/main/java/org/sonar/api/rules/RuleUtils.java index 2d8f4c9baec..c6f2953d62d 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/rules/RuleUtils.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/rules/RuleUtils.java @@ -27,7 +27,9 @@ import org.sonar.api.utils.KeyValueFormat; /** * A utility class to manipulate concepts around rules + * @deprecated in 3.7. Commons Configuration must be replaced by {@link org.sonar.api.config.Settings} */ +@Deprecated public final class RuleUtils { private RuleUtils() { |