r1707 - in trunk/src: main/java/org/nuiton/license/plugin main/java/org/nuiton/license/plugin/repository main/resources/META-INF/licenses main/resources/META-INF/licenses/cddl_v1 main/resources/META-INF/licenses/mit test/java/org/nuiton/license/plugin/repository
Author: tchemit Date: 2010-04-06 15:04:14 +0200 (Tue, 06 Apr 2010) New Revision: 1707 Log: introduce LicenseStore, deprecates LicenseRepository, + other stuff to be continued... Added: trunk/src/main/java/org/nuiton/license/plugin/AbstractLicenseMojo.java trunk/src/main/java/org/nuiton/license/plugin/UpdateHeaderFileMojo.java trunk/src/main/java/org/nuiton/license/plugin/repository/LicenseStore.java trunk/src/main/resources/META-INF/licenses/cddl_v1/ trunk/src/main/resources/META-INF/licenses/cddl_v1/header.txt trunk/src/main/resources/META-INF/licenses/cddl_v1/license.txt trunk/src/main/resources/META-INF/licenses/mit/ trunk/src/main/resources/META-INF/licenses/mit/header.txt trunk/src/main/resources/META-INF/licenses/mit/license.txt trunk/src/test/java/org/nuiton/license/plugin/repository/LicenseStoreTest.java Added: trunk/src/main/java/org/nuiton/license/plugin/AbstractLicenseMojo.java =================================================================== --- trunk/src/main/java/org/nuiton/license/plugin/AbstractLicenseMojo.java (rev 0) +++ trunk/src/main/java/org/nuiton/license/plugin/AbstractLicenseMojo.java 2010-04-06 13:04:14 UTC (rev 1707) @@ -0,0 +1,94 @@ +package org.nuiton.license.plugin; + +import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.project.MavenProject; +import org.nuiton.license.plugin.repository.LicenseStore; +import org.nuiton.plugin.AbstractPlugin; + +import java.io.IOException; + +/** + * Abstract license mojo. + * + * @author tchemit <chemit@codelutin.com> + * @since 2.1 + */ +public abstract class AbstractLicenseMojo extends AbstractPlugin { + + /** + * Dependance du projet. + * + * @parameter default-value="${project}" + * @required + * @since 2.1 + */ + private MavenProject project; + + /** + * Un flag pour activer le mode verbeux. + * + * @parameter expression="${license.verbose}" default-value="${maven.verbose}" + * @since 2.1 + */ + private boolean verbose; + + /** + * Encoding a utiliser pour lire et ecrire les fichiers. + * + * @parameter expression="${license.encoding}" default-value="${project.build.sourceEncoding}" + * @required + * @since 2.1 + */ + private String encoding; + + @Override + public final MavenProject getProject() { + return project; + } + + @Override + public final void setProject(MavenProject project) { + this.project = project; + } + + @Override + public final boolean isVerbose() { + return verbose; + } + + @Override + public final void setVerbose(boolean verbose) { + this.verbose = verbose; + } + + public final String getEncoding() { + return encoding; + } + + public final void setEncoding(String encoding) { + this.encoding = encoding; + } + + protected LicenseStore createLicenseStore(String... extraResolver) + throws MojoExecutionException { + LicenseStore store; + try { + store = new LicenseStore(); + store.addJarRepository(); + if (extraResolver != null) { + for (String s : extraResolver) { + store.addRepository(s); + } + } + store.init(); + } catch (IllegalArgumentException ex) { + throw new MojoExecutionException( + "could not obtain the license repository", ex); + } catch (IOException ex) { + throw new MojoExecutionException( + "could not obtain the license repository", ex); + } + return store; + } + +} Property changes on: trunk/src/main/java/org/nuiton/license/plugin/AbstractLicenseMojo.java ___________________________________________________________________ Added: svn:keywords + "Author Date Id Revision HeadURL Added: trunk/src/main/java/org/nuiton/license/plugin/UpdateHeaderFileMojo.java =================================================================== --- trunk/src/main/java/org/nuiton/license/plugin/UpdateHeaderFileMojo.java (rev 0) +++ trunk/src/main/java/org/nuiton/license/plugin/UpdateHeaderFileMojo.java 2010-04-06 13:04:14 UTC (rev 1707) @@ -0,0 +1,181 @@ +package org.nuiton.license.plugin; + +import org.apache.maven.project.MavenProject; +import org.codehaus.plexus.velocity.VelocityComponent; +import org.nuiton.license.plugin.header.generator.HeaderGenerator; +import org.nuiton.plugin.AbstractPlugin; +import org.nuiton.plugin.PluginHelper; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + + +/** + * The goal to update (or add) the licence header on some files. + * <p/> + * This goal replace the {@code update-header} goal which can not deal with + * Copyright. + * <p/> + * This goal use a specific project file descriptor {@code license.xml} to + * describe all files to treate more precisly for a whole project. + * + * @author chemit + * @requiresProject true + * @goal update-header-file + * @since 1.2 + */ +public class UpdateHeaderFileMojo extends AbstractLicenseMojo { + + /** + * l'annee de creation du module (sera place dans le header) + * + * @parameter expression="${license.inceptionYear}" default-value="${project.inceptionYear}" + * @required + * @since 1.0.0 + */ + protected String inceptionYear; + + /** + * le nom de l'organisation (sera place dans le header) + * + * @parameter expression="${license.organizationName}" + * default-value="${project.organization.name}" + * @required + * @since 1.0.0 + */ + protected String organizationName; + + /** + * le nom du projet (sera place dans le header) + * + * @parameter expression="${license.projectName}" default-value="${project.name}" + * @required + * @since 1.0.0 + */ + protected String projectName; + + /** + * Le type de license a appliquer. + * + * @parameter expression="${license.licenseName}" + * @required + * @since 1.0.0 + */ + protected String licenseName; + + /** + * Un flag pour conserver un backup des fichiers modifies. + * + * @parameter expression="${license.keepBackup}" default-value="false" + * @since 1.0.0 + */ + protected boolean keepBackup; + + /** + * A flag to skip the goal. + * + * @parameter expression="${skipUpdateHeader}" default-value="false" + * @since 1.0.3 + */ + protected boolean skipUpdateHeader; + + /** + * A flag to test plugin but modify no file. + * + * @parameter expression="${dryRun}" default-value="false" + * @since 1.0.3 + */ + protected boolean dryRun; + + /** + * Velocity Component. + * + * @component roleHint="maven-license-plugin" + * @since 2.0.0 + */ + protected VelocityComponent velocity; + + /** + * All available generators + * + * @component role="org.nuiton.license.plugin.header.generator.HeaderGenerator" + */ + protected Map<String, HeaderGenerator> _generators; + + /** le timestamp utilise pour la generation */ + protected long timestamp; + + @Override + protected void init() throws Exception { + } + + @Override + protected void doAction() throws Exception { + } + + public boolean isDryRun() { + return dryRun; + } + + public void setDryRun(boolean dryRun) { + this.dryRun = dryRun; + } + + public boolean isKeepBackup() { + return keepBackup; + } + + public void setKeepBackup(boolean keepBackup) { + this.keepBackup = keepBackup; + } + + public long getTimestamp() { + return timestamp; + } + + public void setTimestamp(long timestamp) { + this.timestamp = timestamp; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public boolean isSkipUpdateHeader() { + return skipUpdateHeader; + } + + public void setSkipUpdateHeader(boolean skipUpdateHeader) { + this.skipUpdateHeader = skipUpdateHeader; + } + + public String getInceptionYear() { + return inceptionYear; + } + + public void setInceptionYear(String inceptionYear) { + this.inceptionYear = inceptionYear; + } + + public String getLicenseName() { + return licenseName; + } + + public void setLicenseName(String licenseName) { + this.licenseName = licenseName; + } + + public String getOrganizationName() { + return organizationName; + } + + public void setOrganizationName(String organizationName) { + this.organizationName = organizationName; + } + +} Property changes on: trunk/src/main/java/org/nuiton/license/plugin/UpdateHeaderFileMojo.java ___________________________________________________________________ Added: svn:keywords + "Author Date Id Revision HeadURL Added: trunk/src/main/java/org/nuiton/license/plugin/repository/LicenseStore.java =================================================================== --- trunk/src/main/java/org/nuiton/license/plugin/repository/LicenseStore.java (rev 0) +++ trunk/src/main/java/org/nuiton/license/plugin/repository/LicenseStore.java 2010-04-06 13:04:14 UTC (rev 1707) @@ -0,0 +1,134 @@ +package org.nuiton.license.plugin.repository; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.io.IOException; +import java.net.URL; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +/** + * The {@code LicenseStore} offers {@link License} coming from different {@link + * LicenseRepository}. + * + * @author tchemit <chemit@codelutin.com> + * @since 2.1 + */ +public class LicenseStore implements Iterable<LicenseRepository> { + + /** Logger */ + private static final Log log = LogFactory.getLog(LicenseStore.class); + + /** class-path directory where is the licenses repository */ + public static final String JAR_LICENSE_REPOSITORY = "/META-INF/licenses"; + + /** list of available license repositories */ + protected List<LicenseRepository> repositories; + + /** flag to know if store was init */ + protected boolean init; + + public void init() throws IOException { + checkNotInit("init"); + try { + if (repositories == null) { + // adding the default class-path repository + addJarRepository(); + } + for (LicenseRepository r : repositories) { + r.load(); + } + } finally { + init = true; + } + } + + public List<LicenseRepository> getRepositories() { + return repositories; + } + + public License[] getLicenses() { + checkInit("getLicenses"); + List<License> result = new ArrayList<License>(); + if (repositories != null) { + for (LicenseRepository repository : repositories) { + result.addAll(repository.getLicenses()); + } + } + return result.toArray(new License[result.size()]); + } + + public License getLicense(String licenseName) { + checkInit("getLicense"); + Iterator<LicenseRepository> itr = iterator(); + License result = null; + while (itr.hasNext()) { + LicenseRepository licenseRepository = itr.next(); + License license = licenseRepository.getLicense(licenseName); + if (license != null) { + result = license; + break; + } + } + if (result == null && log.isDebugEnabled()) { + log.debug("could not find license named '" + licenseName + "'"); + } + return result; + } + + public void addRepository(String extraResolver) throws IOException { + addRepository(new URL(extraResolver)); + } + + public void addRepository(URL baseURL) throws IOException { + checkNotInit("addRepository"); + LicenseRepository repository = new LicenseRepository(); + repository.setBaseURL(baseURL); + if (log.isDebugEnabled()) { + log.debug("Adding a license repository " + repository); + } + addRepository(repository); + } + + public void addJarRepository() throws IOException { + checkNotInit("addJarRepository"); + URL baseURL = getClass().getResource(JAR_LICENSE_REPOSITORY); + LicenseRepository repository = new LicenseRepository(); + repository.setBaseURL(baseURL); + if (log.isDebugEnabled()) { + log.debug("Adding a jar license repository " + repository); + } + addRepository(repository); + } + + @Override + public Iterator<LicenseRepository> iterator() { + return getRepositories().iterator(); + } + + protected void addRepository(LicenseRepository repository) { + checkNotInit("addRepository"); + if (repositories == null) { + repositories = new ArrayList<LicenseRepository>(); + + } + if (log.isInfoEnabled()) { + log.info("Adding a license repository " + repository); + } + repositories.add(repository); + } + + protected void checkInit(String operation) throws IllegalStateException { + if (!init) { + throw new IllegalStateException("store was not init, operation [" + operation + "] not possible."); + } + } + + protected void checkNotInit(String operation) throws IllegalStateException { + if (init) { + throw new IllegalStateException("store was init, operation [" + operation + "+] not possible."); + } + } +} Property changes on: trunk/src/main/java/org/nuiton/license/plugin/repository/LicenseStore.java ___________________________________________________________________ Added: svn:keywords + "Author Date Id Revision HeadURL Added: trunk/src/main/resources/META-INF/licenses/cddl_v1/header.txt =================================================================== --- trunk/src/main/resources/META-INF/licenses/cddl_v1/header.txt (rev 0) +++ trunk/src/main/resources/META-INF/licenses/cddl_v1/header.txt 2010-04-06 13:04:14 UTC (rev 1707) @@ -0,0 +1,3 @@ +COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 + +TODO Added: trunk/src/main/resources/META-INF/licenses/cddl_v1/license.txt =================================================================== --- trunk/src/main/resources/META-INF/licenses/cddl_v1/license.txt (rev 0) +++ trunk/src/main/resources/META-INF/licenses/cddl_v1/license.txt 2010-04-06 13:04:14 UTC (rev 1707) @@ -0,0 +1,380 @@ +COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 + +1. Definitions. + +1.1. "Contributor" means each individual or entity that +creates or contributes to the creation of Modifications. + +1.2. "Contributor Version" means the combination of the +Original Software, prior Modifications used by a +Contributor (if any), and the Modifications made by that +particular Contributor. + +1.3. "Covered Software" means (a) the Original Software, or +(b) Modifications, or (c) the combination of files +containing Original Software with files containing +Modifications, in each case including portions thereof. + +1.4. "Executable" means the Covered Software in any form +other than Source Code. + +1.5. "Initial Developer" means the individual or entity +that first makes Original Software available under this +License. + +1.6. "Larger Work" means a work which combines Covered +Software or portions thereof with code not governed by the +terms of this License. + +1.7. "License" means this document. + +1.8. "Licensable" means having the right to grant, to the +maximum extent possible, whether at the time of the initial +grant or subsequently acquired, any and all of the rights +conveyed herein. + +1.9. "Modifications" means the Source Code and Executable +form of any of the following: + +A. Any file that results from an addition to, +deletion from or modification of the contents of a +file containing Original Software or previous +Modifications; + +B. Any new file that contains any part of the +Original Software or previous Modification; or + +C. Any new file that is contributed or otherwise made +available under the terms of this License. + +1.10. "Original Software" means the Source Code and +Executable form of computer software code that is +originally released under this License. + +1.11. "Patent Claims" means any patent claim(s), now owned +or hereafter acquired, including without limitation, +method, process, and apparatus claims, in any patent +Licensable by grantor. + +1.12. "Source Code" means (a) the common form of computer +software code in which modifications are made and (b) +associated documentation included in or with such code. + +1.13. "You" (or "Your") means an individual or a legal +entity exercising rights under, and complying with all of +the terms of, this License. For legal entities, "You" +includes any entity which controls, is controlled by, or is +under common control with You. For purposes of this +definition, "control" means (a) the power, direct or +indirect, to cause the direction or management of such +entity, whether by contract or otherwise, or (b) ownership +of more than fifty percent (50%) of the outstanding shares +or beneficial ownership of such entity. + +2. License Grants. + +2.1. The Initial Developer Grant. + +Conditioned upon Your compliance with Section 3.1 below and +subject to third party intellectual property claims, the +Initial Developer hereby grants You a world-wide, +royalty-free, non-exclusive license: + +(a) under intellectual property rights (other than +patent or trademark) Licensable by Initial Developer, +to use, reproduce, modify, display, perform, +sublicense and distribute the Original Software (or +portions thereof), with or without Modifications, +and/or as part of a Larger Work; and + +(b) under Patent Claims infringed by the making, +using or selling of Original Software, to make, have +made, use, practice, sell, and offer for sale, and/or +otherwise dispose of the Original Software (or +portions thereof). + +(c) The licenses granted in Sections 2.1(a) and (b) +are effective on the date Initial Developer first +distributes or otherwise makes the Original Software +available to a third party under the terms of this +License. + +(d) Notwithstanding Section 2.1(b) above, no patent +license is granted: (1) for code that You delete from +the Original Software, or (2) for infringements +caused by: (i) the modification of the Original +Software, or (ii) the combination of the Original +Software with other software or devices. + +2.2. Contributor Grant. + +Conditioned upon Your compliance with Section 3.1 below and +subject to third party intellectual property claims, each +Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than +patent or trademark) Licensable by Contributor to +use, reproduce, modify, display, perform, sublicense +and distribute the Modifications created by such +Contributor (or portions thereof), either on an +unmodified basis, with other Modifications, as +Covered Software and/or as part of a Larger Work; and + +(b) under Patent Claims infringed by the making, +using, or selling of Modifications made by that +Contributor either alone and/or in combination with +its Contributor Version (or portions of such +combination), to make, use, sell, offer for sale, +have made, and/or otherwise dispose of: (1) +Modifications made by that Contributor (or portions +thereof); and (2) the combination of Modifications +made by that Contributor with its Contributor Version +(or portions of such combination). + +(c) The licenses granted in Sections 2.2(a) and +2.2(b) are effective on the date Contributor first +distributes or otherwise makes the Modifications +available to a third party. + +(d) Notwithstanding Section 2.2(b) above, no patent +license is granted: (1) for any code that Contributor +has deleted from the Contributor Version; (2) for +infringements caused by: (i) third party +modifications of Contributor Version, or (ii) the +combination of Modifications made by that Contributor +with other software (except as part of the +Contributor Version) or other devices; or (3) under +Patent Claims infringed by Covered Software in the +absence of Modifications made by that Contributor. + +3. Distribution Obligations. + +3.1. Availability of Source Code. + +Any Covered Software that You distribute or otherwise make +available in Executable form must also be made available in +Source Code form and that Source Code form must be +distributed only under the terms of this License. You must +include a copy of this License with every copy of the +Source Code form of the Covered Software You distribute or +otherwise make available. You must inform recipients of any +such Covered Software in Executable form as to how they can +obtain such Covered Software in Source Code form in a +reasonable manner on or through a medium customarily used +for software exchange. + +3.2. Modifications. + +The Modifications that You create or to which You +contribute are governed by the terms of this License. You +represent that You believe Your Modifications are Your +original creation(s) and/or You have sufficient rights to +grant the rights conveyed by this License. + +3.3. Required Notices. + +You must include a notice in each of Your Modifications +that identifies You as the Contributor of the Modification. +You may not remove or alter any copyright, patent or +trademark notices contained within the Covered Software, or +any notices of licensing or any descriptive text giving +attribution to any Contributor or the Initial Developer. + +3.4. Application of Additional Terms. + +You may not offer or impose any terms on any Covered +Software in Source Code form that alters or restricts the +applicable version of this License or the recipients' +rights hereunder. You may choose to offer, and to charge a +fee for, warranty, support, indemnity or liability +obligations to one or more recipients of Covered Software. +However, you may do so only on Your own behalf, and not on +behalf of the Initial Developer or any Contributor. You +must make it absolutely clear that any such warranty, +support, indemnity or liability obligation is offered by +You alone, and You hereby agree to indemnify the Initial +Developer and every Contributor for any liability incurred +by the Initial Developer or such Contributor as a result of +warranty, support, indemnity or liability terms You offer. + +3.5. Distribution of Executable Versions. + +You may distribute the Executable form of the Covered +Software under the terms of this License or under the terms +of a license of Your choice, which may contain terms +different from this License, provided that You are in +compliance with the terms of this License and that the +license for the Executable form does not attempt to limit +or alter the recipient's rights in the Source Code form +from the rights set forth in this License. If You +distribute the Covered Software in Executable form under a +different license, You must make it absolutely clear that +any terms which differ from this License are offered by You +alone, not by the Initial Developer or Contributor. You +hereby agree to indemnify the Initial Developer and every +Contributor for any liability incurred by the Initial +Developer or such Contributor as a result of any such terms +You offer. + +3.6. Larger Works. + +You may create a Larger Work by combining Covered Software +with other code not governed by the terms of this License +and distribute the Larger Work as a single product. In such +a case, You must make sure the requirements of this License +are fulfilled for the Covered Software. + +4. Versions of the License. + +4.1. New Versions. + +Sun Microsystems, Inc. is the initial license steward and +may publish revised and/or new versions of this License +from time to time. Each version will be given a +distinguishing version number. Except as provided in +Section 4.3, no one other than the license steward has the +right to modify this License. + +4.2. Effect of New Versions. + +You may always continue to use, distribute or otherwise +make the Covered Software available under the terms of the +version of the License under which You originally received +the Covered Software. If the Initial Developer includes a +notice in the Original Software prohibiting it from being +distributed or otherwise made available under any +subsequent version of the License, You must distribute and +make the Covered Software available under the terms of the +version of the License under which You originally received +the Covered Software. Otherwise, You may also choose to +use, distribute or otherwise make the Covered Software +available under the terms of any subsequent version of the +License published by the license steward. + +4.3. Modified Versions. + +When You are an Initial Developer and You want to create a +new license for Your Original Software, You may create and +use a modified version of this License if You: (a) rename +the license and remove any references to the name of the +license steward (except to note that the license differs +from this License); and (b) otherwise make it clear that +the license contains terms which differ from this License. + +5. DISCLAIMER OF WARRANTY. + +COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" +BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED +SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR +PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY +COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE +INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF +ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF +WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF +ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS +DISCLAIMER. + +6. TERMINATION. + +6.1. This License and the rights granted hereunder will +terminate automatically if You fail to comply with terms +herein and fail to cure such breach within 30 days of +becoming aware of the breach. Provisions which, by their +nature, must remain in effect beyond the termination of +this License shall survive. + +6.2. If You assert a patent infringement claim (excluding +declaratory judgment actions) against Initial Developer or +a Contributor (the Initial Developer or Contributor against +whom You assert such claim is referred to as "Participant") +alleging that the Participant Software (meaning the +Contributor Version where the Participant is a Contributor +or the Original Software where the Participant is the +Initial Developer) directly or indirectly infringes any +patent, then any and all rights granted directly or +indirectly to You by such Participant, the Initial +Developer (if the Initial Developer is not the Participant) +and all Contributors under Sections 2.1 and/or 2.2 of this +License shall, upon 60 days notice from Participant +terminate prospectively and automatically at the expiration +of such 60 day notice period, unless if within such 60 day +period You withdraw Your claim with respect to the +Participant Software against such Participant either +unilaterally or pursuant to a written agreement with +Participant. + +6.3. In the event of termination under Sections 6.1 or 6.2 +above, all end user licenses that have been validly granted +by You or any distributor hereunder prior to termination +(excluding licenses granted to You by any distributor) +shall survive termination. + +7. LIMITATION OF LIABILITY. + +UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT +(INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE +INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF +COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE +LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR +CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT +LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK +STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER +COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN +INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF +LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL +INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT +APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO +NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR +CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT +APPLY TO YOU. + +8. U.S. GOVERNMENT END USERS. + +The Covered Software is a "commercial item," as that term is +defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial +computer software" (as that term is defined at 48 C.F.R. ¤ +252.227-7014(a)(1)) and "commercial computer software +documentation" as such terms are used in 48 C.F.R. 12.212 (Sept. +1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 +through 227.7202-4 (June 1995), all U.S. Government End Users +acquire Covered Software with only those rights set forth herein. +This U.S. Government Rights clause is in lieu of, and supersedes, +any other FAR, DFAR, or other clause or provision that addresses +Government rights in computer software under this License. + +9. MISCELLANEOUS. + +This License represents the complete agreement concerning subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the +extent necessary to make it enforceable. This License shall be +governed by the law of the jurisdiction specified in a notice +contained within the Original Software (except to the extent +applicable law, if any, provides otherwise), excluding such +jurisdiction's conflict-of-law provisions. Any litigation +relating to this License shall be subject to the jurisdiction of +the courts located in the jurisdiction and venue specified in a +notice contained within the Original Software, with the losing +party responsible for costs, including, without limitation, court +costs and reasonable attorneys' fees and expenses. The +application of the United Nations Convention on Contracts for the +International Sale of Goods is expressly excluded. Any law or +regulation which provides that the language of a contract shall +be construed against the drafter shall not apply to this License. +You agree that You alone are responsible for compliance with the +United States export administration regulations (and the export +control laws and regulation of any other countries) when You use, +distribute or otherwise make available any Covered Software. + +10. RESPONSIBILITY FOR CLAIMS. + +As between Initial Developer and the Contributors, each party is +responsible for claims and damages arising, directly or +indirectly, out of its utilization of rights under this License +and You agree to work with Initial Developer and Contributors to +distribute such responsibility on an equitable basis. Nothing +herein is intended or shall be deemed to constitute any admission +of liability. Added: trunk/src/main/resources/META-INF/licenses/mit/header.txt =================================================================== --- trunk/src/main/resources/META-INF/licenses/mit/header.txt (rev 0) +++ trunk/src/main/resources/META-INF/licenses/mit/header.txt 2010-04-06 13:04:14 UTC (rev 1707) @@ -0,0 +1,17 @@ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. Added: trunk/src/main/resources/META-INF/licenses/mit/license.txt =================================================================== --- trunk/src/main/resources/META-INF/licenses/mit/license.txt (rev 0) +++ trunk/src/main/resources/META-INF/licenses/mit/license.txt 2010-04-06 13:04:14 UTC (rev 1707) @@ -0,0 +1,17 @@ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. Added: trunk/src/test/java/org/nuiton/license/plugin/repository/LicenseStoreTest.java =================================================================== --- trunk/src/test/java/org/nuiton/license/plugin/repository/LicenseStoreTest.java (rev 0) +++ trunk/src/test/java/org/nuiton/license/plugin/repository/LicenseStoreTest.java 2010-04-06 13:04:14 UTC (rev 1707) @@ -0,0 +1,51 @@ +package org.nuiton.license.plugin.repository; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.io.IOException; +import java.util.List; + +/** + * Tests {@link LicenseStore}. + * + * @author tchemit <chemit@codelutin.com> + * @since 2.1 + */ +public class LicenseStoreTest { + + public static final String[] DEFAULT_LICENSES = {"apache_v2", + "cddl_v1", + "gpl_v1", + "gpl_v2", + "gpl_v3", + "lgpl_v2_1", + "lgpl_v3", + "mit" + }; + + LicenseStore store; + + @Before + public void setUp() { + store = null; + } + + @Test + public void testJArRepository() throws IOException { + + store = new LicenseStore(); + store.init(); + + List<LicenseRepository> repositories = store.getRepositories(); + Assert.assertNotNull(repositories); + Assert.assertEquals(1, repositories.size()); + LicenseRepository repository = repositories.get(0); + + License[] licenses = store.getLicenses(); + Assert.assertNotNull(licenses); + Assert.assertEquals(DEFAULT_LICENSES.length, licenses.length); + + } +} Property changes on: trunk/src/test/java/org/nuiton/license/plugin/repository/LicenseStoreTest.java ___________________________________________________________________ Added: svn:keywords + "Author Date Id Revision HeadURL
participants (1)
-
tchemit@users.nuiton.org