diff options
Diffstat (limited to 'subprojects/sonar-update-center/sonar-update-center-server')
18 files changed, 0 insertions, 1467 deletions
diff --git a/subprojects/sonar-update-center/sonar-update-center-server/pom.xml b/subprojects/sonar-update-center/sonar-update-center-server/pom.xml deleted file mode 100644 index 0fc50b825d6..00000000000 --- a/subprojects/sonar-update-center/sonar-update-center-server/pom.xml +++ /dev/null @@ -1,134 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.codehaus.sonar</groupId> - <artifactId>sonar-update-center</artifactId> - <version>1.1-SNAPSHOT</version> - </parent> - <artifactId>sonar-update-center-server</artifactId> - <name>Sonar :: Update Center :: Server</name> - - <properties> - <maven.version>3.0-beta-1</maven.version> - </properties> - - <dependencies> - <dependency> - <groupId>org.codehaus.sonar</groupId> - <artifactId>sonar-update-center-common</artifactId> - </dependency> - - <dependency> - <groupId>com.thoughtworks.xstream</groupId> - <artifactId>xstream</artifactId> - </dependency> - <dependency> - <groupId>xpp3</groupId> - <artifactId>xpp3</artifactId> - </dependency> - - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-log4j12</artifactId> - <version>1.5.6</version> - </dependency> - - <dependency> - <groupId>ch.qos.logback</groupId> - <artifactId>logback-classic</artifactId> - <version>0.9.15</version> - </dependency> - - <dependency> - <groupId>org.apache.maven</groupId> - <artifactId>maven-compat</artifactId> - <version>${maven.version}</version> - </dependency> - - <dependency> - <groupId>org.apache.maven.wagon</groupId> - <artifactId>wagon-http</artifactId> - <version>1.0-beta-5</version> - </dependency> - - <dependency> - <groupId>com.googlecode.json-simple</groupId> - <artifactId>json-simple</artifactId> - <version>1.1</version> - </dependency> - - <dependency> - <groupId>commons-io</groupId> - <artifactId>commons-io</artifactId> - <version>1.4</version> - </dependency> - <dependency> - <groupId>commons-lang</groupId> - <artifactId>commons-lang</artifactId> - <version>2.5</version> - </dependency> - - <dependency> - <groupId>args4j</groupId> - <artifactId>args4j</artifactId> - <version>2.0.8</version> - </dependency> - - - <!-- experimental --> - <dependency> - <groupId>org.apache.httpcomponents</groupId> - <artifactId>httpclient</artifactId> - <version>4.0.1</version> - </dependency> - - - <!-- unit tests --> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.hamcrest</groupId> - <artifactId>hamcrest-all</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>xmlunit</groupId> - <artifactId>xmlunit</artifactId> - <version>1.2</version> - <scope>test</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>exec-maven-plugin</artifactId> - <configuration> - <mainClass>org.sonar.updatecenter.deprecated.UpdateCenter</mainClass> - <arguments> - <argument>-d</argument> - <argument>${project.basedir}/target/site</argument> - </arguments> - </configuration> - </plugin> - - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>wagon-maven-plugin</artifactId> - <configuration> - <serverId>sonar-plugins</serverId> - <fromDir>${project.basedir}/target/site</fromDir> - <includes>**</includes> - <url>dav:https://dav.codehaus.org/dist/sonar-plugins/update-center</url> - </configuration> - </plugin> - </plugins> - </build> - -</project> diff --git a/subprojects/sonar-update-center/sonar-update-center-server/src/main/java/org/sonar/updatecenter/deprecated/History.java b/subprojects/sonar-update-center/sonar-update-center-server/src/main/java/org/sonar/updatecenter/deprecated/History.java deleted file mode 100644 index f9b4de9e11d..00000000000 --- a/subprojects/sonar-update-center/sonar-update-center-server/src/main/java/org/sonar/updatecenter/deprecated/History.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Sonar, open source software quality management tool. - * Copyright (C) 2009 SonarSource SA - * mailto:contact AT sonarsource DOT com - * - * Sonar 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. - * - * Sonar 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 Sonar; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 - */ -package org.sonar.updatecenter.deprecated; - -import org.apache.maven.artifact.versioning.ArtifactVersion; - -import java.util.Set; -import java.util.TreeMap; - -/** - * Information about release history, discovered from Maven repository. - * - * @author Evgeny Mandrikov - */ -public class History<M extends Versioned> { - - private TreeMap<ArtifactVersion, M> artifacts = new TreeMap<ArtifactVersion, M>(); - - public History() { - } - - public Set<ArtifactVersion> getAllVersions() { - return artifacts.keySet(); - } - - /** - * @return latest version of plugin - */ - public M latest() { - if (artifacts.size() == 0) { - return null; - } - return artifacts.get(artifacts.lastKey()); - } - - public void addArtifact(ArtifactVersion version, M artifact) { - artifacts.put(version, artifact); - } -} diff --git a/subprojects/sonar-update-center/sonar-update-center-server/src/main/java/org/sonar/updatecenter/deprecated/Plugin.java b/subprojects/sonar-update-center/sonar-update-center-server/src/main/java/org/sonar/updatecenter/deprecated/Plugin.java deleted file mode 100644 index 7dbf87a5374..00000000000 --- a/subprojects/sonar-update-center/sonar-update-center-server/src/main/java/org/sonar/updatecenter/deprecated/Plugin.java +++ /dev/null @@ -1,206 +0,0 @@ -/* - * Sonar, open source software quality management tool. - * Copyright (C) 2009 SonarSource SA - * mailto:contact AT sonarsource DOT com - * - * Sonar 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. - * - * Sonar 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 Sonar; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 - */ -package org.sonar.updatecenter.deprecated; - -import org.apache.maven.model.Developer; -import org.json.simple.JSONObject; - -import java.io.File; -import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.List; -import java.util.jar.Attributes; -import java.util.jar.JarFile; -import java.util.jar.Manifest; -import java.util.zip.ZipEntry; - -/** - * Information about Sonar Plugin. - * - * @author Evgeny Mandrikov - */ -public class Plugin implements Versioned { - private String key; - private String name; - private String description; - private String version; - private String downloadUrl; - private String requiredSonarVersion; - private String homepage; - private long timestamp; - - private String pluginClass; - private String issueTracker; - private String sources; - private String license; - - private List<Developer> developers; - - public Plugin(String pluginKey) { - this.key = pluginKey; - } - - public String getKey() { - return key; - } - - public void setKey(String key) { - this.key = key; - } - - /** - * @return name - */ - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - /** - * @return version - */ - public String getVersion() { - return version; - } - - public void setVersion(String version) { - this.version = version; - } - - public String getReleaseDate() { - return (new SimpleDateFormat("d MMM yyyy")).format(new Date(timestamp)); - } - - private void setDate(long timestamp) { - this.timestamp = timestamp; - } - - /** - * @return URL for downloading - */ - public String getDownloadUrl() { - return downloadUrl; - } - - public void setDownloadUrl(String downloadUrl) { - this.downloadUrl = downloadUrl; - } - - /** - * @return minimal Sonar version to run this plugin - */ - public String getRequiredSonarVersion() { - // TODO Sonar-Version from MANIFEST.MF - return requiredSonarVersion; - } - - public void setRequiredSonarVersion(String sonarVersion) { - this.requiredSonarVersion = sonarVersion; - } - - /** - * @return homepage - */ - public String getHomepage() { - // TODO Plugin-Homepage from MANIFEST.MF - return homepage; - } - - public void setHomepage(String homepage) { - this.homepage = homepage; - } - - public String getIssueTracker() { - return issueTracker; - } - - public void setIssueTracker(String url) { - this.issueTracker = url; - } - - public String getSources() { - return sources; - } - - public void setSources(String sources) { - this.sources = sources; - } - - public String getLicense() { - return license; - } - - public void setLicense(String license) { - this.license = license; - } - - public List<Developer> getDevelopers() { - return developers; - } - - public void setDevelopers(List<Developer> developers) { - this.developers = developers; - } - - public JSONObject toJsonObject() { - JSONObject obj = new JSONObject(); - obj.put("id", getKey()); - obj.put("name", getName()); - obj.put("version", getVersion()); - obj.put("sonarVersion", getRequiredSonarVersion()); - if (getDownloadUrl() != null) { - obj.put("downloadUrl", getDownloadUrl()); - } - if (getHomepage() != null) { - obj.put("homepage", getHomepage()); - } - return obj; - } - - public static Plugin extractMetadata(File file) throws IOException { - JarFile jar = new JarFile(file); - ZipEntry entry = jar.getEntry("META-INF/MANIFEST.MF"); - long timestamp = entry.getTime(); - Manifest manifest = jar.getManifest(); - jar.close(); - - Attributes attributes = manifest.getMainAttributes(); - String pluginKey = attributes.getValue("Plugin-Key"); - Plugin plugin = new Plugin(pluginKey); - plugin.setName(attributes.getValue("Plugin-Name")); - plugin.setVersion(attributes.getValue("Plugin-Version")); - plugin.setRequiredSonarVersion(attributes.getValue("Sonar-Version")); - plugin.setHomepage(attributes.getValue("Plugin-Homepage")); - plugin.setDate(timestamp); - return plugin; - } -} diff --git a/subprojects/sonar-update-center/sonar-update-center-server/src/main/java/org/sonar/updatecenter/deprecated/Sonar.java b/subprojects/sonar-update-center/sonar-update-center-server/src/main/java/org/sonar/updatecenter/deprecated/Sonar.java deleted file mode 100644 index cb652459af1..00000000000 --- a/subprojects/sonar-update-center/sonar-update-center-server/src/main/java/org/sonar/updatecenter/deprecated/Sonar.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Sonar, open source software quality management tool. - * Copyright (C) 2009 SonarSource SA - * mailto:contact AT sonarsource DOT com - * - * Sonar 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. - * - * Sonar 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 Sonar; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 - */ -package org.sonar.updatecenter.deprecated; - -import org.json.simple.JSONObject; - -/** - * Information about Sonar. - * - * @author Evgeny Mandrikov - */ -public class Sonar implements Versioned { - - private final String version; - - public Sonar(String version) { - this.version = version; - } - - /** - * @return Sonar version - */ - public String getVersion() { - return version; - } - - /** - * @return URL for downloading - */ - public String getDownloadUrl() { - return "http://dist.sonar.codehaus.org/sonar-" + getVersion() + ".zip"; - } - - public JSONObject toJsonObject() { - JSONObject obj = new JSONObject(); - obj.put("version", getVersion()); - obj.put("downloadUrl", getDownloadUrl()); - return obj; - } - -} diff --git a/subprojects/sonar-update-center/sonar-update-center-server/src/main/java/org/sonar/updatecenter/deprecated/UpdateCenter.java b/subprojects/sonar-update-center/sonar-update-center-server/src/main/java/org/sonar/updatecenter/deprecated/UpdateCenter.java deleted file mode 100644 index 7e95d397679..00000000000 --- a/subprojects/sonar-update-center/sonar-update-center-server/src/main/java/org/sonar/updatecenter/deprecated/UpdateCenter.java +++ /dev/null @@ -1,318 +0,0 @@ -/* - * Sonar, open source software quality management tool. - * Copyright (C) 2009 SonarSource SA - * mailto:contact AT sonarsource DOT com - * - * Sonar 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. - * - * Sonar 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 Sonar; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 - */ -package org.sonar.updatecenter.deprecated; - -import org.apache.commons.io.FileUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.artifact.Artifact; -import org.apache.maven.artifact.factory.ArtifactFactory; -import org.apache.maven.artifact.metadata.ArtifactMetadataSource; -import org.apache.maven.artifact.repository.ArtifactRepository; -import org.apache.maven.artifact.repository.ArtifactRepositoryFactory; -import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy; -import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout; -import org.apache.maven.artifact.resolver.ArtifactResolutionRequest; -import org.apache.maven.artifact.resolver.ArtifactResolver; -import org.apache.maven.artifact.versioning.ArtifactVersion; -import org.apache.maven.model.Dependency; -import org.apache.maven.model.Developer; -import org.apache.maven.project.MavenProject; -import org.apache.maven.project.MavenProjectBuilder; -import org.codehaus.plexus.ContainerConfiguration; -import org.codehaus.plexus.DefaultContainerConfiguration; -import org.codehaus.plexus.DefaultPlexusContainer; -import org.codehaus.plexus.PlexusContainer; -import org.codehaus.plexus.classworlds.ClassWorld; -import org.json.simple.JSONArray; -import org.json.simple.JSONObject; -import org.kohsuke.args4j.CmdLineParser; -import org.kohsuke.args4j.Option; - -import java.io.File; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -/** - * @author Evgeny Mandrikov - */ -public class UpdateCenter { - // FIXME value set only for debug purposes - @Option(name = "-d") - public File outputDirectory = new File("/tmp/site"); - - private static final String ARTIFACT_JAR_TYPE = "jar"; - private static final String ARTIFACT_POM_TYPE = "pom"; - - private List<ArtifactRepository> remoteRepositories; - private ArtifactRepository localRepository; - - private ArtifactFactory artifactFactory; - private ArtifactResolver artifactResolver; - private ArtifactMetadataSource metadataSource; - private MavenProjectBuilder mavenProjectBuilder; - - private void run() throws Exception { - // Init plexus - ClassWorld classWorld = new ClassWorld("plexus.core", UpdateCenter.class.getClassLoader()); - ContainerConfiguration configuration = new DefaultContainerConfiguration().setClassWorld(classWorld); - PlexusContainer plexus = new DefaultPlexusContainer(configuration); - // Init components - artifactFactory = plexus.lookup(ArtifactFactory.class); - artifactResolver = plexus.lookup(ArtifactResolver.class); - metadataSource = plexus.lookup(ArtifactMetadataSource.class); - mavenProjectBuilder = plexus.lookup(MavenProjectBuilder.class); - ArtifactRepositoryFactory artifactRepositoryFactory = plexus.lookup(ArtifactRepositoryFactory.class); - // Init repositories - ArtifactRepositoryPolicy policy = new ArtifactRepositoryPolicy( - true, - ArtifactRepositoryPolicy.UPDATE_POLICY_DAILY, - ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN - ); - remoteRepositories = Collections.singletonList( // TODO add SonarSource repository with commercial plugins - artifactRepositoryFactory.createArtifactRepository( - "codehaus", - "http://repository.codehaus.org/", - new DefaultRepositoryLayout(), - policy, - policy - ) - ); - File localRepo = new File(new File(System.getProperty("user.home")), ".m2/repository"); - localRepository = artifactRepositoryFactory.createArtifactRepository( - "local", - localRepo.toURI().toURL().toExternalForm(), - new DefaultRepositoryLayout(), - policy, - policy - ); - // Do work - JSONObject obj = new JSONObject(); - - obj.put("version", "1"); // We can bump this version, when we make incompatible changes - obj.put("plugins", resolvePlugins()); - obj.put("sonar", resolveSonar()); - - if (outputDirectory != null) { - FileUtils.writeStringToFile(new File(outputDirectory, "update-center.json"), obj.toJSONString()); - } - } - - private JSONArray resolvePlugins() throws Exception { - List<String> plugins = FileUtils.readLines(FileUtils.toFile(getClass().getResource("/plugins.txt"))); - - String pluginInfoWidgetTemplate = FileUtils.readFileToString( - FileUtils.toFile(getClass().getResource("/plugin-info-widget-template.html")) - ); - if (outputDirectory != null) { - FileUtils.copyURLToFile(getClass().getResource("/style.css"), new File(outputDirectory, "plugins/style.css")); - } - - JSONArray json = new JSONArray(); - for (String plugin : plugins) { - if (plugin.startsWith("#")) { - // Skip comments - continue; - } - History<Plugin> history = resolvePluginHistory(plugin); - if (history.latest() == null) { - System.out.println("WTF? " + plugin); - continue; - } - json.add(history.latest().toJsonObject()); - - Plugin latest = history.latest(); - - if (outputDirectory != null) { - String pluginInfoWidget = StringUtils.replaceEach( - pluginInfoWidgetTemplate, - new String[]{"%name%", "%version%", "%date%", "%downloadUrl%", "%sonarVersion%", "%issueTracker%", "%sources%", "%license%", "%developers%"}, - new String[]{ - latest.getName(), - latest.getVersion(), - latest.getReleaseDate(), - latest.getDownloadUrl(), - latest.getRequiredSonarVersion(), - formatLink(latest.getIssueTracker()), - formatLink(latest.getSources()), - latest.getLicense() == null ? "Unknown" : latest.getLicense(), - formatDevelopers(latest.getDevelopers()) - } - ); - FileUtils.writeStringToFile(new File(outputDirectory, "plugins/" + latest.getKey() + ".html"), pluginInfoWidget); - } - - // TODO use logger - System.out.println(latest.getName() + " : " + history.getAllVersions() + ", latest " + latest.getVersion()); - } - - return json; - } - - private String formatDevelopers(List<Developer> developers) { - if (developers == null) { - return "Unknown"; - } - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < developers.size(); i++) { - if (i > 0) { - sb.append(", "); - } - sb.append(developers.get(i).getName()); - } - return sb.toString(); - } - - private String formatLink(String url) { - return StringUtils.isBlank(url) ? "Unknown" : "<a href=\"" + url + "\" target=\"_top\">" + url + "</a>"; - } - - private JSONObject resolveSonar() throws Exception { - Artifact artifact = artifactFactory.createArtifact( - "org.codehaus.sonar", - "sonar-plugin-api", - Artifact.LATEST_VERSION, - Artifact.SCOPE_COMPILE, - ARTIFACT_JAR_TYPE - ); - - List<ArtifactVersion> versions = filterSnapshots( - metadataSource.retrieveAvailableVersions(artifact, localRepository, remoteRepositories) - ); - History<Sonar> history = new History<Sonar>(); - for (ArtifactVersion version : versions) { - history.addArtifact(version, new Sonar(version.toString())); - } - - return history.latest().toJsonObject(); - } - - private String getDownloadUrl(String groupId, String artifactId, String version) { - // FIXME dirty hack - return "http://repository.codehaus.org/" - + StringUtils.replace(groupId, ".", "/") + "/" - + artifactId + "/" - + version + "/" - + artifactId + "-" + version + "." + ARTIFACT_JAR_TYPE; - } - - private History<Plugin> resolvePluginHistory(String id) throws Exception { - String groupId = StringUtils.substringBefore(id, ":"); - String artifactId = StringUtils.substringAfter(id, ":"); - - Artifact artifact = artifactFactory.createArtifact( - groupId, artifactId, Artifact.LATEST_VERSION, Artifact.SCOPE_COMPILE, ARTIFACT_JAR_TYPE - ); - - List<ArtifactVersion> versions = filterSnapshots( - metadataSource.retrieveAvailableVersions(artifact, localRepository, remoteRepositories) - ); - - History<Plugin> history = new History<Plugin>(); - for (ArtifactVersion version : versions) { - Plugin plugin = org.sonar.updatecenter.deprecated.Plugin.extractMetadata(resolve(artifact.getGroupId(), artifact.getArtifactId(), version.toString())); - history.addArtifact(version, plugin); - - MavenProject project = mavenProjectBuilder.buildFromRepository( - artifactFactory.createArtifact(groupId, artifactId, version.toString(), Artifact.SCOPE_COMPILE, ARTIFACT_POM_TYPE), - remoteRepositories, - localRepository - ); - - if (plugin.getVersion() == null) { - // Legacy plugin - set default values - plugin.setKey(project.getArtifactId()); - plugin.setName(project.getName()); - plugin.setVersion(project.getVersion()); - - String sonarVersion = "1.10"; // TODO Is it minimal version for all extension points ? - for (Dependency dependency : project.getDependencies()) { - if ("sonar-plugin-api".equals(dependency.getArtifactId())) { // TODO dirty hack - sonarVersion = dependency.getVersion(); - } - } - - plugin.setRequiredSonarVersion(sonarVersion); - plugin.setHomepage(project.getUrl()); - } - plugin.setDownloadUrl(getDownloadUrl(groupId, artifactId, plugin.getVersion())); - // There is no equivalent for following properties in MANIFEST.MF - if (project.getIssueManagement() != null) { - plugin.setIssueTracker(project.getIssueManagement().getUrl()); - } else { - System.out.println("Unknown Issue Management for " + plugin.getKey() + ":" + plugin.getVersion()); - } - if (project.getScm() != null) { - String scmUrl = project.getScm().getUrl(); - if (StringUtils.startsWith(scmUrl, "scm:")) { - scmUrl = StringUtils.substringAfter(StringUtils.substringAfter(scmUrl, ":"), ":"); - } - plugin.setSources(scmUrl); - } else { - System.out.println("Unknown SCM for " + plugin.getKey() + ":" + plugin.getVersion()); - } - if (project.getLicenses() != null && project.getLicenses().size() > 0) { - plugin.setLicense(project.getLicenses().get(0).getName()); - } else { - System.out.println("Unknown License for " + plugin.getKey() + ":" + plugin.getVersion()); - } - if (project.getDevelopers().size() > 0) { - plugin.setDevelopers(project.getDevelopers()); - } else { - System.out.println("Unknown Developers for " + plugin.getKey() + ":" + plugin.getVersion()); - } - } - return history; - } - - private List<ArtifactVersion> filterSnapshots(List<ArtifactVersion> versions) { - List<ArtifactVersion> result = new ArrayList<ArtifactVersion>(); - for (ArtifactVersion version : versions) { - // Ignore snapshots - if (!"SNAPSHOT".equalsIgnoreCase(version.getQualifier())) { - result.add(version); - } - } - return result; - } - - private File resolve(String groupId, String artifactId, String version) throws Exception { - return resolve(groupId, artifactId, version, ARTIFACT_JAR_TYPE); - } - - private File resolve(String groupId, String artifactId, String version, String type) throws Exception { - Artifact artifact = artifactFactory.createArtifact(groupId, artifactId, version, Artifact.SCOPE_COMPILE, type); - ArtifactResolutionRequest request = new ArtifactResolutionRequest() - .setArtifact(artifact) - .setResolveTransitively(false) - .setLocalRepository(localRepository) - .setRemoteRepositories(remoteRepositories); - artifactResolver.resolve(request); - return artifact.getFile(); - } - - public static void main(String[] args) throws Exception { - UpdateCenter updateCenter = new UpdateCenter(); - CmdLineParser p = new CmdLineParser(updateCenter); - p.parseArgument(args); - - updateCenter.run(); - } -} diff --git a/subprojects/sonar-update-center/sonar-update-center-server/src/main/java/org/sonar/updatecenter/deprecated/UpdateInfo.java b/subprojects/sonar-update-center/sonar-update-center-server/src/main/java/org/sonar/updatecenter/deprecated/UpdateInfo.java deleted file mode 100644 index bf65ee8a861..00000000000 --- a/subprojects/sonar-update-center/sonar-update-center-server/src/main/java/org/sonar/updatecenter/deprecated/UpdateInfo.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.sonar.updatecenter.deprecated; - -import com.thoughtworks.xstream.XStream; -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamImplicit; - -import java.util.Arrays; -import java.util.List; - -/** - * Information about updates. - * - * @author Evgeny Mandrikov - */ -@XStreamAlias("updateInfo") -public class UpdateInfo { - - public Sonar sonar; - - @XStreamImplicit(itemFieldName = "plugin") - public List<Plugin> plugins; - - public UpdateInfo(Sonar sonar, List<Plugin> plugins) { - this.sonar = sonar; - this.plugins = plugins; - } - - public static void main(String[] args) { - XStream xstream = new XStream(); - xstream.autodetectAnnotations(true); - - Plugin plugin = new Plugin("sonar-test-plugin"); - plugin.setVersion("0.1"); - plugin.setName("Sonar Test Plugin"); - plugin.setDescription("Test"); - plugin.setHomepage("http://homepage"); - plugin.setDownloadUrl("http://download"); - plugin.setRequiredSonarVersion("2.0"); - - System.out.println(xstream.toXML(new UpdateInfo(new Sonar("2.0"), Arrays.asList(plugin)))); - } -} diff --git a/subprojects/sonar-update-center/sonar-update-center-server/src/main/java/org/sonar/updatecenter/deprecated/Versioned.java b/subprojects/sonar-update-center/sonar-update-center-server/src/main/java/org/sonar/updatecenter/deprecated/Versioned.java deleted file mode 100644 index fc50234c990..00000000000 --- a/subprojects/sonar-update-center/sonar-update-center-server/src/main/java/org/sonar/updatecenter/deprecated/Versioned.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Sonar, open source software quality management tool. - * Copyright (C) 2009 SonarSource SA - * mailto:contact AT sonarsource DOT com - * - * Sonar 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. - * - * Sonar 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 Sonar; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 - */ -package org.sonar.updatecenter.deprecated; - -/** - * @author Evgeny Mandrikov - */ -public interface Versioned { - String getVersion(); -} diff --git a/subprojects/sonar-update-center/sonar-update-center-server/src/main/java/org/sonar/updatecenter/server/Configuration.java b/subprojects/sonar-update-center/sonar-update-center-server/src/main/java/org/sonar/updatecenter/server/Configuration.java deleted file mode 100644 index 165b7883562..00000000000 --- a/subprojects/sonar-update-center/sonar-update-center-server/src/main/java/org/sonar/updatecenter/server/Configuration.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Sonar, open source software quality management tool. - * Copyright (C) 2009 SonarSource SA - * mailto:contact AT sonarsource DOT com - * - * Sonar 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. - * - * Sonar 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 Sonar; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 - */ -package org.sonar.updatecenter.server; - -import org.apache.commons.io.FileUtils; -import org.apache.commons.lang.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.File; -import java.io.IOException; -import java.util.Properties; - -public class Configuration { - - public static final String WORKING_DIR = "workingDir"; - public static final String OUTPUT_FILE = "outputFile"; - public static final String SOURCE_PATH = "path"; - public static final String SOURCE_LOGIN = "login"; - public static final String SOURCE_PASSWORD = "password"; - - private static Logger LOG = LoggerFactory.getLogger(Configuration.class); - private Properties props; - private File workingDir = null; - - public Configuration(Properties props) { - this.props = props; - } - - public void log() { - LOG.info("-------------------------------"); - LOG.info(WORKING_DIR + ": " + getWorkingDir().getPath()); - LOG.info(OUTPUT_FILE + ": " + getOutputFile().getPath()); - LOG.info(SOURCE_PATH + ": " + getSourcePath()); - LOG.info(SOURCE_LOGIN + ": " + getSourceLogin()); - LOG.info(SOURCE_PASSWORD + ": " + getSourcePassword()); - LOG.info("-------------------------------"); - } - - public File getWorkingDir() { - if (workingDir == null) { - String path = props.getProperty(WORKING_DIR); - if (StringUtils.isBlank(path)) { - workingDir = new File(System.getProperty("user.home"), ".sonar-update-center"); - } else { - workingDir = new File(path); - } - try { - FileUtils.forceMkdir(workingDir); - - } catch (IOException e) { - throw new RuntimeException("Fail to create the working directory: " + workingDir.getAbsolutePath(), e); - } - } - return workingDir; - } - - public File getOutputFile() { - String path = props.getProperty(OUTPUT_FILE); - if (StringUtils.isNotBlank(path)) { - return new File(path); - } - return new File(getWorkingDir(), "generated-sonar-updates.properties"); - } - - public String getSourcePath() { - return props.getProperty(SOURCE_PATH); - } - - public String getSourceLogin() { - return props.getProperty(SOURCE_LOGIN); - } - - public String getSourcePassword() { - return props.getProperty(SOURCE_PASSWORD); - } -} diff --git a/subprojects/sonar-update-center/sonar-update-center-server/src/main/java/org/sonar/updatecenter/server/HttpDownloader.java b/subprojects/sonar-update-center/sonar-update-center-server/src/main/java/org/sonar/updatecenter/server/HttpDownloader.java deleted file mode 100644 index 59026bb1b5c..00000000000 --- a/subprojects/sonar-update-center/sonar-update-center-server/src/main/java/org/sonar/updatecenter/server/HttpDownloader.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Sonar, open source software quality management tool. - * Copyright (C) 2009 SonarSource SA - * mailto:contact AT sonarsource DOT com - * - * Sonar 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. - * - * Sonar 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 Sonar; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 - */ -package org.sonar.updatecenter.server; - -import org.apache.commons.io.FileUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.http.HttpEntity; -import org.apache.http.HttpResponse; -import org.apache.http.auth.AuthScope; -import org.apache.http.auth.UsernamePasswordCredentials; -import org.apache.http.client.ResponseHandler; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.impl.client.DefaultHttpClient; -import org.apache.http.util.EntityUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.File; -import java.io.IOException; -import java.net.URI; -import java.net.URISyntaxException; - -public class HttpDownloader { - private static Logger LOG = LoggerFactory.getLogger(HttpDownloader.class); - - private File outputDir; - - public HttpDownloader(File outputDir) { - this.outputDir = outputDir; - } - - public File download(String url, boolean force) throws IOException, URISyntaxException { - return download(url, force, null, null); - } - public File download(String url, boolean force, String login, String password) throws IOException, URISyntaxException { - FileUtils.forceMkdir(outputDir); - - String filename = StringUtils.substringAfterLast(url, "/"); - File output = new File(outputDir, filename); - if (force || !output.exists() || output.length() <= 0) { - downloadFile(new URI(url), output, login, password); - } else { - LOG.info("Already downloaded: " + url); - } - return output; - } - - File downloadFile(URI fileURI, File toFile, String login, String password) { - LOG.info("Download " + fileURI + " in " + toFile); - DefaultHttpClient client = new DefaultHttpClient(); - try { - if (StringUtils.isNotBlank(login)) { - client.getCredentialsProvider().setCredentials( - new AuthScope(fileURI.getHost(), fileURI.getPort()), - new UsernamePasswordCredentials(login, password)); - } - HttpGet httpget = new HttpGet(fileURI); - byte[] data = client.execute(httpget, new ByteResponseHandler()); - if (data != null) { - FileUtils.writeByteArrayToFile(toFile, data); - } - - } catch (Exception e) { - LOG.error("Fail to download " + fileURI + " to " + toFile, e); - FileUtils.deleteQuietly(toFile); - - } finally { - client.getConnectionManager().shutdown(); - } - return toFile; - } - - static class ByteResponseHandler implements ResponseHandler<byte[]> { - public byte[] handleResponse(HttpResponse response) throws IOException { - HttpEntity entity = response.getEntity(); - if (response.getStatusLine().getStatusCode()!=200) { - throw new RuntimeException("Unvalid HTTP response: " + response.getStatusLine()); - } - if (entity != null) { - return EntityUtils.toByteArray(entity); - } - return null; - } - } -} diff --git a/subprojects/sonar-update-center/sonar-update-center-server/src/main/java/org/sonar/updatecenter/server/MetadataFile.java b/subprojects/sonar-update-center/sonar-update-center-server/src/main/java/org/sonar/updatecenter/server/MetadataFile.java deleted file mode 100644 index a0207021726..00000000000 --- a/subprojects/sonar-update-center/sonar-update-center-server/src/main/java/org/sonar/updatecenter/server/MetadataFile.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Sonar, open source software quality management tool. - * Copyright (C) 2009 SonarSource SA - * mailto:contact AT sonarsource DOT com - * - * Sonar 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. - * - * Sonar 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 Sonar; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 - */ -package org.sonar.updatecenter.server; - -import org.sonar.updatecenter.common.UpdateCenter; -import org.sonar.updatecenter.common.UpdateCenterDeserializer; - -import java.io.File; -import java.io.IOException; - -public final class MetadataFile { - - private Configuration conf; - private HttpDownloader downloader; - - public MetadataFile(Configuration conf, HttpDownloader downloader) { - this.conf = conf; - this.downloader = downloader; - } - - public File getFile() { - try { - File file; - if (isRemote()) { - file = downloader.download(conf.getSourcePath(), true, conf.getSourceLogin(), conf.getSourcePassword()); - } else { - file = new File(conf.getSourcePath()); - } - if (!file.exists()) { - throw new RuntimeException("The metadata file does not exist: " + file.getPath()); - } - return file; - - } catch (RuntimeException e) { - throw e; - - } catch (Exception e) { - throw new RuntimeException("Can not open the metadata file: " + conf.getSourcePath(), e); - } - } - - public UpdateCenter getUpdateCenter() { - File file = getFile(); - try { - return UpdateCenterDeserializer.fromProperties(file); - - } catch (IOException e) { - throw new RuntimeException("Can not read properties from: " + file.getPath(), e); - } - } - - private boolean isRemote() { - return conf.getSourcePath().startsWith("http"); - } -} diff --git a/subprojects/sonar-update-center/sonar-update-center-server/src/main/java/org/sonar/updatecenter/server/Server.java b/subprojects/sonar-update-center/sonar-update-center-server/src/main/java/org/sonar/updatecenter/server/Server.java deleted file mode 100644 index 4288ba2e8a1..00000000000 --- a/subprojects/sonar-update-center/sonar-update-center-server/src/main/java/org/sonar/updatecenter/server/Server.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Sonar, open source software quality management tool. - * Copyright (C) 2009 SonarSource SA - * mailto:contact AT sonarsource DOT com - * - * Sonar 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. - * - * Sonar 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 Sonar; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 - */ -package org.sonar.updatecenter.server; - -import org.apache.commons.lang.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.sonar.updatecenter.common.*; - -import java.io.File; -import java.io.IOException; -import java.net.URISyntaxException; - -public final class Server { - private static Logger LOG = LoggerFactory.getLogger(Server.class); - - public void start() throws IOException, URISyntaxException { - Configuration conf = new Configuration(System.getProperties()); - conf.log(); - HttpDownloader downloader = new HttpDownloader(conf.getWorkingDir()); - UpdateCenter center = buildFromPartialMetadata(conf, downloader); - downloadReleases(downloader, center); - generateMetadata(conf, center); - } - - private UpdateCenter buildFromPartialMetadata(Configuration conf, HttpDownloader downloader) { - return new MetadataFile(conf, downloader).getUpdateCenter(); - } - - private void downloadReleases(HttpDownloader downloader, UpdateCenter center) throws IOException, URISyntaxException { - for (Plugin plugin : center.getPlugins()) { - LOG.info("Load plugin: " + plugin.getKey()); - - File masterJar = null; - for (Release release : plugin.getReleases()) { - if (StringUtils.isNotBlank(release.getDownloadUrl())) { - File jar = downloader.download(release.getDownloadUrl(), false); - if (jar!= null && jar.exists()) { - masterJar = jar; - } else { - release.setDownloadUrl(null); - LOG.warn("Ignored because of wrong downloadUrl: plugin " + plugin.getKey() + ", version " + release.getVersion()); - } - - } else { - LOG.warn("Ignored because of missing downloadUrl: plugin " + plugin.getKey() + ", version " + release.getVersion()); - } - } - - // the last release is the master version for loading metadata included in manifest - if (masterJar != null) { - plugin.merge(new PluginManifest(masterJar)); - } - } - } - - private void generateMetadata(Configuration conf, UpdateCenter center) { - LOG.info("Generate output: " + conf.getOutputFile()); - UpdateCenterSerializer.toProperties(center, conf.getOutputFile()); - } - - public static void main(String[] args) throws IOException, URISyntaxException { - new Server().start(); - } - -} diff --git a/subprojects/sonar-update-center/sonar-update-center-server/src/main/resources/log4j.properties b/subprojects/sonar-update-center/sonar-update-center-server/src/main/resources/log4j.properties deleted file mode 100644 index be19b35722a..00000000000 --- a/subprojects/sonar-update-center/sonar-update-center-server/src/main/resources/log4j.properties +++ /dev/null @@ -1,6 +0,0 @@ -log4j.rootCategory=INFO, stdout - -log4j.appender.stdout=org.apache.log4j.ConsoleAppender -log4j.appender.stdout.layout=org.apache.log4j.PatternLayout - -log4j.appender.stdout.layout.ConversionPattern=[%d{HH:mm:ss}] %p [%c] - %m%n diff --git a/subprojects/sonar-update-center/sonar-update-center-server/src/main/resources/plugin-info-widget-template.html b/subprojects/sonar-update-center/sonar-update-center-server/src/main/resources/plugin-info-widget-template.html deleted file mode 100644 index ef9b7df47ce..00000000000 --- a/subprojects/sonar-update-center/sonar-update-center-server/src/main/resources/plugin-info-widget-template.html +++ /dev/null @@ -1,49 +0,0 @@ -<html> -<head> - <title>%name%</title> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> - <meta name="generator" content="Sonar Update Center" /> - <style type="text/css"> - @import url("style.css"); - </style> -</head> -<body> -<table cellpadding="0" cellspacing="0"> - <tr> - <td><strong>Name</strong></td> - <td>%name%</td> - </tr> - <tr> - <td><strong>Latest version</strong></td> - <td><strong>%version%</strong> ( %date% )</td> - </tr> - <tr> - <td><strong>Requires Sonar version</strong></td> - <td> - <strong>%sonarVersion%</strong> or higher - ( check <a href="http://docs.codehaus.org/display/SONAR/Plugin+version+matrix" target="_top">version compatibility</a> ) - </td> - </tr> - <tr> - <td><strong>Download</strong></td> - <td><a href="%downloadUrl%">%downloadUrl%</a></td> - </tr> - <tr> - <td><strong>License</strong></td> - <td>%license%</td> - </tr> - <tr> - <td><strong>Developers</strong></td> - <td>%developers%</td> - </tr> - <tr> - <td><strong>Issue tracker</strong></td> - <td>%issueTracker%</td> - </tr> - <tr> - <td><strong>Sources</strong></td> - <td>%sources%</td> - </tr> -</table> -</body> -</html> diff --git a/subprojects/sonar-update-center/sonar-update-center-server/src/main/resources/plugins.txt b/subprojects/sonar-update-center/sonar-update-center-server/src/main/resources/plugins.txt deleted file mode 100644 index 017fbc23e66..00000000000 --- a/subprojects/sonar-update-center/sonar-update-center-server/src/main/resources/plugins.txt +++ /dev/null @@ -1,37 +0,0 @@ -# -# Open-source plugins -# -org.codehaus.sonar-plugins:sonar-artifact-size-plugin -org.codehaus.sonar-plugins:sonar-build-breaker-plugin -org.codehaus.sonar-plugins:sonar-build-stability-plugin -org.codehaus.sonar-plugins:sonar-c-rules-plugin -org.codehaus.sonar-plugins:sonar-clirr-plugin -org.codehaus.sonar-plugins:sonar-cutoff-plugin -org.codehaus.sonar-plugins:sonar-crowd-plugin -org.codehaus.sonar-plugins:sonar-emma-plugin -org.codehaus.sonar-plugins:sonar-flex-plugin -org.codehaus.sonar-plugins:sonar-greenpepper-plugin -org.codehaus.sonar-plugins:sonar-jacoco-plugin -org.codehaus.sonar-plugins:sonar-jira-plugin -org.codehaus.sonar-plugins:sonar-ldap-plugin -org.codehaus.sonar-plugins:sonar-motion-chart-plugin -org.codehaus.sonar-plugins.pdf-report:sonar-pdfreport-plugin -org.codehaus.sonar-plugins:sonar-php-plugin -org.codehaus.sonar-plugins:sonar-piwik-plugin -org.codehaus.sonar-plugins:sonar-plugin-taglist -org.codehaus.sonar-plugins:sonar-quality-index-plugin -org.codehaus.sonar-plugins:sonar-radiator-plugin -org.codehaus.sonar-plugins:sonar-rulesmeter-plugin -org.codehaus.sonar-plugins:sonar-security-rules-plugin -org.codehaus.sonar-plugins:sonar-sigmm-plugin -org.codehaus.sonar-plugins:sonar-sonarj-plugin -org.codehaus.sonar-plugins:sonar-taglist-plugin -org.codehaus.sonar-plugins:sonar-technicaldebt-plugin -org.codehaus.sonar-plugins:sonar-timeline-plugin -org.codehaus.sonar-plugins:sonar-total-quality-plugin -org.codehaus.sonar-plugins:sonar-trac-plugin -org.codehaus.sonar-plugins:sonar-twitter-plugin -org.codehaus.sonar-plugins.scm-activity:sonar-scm-activity-plugin -org.codehaus.sonar-plugins:sonar-groovy-plugin -org.codehaus.sonar-plugins:sonar-web-plugin -org.codehaus.sonar-plugins:sonar-useless-code-tracker-plugin diff --git a/subprojects/sonar-update-center/sonar-update-center-server/src/main/resources/style.css b/subprojects/sonar-update-center/sonar-update-center-server/src/main/resources/style.css deleted file mode 100644 index a3215e49890..00000000000 --- a/subprojects/sonar-update-center/sonar-update-center-server/src/main/resources/style.css +++ /dev/null @@ -1,29 +0,0 @@ -body { - font-family: Verdana,arial,sans-serif; - font-size: 9pt; -} -a { - color: #036; -} -table { - border-collapse: collapse; - width: 100%; -} -table td { - border: 1px #CCC solid; - padding: 3px; - font-size: 9pt; -} -th { - text-align: left; -} -.button { - background: #3C78B5; - text-align: center; - border-radius: 3px; - display: block; - padding: 5px; - cursor: pointer; - margin: 5px; - color: white; -} diff --git a/subprojects/sonar-update-center/sonar-update-center-server/src/test/java/org/sonar/updatecenter/deprecated/HistoryTest.java b/subprojects/sonar-update-center/sonar-update-center-server/src/test/java/org/sonar/updatecenter/deprecated/HistoryTest.java deleted file mode 100644 index f0563ee42f1..00000000000 --- a/subprojects/sonar-update-center/sonar-update-center-server/src/test/java/org/sonar/updatecenter/deprecated/HistoryTest.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Sonar, open source software quality management tool. - * Copyright (C) 2009 SonarSource SA - * mailto:contact AT sonarsource DOT com - * - * Sonar 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. - * - * Sonar 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 Sonar; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 - */ -package org.sonar.updatecenter.deprecated; - -import org.apache.maven.artifact.versioning.DefaultArtifactVersion; -import org.junit.Test; - -import static org.junit.Assert.assertEquals; - -/** - * @author Evgeny Mandrikov - */ -public class HistoryTest { - @Test - public void testLatest() { - History<Plugin> history = new History<Plugin>(); - - history.addArtifact(new DefaultArtifactVersion("0.1"), newPlugin("0.1")); - assertEquals(1, history.getAllVersions().size()); - assertEquals("0.1", history.latest().getVersion()); - - history.addArtifact(new DefaultArtifactVersion("1.0"), newPlugin("1.0")); - assertEquals(2, history.getAllVersions().size()); - assertEquals("1.0", history.latest().getVersion()); - - history.addArtifact(new DefaultArtifactVersion("0.2"), newPlugin("0.2")); - assertEquals(3, history.getAllVersions().size()); - assertEquals("1.0", history.latest().getVersion()); - } - - private Plugin newPlugin(String version) { - Plugin plugin = new Plugin(version); - plugin.setVersion(version); - return plugin; - } -} diff --git a/subprojects/sonar-update-center/sonar-update-center-server/src/test/java/org/sonar/updatecenter/deprecated/PluginTest.java b/subprojects/sonar-update-center/sonar-update-center-server/src/test/java/org/sonar/updatecenter/deprecated/PluginTest.java deleted file mode 100644 index 95914a870e3..00000000000 --- a/subprojects/sonar-update-center/sonar-update-center-server/src/test/java/org/sonar/updatecenter/deprecated/PluginTest.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Sonar, open source software quality management tool. - * Copyright (C) 2009 SonarSource SA - * mailto:contact AT sonarsource DOT com - * - * Sonar 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. - * - * Sonar 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 Sonar; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 - */ -package org.sonar.updatecenter.deprecated; - -import org.junit.Test; - -import static org.junit.Assert.assertEquals; - -/** - * @author Evgeny Mandrikov - */ -public class PluginTest { - @Test - public void testToJsonObject() { - /* - Plugin plugin = new Plugin("org.sonar.plugins.test.Test"); - plugin.setVersion("0.1"); - plugin.setName("Sonar Test Plugin"); - plugin.setRequiredSonarVersion("2.0"); - assertEquals( - "{\"sonarVersion\":\"2.0\"" + - ",\"id\":\"org.sonar.plugins.test.Test\"" + - ",\"name\":\"Sonar Test Plugin\"" + - ",\"version\":\"0.1\"" + - "}", - plugin.toJsonObject().toJSONString() - ); - - plugin.setDownloadUrl("http://download"); - plugin.setHomepage("http://homepage"); - assertEquals( - "{\"sonarVersion\":\"2.0\"" + - ",\"id\":\"org.sonar.plugins.test.Test\"" + - ",\"name\":\"Sonar Test Plugin\"" + - ",\"downloadUrl\":\"http:\\/\\/download\"" + - ",\"homepage\":\"http:\\/\\/homepage\"" + - ",\"version\":\"0.1\"" + - "}", - plugin.toJsonObject().toJSONString() - ); - */ - } -} diff --git a/subprojects/sonar-update-center/sonar-update-center-server/src/test/java/org/sonar/updatecenter/deprecated/SonarTest.java b/subprojects/sonar-update-center/sonar-update-center-server/src/test/java/org/sonar/updatecenter/deprecated/SonarTest.java deleted file mode 100644 index efcae7fe7f8..00000000000 --- a/subprojects/sonar-update-center/sonar-update-center-server/src/test/java/org/sonar/updatecenter/deprecated/SonarTest.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Sonar, open source software quality management tool. - * Copyright (C) 2009 SonarSource SA - * mailto:contact AT sonarsource DOT com - * - * Sonar 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. - * - * Sonar 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 Sonar; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 - */ -package org.sonar.updatecenter.deprecated; - -import org.junit.Test; - -import static org.junit.Assert.assertEquals; - -/** - * @author Evgeny Mandrikov - */ -public class SonarTest { - @Test - public void testToJsonObject() throws Exception { - /* - assertEquals( - "{\"downloadUrl\":\"http:\\/\\/dist.sonar.codehaus.org\\/sonar-2.0.zip\"" + - ",\"version\":\"2.0\"" + - "}", - new Sonar("2.0").toJsonObject().toJSONString() - ); - */ - } -} |