From a05c9432445454825a97a74a431170b49903ca3c Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Tue, 20 Aug 2013 13:46:20 +0000 Subject: [PATCH 1/1] Improve SLC Build framework git-svn-id: https://svn.argeo.org/slc/trunk@6399 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../java/org/argeo/slc/BasicNameVersion.java | 63 +++------------ .../org/argeo/slc/DefaultNameVersion.java | 80 +++++++++++++++++++ .../org/argeo/slc/build/BuildConstants.java | 27 ------- .../org/argeo/slc/build/Distribution.java | 1 + .../argeo/slc/build/ModularDistribution.java | 7 ++ 5 files changed, 97 insertions(+), 81 deletions(-) create mode 100644 runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/DefaultNameVersion.java delete mode 100644 runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/build/BuildConstants.java diff --git a/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/BasicNameVersion.java b/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/BasicNameVersion.java index 73f12fc4a..9d8e71af0 100644 --- a/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/BasicNameVersion.java +++ b/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/BasicNameVersion.java @@ -17,11 +17,11 @@ package org.argeo.slc; import java.io.Serializable; -public class BasicNameVersion implements NameVersion, Comparable, +/** @deprecated use {@link DefaultNameVersion} instead. */ +@Deprecated +public class BasicNameVersion extends DefaultNameVersion implements Serializable { private static final long serialVersionUID = -5127304279136195127L; - private String name; - private String version; public BasicNameVersion() { } @@ -30,64 +30,19 @@ public class BasicNameVersion implements NameVersion, Comparable, public BasicNameVersion(String nameVersion) { int index = nameVersion.indexOf(";version="); if (index < 0) { - name = nameVersion; - version = null; + setName(nameVersion); + setVersion(null); } else { - name = nameVersion.substring(0, index); - version = nameVersion.substring(index + ";version=".length()); + setName(nameVersion.substring(0, index)); + setVersion(nameVersion.substring(index + ";version=".length())); } } public BasicNameVersion(String name, String version) { - this.name = name; - this.version = version; + super(name, version); } public BasicNameVersion(NameVersion nameVersion) { - this.name = nameVersion.getName(); - this.version = nameVersion.getVersion(); - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getVersion() { - return version; - } - - public void setVersion(String version) { - this.version = version; - } - - @Override - public boolean equals(Object obj) { - if (obj instanceof NameVersion) { - NameVersion nameVersion = (NameVersion) obj; - return name.equals(nameVersion.getName()) - && version.equals(nameVersion.getVersion()); - } else - return false; - } - - @Override - public int hashCode() { - return name.hashCode() + version.hashCode(); - } - - @Override - public String toString() { - return name + ":" + version; - } - - public int compareTo(NameVersion o) { - if (o.getName().equals(name)) - return version.compareTo(o.getVersion()); - else - return name.compareTo(o.getName()); + super(nameVersion); } } diff --git a/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/DefaultNameVersion.java b/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/DefaultNameVersion.java new file mode 100644 index 000000000..fe230e66e --- /dev/null +++ b/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/DefaultNameVersion.java @@ -0,0 +1,80 @@ +/* + * Copyright (C) 2007-2012 Argeo GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.argeo.slc; + + +/** Canonical implementation of {@link NameVersion} */ +public class DefaultNameVersion implements NameVersion, + Comparable { + private String name; + private String version; + + public DefaultNameVersion() { + } + + public DefaultNameVersion(String name, String version) { + this.name = name; + this.version = version; + } + + public DefaultNameVersion(NameVersion nameVersion) { + this.name = nameVersion.getName(); + this.version = nameVersion.getVersion(); + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + @Override + public boolean equals(Object obj) { + if (obj instanceof NameVersion) { + NameVersion nameVersion = (NameVersion) obj; + return name.equals(nameVersion.getName()) + && version.equals(nameVersion.getVersion()); + } else + return false; + } + + @Override + public int hashCode() { + return name.hashCode() + version.hashCode(); + } + + @Override + public String toString() { + return name + ":" + version; + } + + public int compareTo(NameVersion o) { + if (o.getName().equals(name)) + return version.compareTo(o.getVersion()); + else + return name.compareTo(o.getName()); + } +} diff --git a/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/build/BuildConstants.java b/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/build/BuildConstants.java deleted file mode 100644 index 3f79ecaca..000000000 --- a/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/build/BuildConstants.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (C) 2007-2012 Argeo GmbH - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.argeo.slc.build; - -public class BuildConstants { - - public final static String RELEASE = "RELEASE"; - public final static String LATEST = "LATEST"; - public final static String SNAPSHOT = "SNAPSHOT"; - - private BuildConstants() { - - } -} diff --git a/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/build/Distribution.java b/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/build/Distribution.java index d07672a44..9e233e223 100644 --- a/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/build/Distribution.java +++ b/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/build/Distribution.java @@ -15,6 +15,7 @@ */ package org.argeo.slc.build; +/** A packaged software component */ public interface Distribution { public String getDistributionId(); diff --git a/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/build/ModularDistribution.java b/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/build/ModularDistribution.java index f04760552..c63923bab 100644 --- a/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/build/ModularDistribution.java +++ b/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/build/ModularDistribution.java @@ -19,11 +19,18 @@ import java.util.Set; import org.argeo.slc.NameVersion; +/** + * A distribution of modules, that is components that can be identified by a + * name / version couple. + * + * @see NameVersion + */ public interface ModularDistribution extends Distribution, NameVersion { public Distribution getModuleDistribution(String moduleName, String moduleVersion); public Set listModulesNameVersions(); + /** A descriptor such as P2, OBR or yum metadata. */ public Object getModulesDescriptor(String descriptorType); } -- 2.39.2