+++ /dev/null
-package org.argeo.slc.repo;
-
-import java.io.InputStream;
-import java.net.URL;
-
-import org.apache.commons.io.IOUtils;
-import org.argeo.slc.SlcException;
-import org.argeo.slc.build.License;
-
-/** A free software license */
-public abstract class FreeLicense implements License {
- final static String RESOURCES = "/org/argeo/slc/repo/license/";
-
- /** GNU */
- public final static FreeLicense GPL_v3 = new FreeLicense(
- "GNU General Public License, version 3.0",
- "http://www.gnu.org/licenses/gpl-3.0.txt",
- "http://www.gnu.org/licenses/", RESOURCES + "gpl-3.0.txt") {
- };
-
- public final static FreeLicense GPL_v2 = new FreeLicense(
- "GNU General Public License, version 2.0",
- "http://www.gnu.org/licenses/gpl-2.0.txt",
- "http://www.gnu.org/licenses/", RESOURCES + "gpl-2.0.txt") {
- };
- public final static FreeLicense GPL = GPL_v3;
-
- public final static FreeLicense LGPL_v3 = new FreeLicense(
- "GNU Lesser General Public License, version 3.0",
- "http://www.gnu.org/licenses/lgpl-3.0.txt",
- "http://www.gnu.org/licenses/", RESOURCES + "lgpl-3.0.txt") {
- };
-
- public final static FreeLicense LGPL_v2 = new FreeLicense(
- "GNU Lesser General Public License, version 2.1",
- "http://www.gnu.org/licenses/lgpl-2.1.txt",
- "http://www.gnu.org/licenses/", RESOURCES + "lgpl-2.1.txt") {
- };
- public final static FreeLicense LGPL = LGPL_v3;
-
- /** Apache */
- public final static FreeLicense APACHE_v2 = new FreeLicense(
- "Apache License, Version 2.0",
- "http://www.apache.org/licenses/LICENSE-2.0.txt",
- "http://www.apache.org/licenses/", RESOURCES + "apache-2.0.txt") {
- };
- public final static FreeLicense APACHE = APACHE_v2;
-
- /** Eclipse */
- public final static FreeLicense EPL_v1 = new FreeLicense(
- "Eclipse Public License, Version 1.0",
- "http://www.eclipse.org/legal/epl-v10.html",
- "http://www.eclipse.org/legal/eplfaq.php", RESOURCES
- + "epl-1.0.txt") {
- };
- public final static FreeLicense EPL = EPL_v1;
-
- /** Miscellaneous */
- public final static FreeLicense MIT = new FreeLicense("The MIT License",
- "http://opensource.org/licenses/MIT", null, RESOURCES + "mit.txt") {
- };
-
- public final static FreeLicense BSD_NEW = new FreeLicense(
- "The BSD 3-Clause License",
- "http://opensource.org/licenses/BSD-3-Clause", null, RESOURCES
- + "bsd-3-clause.txt") {
- };
-
- public final static FreeLicense BSD = BSD_NEW;
-
- public final static FreeLicense CDDL_v1 = new FreeLicense(
- "Common Development and Distribution License",
- "http://opensource.org/licenses/CDDL-1.0", null, RESOURCES
- + "cddl-1.0.txt") {
- };
- public final static FreeLicense CDDL = CDDL_v1;
-
- /** Public domain corner case */
- public final static License PUBLIC_DOMAIN = new License() {
-
- public String getUri() {
- return "http://creativecommons.org/about/pdm";
- }
-
- public String getText() {
- return "This work is free of known copyright restrictions.";
- }
-
- public String getName() {
- return "Public Domain License";
- }
-
- public String getLink() {
- return "http://wiki.creativecommons.org/PDM_FAQ";
- }
- };
-
- private final String name, uri, link, resource;
-
- public FreeLicense(String name, String uri) {
- this(name, uri, null, null);
- }
-
- public FreeLicense(String name, String uri, String link) {
- this(name, uri, link, null);
- }
-
- public FreeLicense(String name, String uri, String link, String resource) {
- if (uri == null)
- throw new SlcException("URI cannot be null");
- this.name = name;
- this.uri = uri;
- this.link = link;
- this.resource = resource;
- getText();
- }
-
- public String getName() {
- return name;
- }
-
- public String getUri() {
- return uri;
- }
-
- public String getLink() {
- return link;
- }
-
- @Override
- public String getText() {
- InputStream in = null;
- URL url = null;
- try {
- if (resource != null)
- url = getClass().getClassLoader().getResource(resource);
- else
- url = new URL(uri);
- in = url.openStream();
- String text = IOUtils.toString(in);
- return text;
- } catch (Exception e) {
- throw new SlcException("Cannot retrieve license " + name + " from "
- + url, e);
- } finally {
- IOUtils.closeQuietly(in);
- }
- }
-
- @Override
- public boolean equals(Object obj) {
- if (!(obj instanceof License))
- return false;
- return ((License) obj).getUri().equals(getUri());
- }
-
- @Override
- public int hashCode() {
- return getUri().hashCode();
- }
-
- @Override
- public String toString() {
- return name + " (" + uri + ")";
- }
-}