Improve SLC Build framework
authorMathieu Baudier <mbaudier@argeo.org>
Tue, 20 Aug 2013 13:46:20 +0000 (13:46 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Tue, 20 Aug 2013 13:46:20 +0000 (13:46 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@6399 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/BasicNameVersion.java
runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/DefaultNameVersion.java [new file with mode: 0644]
runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/build/BuildConstants.java [deleted file]
runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/build/Distribution.java
runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/build/ModularDistribution.java

index 73f12fc4a51b6e32fa2bdc3e430e522882158932..9d8e71af0a90bf11914307462f2c7993860479f2 100644 (file)
@@ -17,11 +17,11 @@ package org.argeo.slc;
 
 import java.io.Serializable;
 
-public class BasicNameVersion implements NameVersion, Comparable<NameVersion>,
+/** @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<NameVersion>,
        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 (file)
index 0000000..fe230e6
--- /dev/null
@@ -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<NameVersion> {
+       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 (file)
index 3f79eca..0000000
+++ /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() {
-
-       }
-}
index d07672a44176821e63f7ceba85c44a6d7793eae9..9e233e223aa777ed6b0009c119303de0f9fb9c6a 100644 (file)
@@ -15,6 +15,7 @@
  */\r
 package org.argeo.slc.build;\r
 \r
+/** A packaged software component */\r
 public interface Distribution {\r
        public String getDistributionId();\r
 \r
index f04760552fce2bb393e543b5f92f9f95a24370b9..c63923babd5b58b69509fd91cbb5617638443f86 100644 (file)
@@ -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<NameVersion> listModulesNameVersions();
 
+       /** A descriptor such as P2, OBR or yum metadata. */
        public Object getModulesDescriptor(String descriptorType);
 }