OSDN Git Service

SDK Updater: Add optional license elements to XML schema.
authorRaphael <raphael@google.com>
Fri, 5 Jun 2009 20:53:08 +0000 (13:53 -0700)
committerRaphael <raphael@google.com>
Fri, 5 Jun 2009 21:01:10 +0000 (14:01 -0700)
sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/AddonPackage.java
sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/DocPackage.java
sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/LocalSdkParser.java
sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/Package.java
sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/PlatformPackage.java
sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/ToolPackage.java
sdkmanager/libs/sdklib/src/com/android/sdklib/repository/SdkRepository.java
sdkmanager/libs/sdklib/src/com/android/sdklib/repository/sdk-repository.xsd
sdkmanager/libs/sdklib/tests/com/android/sdklib/repository/repository_sample.xml

index bd76a4c..761c236 100755 (executable)
@@ -74,14 +74,15 @@ public class AddonPackage extends Package {
     }\r
 \r
     /**\r
-     * Creates a new platform package based on an actual {@link IAndroidTarget} (with\r
+     * Creates a new platform package based on an actual {@link IAndroidTarget} (which\r
      * {@link IAndroidTarget#isPlatform()} false) from the {@link SdkManager}.\r
      * This is used to list local SDK folders.\r
      */\r
     AddonPackage(IAndroidTarget target) {\r
         super(  null,                       //source\r
                 0,                          //revision\r
-                target.getDescription(),  //description\r
+                null,                       //license\r
+                target.getDescription(),    //description\r
                 null,                       //descUrl\r
                 Os.getCurrentOs(),          //archiveOs\r
                 Arch.getCurrentArch(),      //archiveArch\r
index 8f07255..e2c2cf5 100755 (executable)
@@ -49,6 +49,7 @@ public class DocPackage extends Package {
     DocPackage(RepoSource source,\r
             int apiLevel,\r
             int revision,\r
+            String license,\r
             String description,\r
             String descUrl,\r
             Os archiveOs,\r
@@ -58,6 +59,7 @@ public class DocPackage extends Package {
             String archiveChecksum) {\r
         super(source,\r
                 revision,\r
+                license,\r
                 description,\r
                 descUrl,\r
                 archiveOs,\r
index f150510..8d067f2 100755 (executable)
@@ -167,6 +167,7 @@ public class LocalSdkParser {
             pkg = new ToolPackage(\r
                     null,                       //source\r
                     0,                          //revision\r
+                    null,                       //license\r
                     "Tools",                    //description\r
                     null,                       //descUrl\r
                     Os.getCurrentOs(),          //archiveOs\r
@@ -229,6 +230,7 @@ public class LocalSdkParser {
                         null,                       //source\r
                         0,                          //apiLevel\r
                         0,                          //revision\r
+                        null,                       //license\r
                         String.format("Documentation for %1$s", found),     //description\r
                         null,                       //descUrl\r
                         Os.getCurrentOs(),          //archiveOs\r
index 55ecaef..4d28f08 100755 (executable)
@@ -40,6 +40,7 @@ import java.util.ArrayList;
 public abstract class Package implements IDescription {\r
 \r
     private final int mRevision;\r
+    private final String mLicense;\r
     private final String mDescription;\r
     private final String mDescUrl;\r
     private final Archive[] mArchives;\r
@@ -55,7 +56,7 @@ public abstract class Package implements IDescription {
         mRevision    = getXmlInt   (packageNode, SdkRepository.NODE_REVISION, 0);\r
         mDescription = getXmlString(packageNode, SdkRepository.NODE_DESCRIPTION);\r
         mDescUrl     = getXmlString(packageNode, SdkRepository.NODE_DESC_URL);\r
-\r
+        mLicense     = getXmlString(packageNode, SdkRepository.NODE_LICENSE);\r
         mArchives = parseArchives(getFirstChild(packageNode, SdkRepository.NODE_ARCHIVES));\r
     }\r
 \r
@@ -65,6 +66,7 @@ public abstract class Package implements IDescription {
      */\r
     public Package(RepoSource source,\r
             int revision,\r
+            String license,\r
             String description,\r
             String descUrl,\r
             Os archiveOs,\r
@@ -74,6 +76,7 @@ public abstract class Package implements IDescription {
             String archiveChecksum) {\r
         mSource = source;\r
         mRevision = revision;\r
+        mLicense = license;\r
         mDescription = description;\r
         mDescUrl = descUrl;\r
         mArchives = new Archive[1];\r
@@ -142,6 +145,14 @@ public abstract class Package implements IDescription {
 \r
     /**\r
      * Returns the optional description for all packages (platform, add-on, tool, doc) or\r
+     * for a lib. It is null if the element has not been specified in the repository XML.\r
+     */\r
+    public String getLicense() {\r
+        return mLicense;\r
+    }\r
+\r
+    /**\r
+     * Returns the optional description for all packages (platform, add-on, tool, doc) or\r
      * for a lib. Can be empty but not null.\r
      */\r
     public String getDescription() {\r
index 0d51c58..ae6bc77 100755 (executable)
@@ -47,14 +47,15 @@ public class PlatformPackage extends Package {
     }\r
 \r
     /**\r
-     * Creates a new platform package based on an actual {@link IAndroidTarget} (with\r
+     * Creates a new platform package based on an actual {@link IAndroidTarget} (which\r
      * must have {@link IAndroidTarget#isPlatform()} true) from the {@link SdkManager}.\r
      * This is used to list local SDK folders.\r
      */\r
     PlatformPackage(IAndroidTarget target) {\r
         super(  null,                       //source\r
                 0,                          //revision\r
-                target.getDescription(),  //description\r
+                null,                       //license\r
+                target.getDescription(),    //description\r
                 null,                       //descUrl\r
                 Os.getCurrentOs(),          //archiveOs\r
                 Arch.getCurrentArch(),      //archiveArch\r
index 71e35c4..4cac706 100755 (executable)
@@ -44,6 +44,7 @@ public class ToolPackage extends Package {
      */\r
     ToolPackage(RepoSource source,\r
             int revision,\r
+            String license,\r
             String description,\r
             String descUrl,\r
             Os archiveOs,\r
@@ -53,6 +54,7 @@ public class ToolPackage extends Package {
             String archiveChecksum) {\r
         super(source,\r
                 revision,\r
+                license,\r
                 description,\r
                 descUrl,\r
                 archiveOs,\r
index 673e43f..4adcb49 100755 (executable)
@@ -46,6 +46,8 @@ public class SdkRepository {
 \r
     /** The revision, an int > 0, for all packages (platform, add-on, tool, doc). */\r
     public static final String NODE_REVISION    = "revision";                   //$NON-NLS-1$\r
+    /** The optional license for all packages (platform, add-on, tool, doc) or for a lib. */\r
+    public static final String NODE_LICENSE = "license";                        //$NON-NLS-1$\r
     /** The optional description for all packages (platform, add-on, tool, doc) or for a lib. */\r
     public static final String NODE_DESCRIPTION = "description";                //$NON-NLS-1$\r
     /** The optional description URL for all packages (platform, add-on, tool, doc). */\r
index 6aff444..1862ae8 100755 (executable)
@@ -56,6 +56,9 @@
                             <!-- The revision, an int > 0, incremented each time a new
                                  package is generated. -->
                             <xsd:element name="revision"    type="xsd:positiveInteger" />
+                            <!-- The optional license of this package. If present, users will have
+                                 to agree to it before downloading. -->
+                            <xsd:element name="license" type="xsd:string" minOccurs="0" />
                             <!-- The optional description of this package. -->
                             <xsd:element name="description" type="xsd:string" minOccurs="0" />
                             <!-- The optional description URL of this package -->
@@ -84,6 +87,9 @@
                             <!-- The revision, an int > 0, incremented each time a new
                                  package is generated. -->
                             <xsd:element name="revision"    type="xsd:positiveInteger" />
+                            <!-- The optional license of this package. If present, users will have
+                                 to agree to it before downloading. -->
+                            <xsd:element name="license" type="xsd:string" minOccurs="0" />
                             <!-- The optional description of this package. -->
                             <xsd:element name="description" type="xsd:string" minOccurs="0" />
                             <!-- The optional description URL of this package -->
                             <!-- The revision, an int > 0, incremented each time a new
                                  package is generated. -->
                             <xsd:element name="revision"    type="xsd:positiveInteger" />
+                            <!-- The optional license of this package. If present, users will have
+                                 to agree to it before downloading. -->
+                            <xsd:element name="license" type="xsd:string" minOccurs="0" />
                             <!-- The optional description of this package. -->
                             <xsd:element name="description" type="xsd:string" minOccurs="0" />
                             <!-- The optional description URL of this package -->
                             <!-- The revision, an int > 0, incremented each time a new
                                  package is generated. -->
                             <xsd:element name="revision"    type="xsd:positiveInteger" />
+                            <!-- The optional license of this package. If present, users will have
+                                 to agree to it before downloading. -->
+                            <xsd:element name="license" type="xsd:string" minOccurs="0" />
                             <!-- The optional description of this package. -->
                             <xsd:element name="description" type="xsd:string" minOccurs="0" />
                             <!-- The optional description URL of this package -->
index fb6283d..a2d0cda 100755 (executable)
@@ -26,6 +26,8 @@
         <sdk:api-level>1</sdk:api-level>\r
         <sdk:revision>3</sdk:revision>\r
         <sdk:description>Some optional description</sdk:description>\r
+        <sdk:license>This is the license\r
+        for this platform.</sdk:license>\r
         <sdk:desc-url>http://www.example.com/platform1.html</sdk:desc-url>\r
         <!-- The archives node is mandatory and it cannot be empty. -->\r
         <sdk:archives>\r
@@ -41,6 +43,7 @@
         <sdk:api-level>1</sdk:api-level>\r
         <sdk:revision>1</sdk:revision>\r
         <sdk:description>Some optional description</sdk:description>\r
+        <!-- the license element is not mandatory. -->\r
         <sdk:desc-url>http://www.example.com/docs.html</sdk:desc-url>\r
         <sdk:archives>\r
             <sdk:archive os="any">\r
@@ -56,6 +59,8 @@
         <sdk:api-level>1</sdk:api-level>\r
         <sdk:vendor>John Doe</sdk:vendor>\r
         <sdk:revision>1</sdk:revision>\r
+        <!-- license can be empty. -->\r
+        <sdk:license></sdk:license>\r
         <sdk:description>Some optional description</sdk:description>\r
         <sdk:desc-url>http://www.example.com/myfirstaddon</sdk:desc-url>\r
         <sdk:archives>\r
@@ -82,6 +87,7 @@
         <sdk:version>1.1</sdk:version>\r
         <sdk:api-level>2</sdk:api-level>\r
         <sdk:revision>12</sdk:revision>\r
+        <sdk:license>This is the license for this package.</sdk:license>\r
         <!-- sdk:description and sdk:desc-url are optional -->\r
         <sdk:archives>\r
             <sdk:archive os="windows">\r
                 <sdk:name>com.android.mymaps</sdk:name>\r
             </sdk:lib>\r
         </sdk:libs>\r
+        <sdk:license>This is the license for this package.</sdk:license>\r
     </sdk:add-on>\r
 \r
     <sdk:tool>\r
         <sdk:revision>1</sdk:revision>\r
         <sdk:description>Some optional description</sdk:description>\r
         <sdk:desc-url>http://www.example.com/tools.html</sdk:desc-url>\r
+        <sdk:license>This is the license for this package.</sdk:license>\r
         <sdk:archives>\r
             <sdk:archive os="any">\r
                 <sdk:size>65536</sdk:size>\r
     <sdk:doc>\r
         <sdk:api-level>2</sdk:api-level>\r
         <sdk:revision>42</sdk:revision>\r
+        <sdk:license>This is the license for this package.</sdk:license>\r
         <sdk:archives>\r
             <sdk:archive os="windows">\r
                 <sdk:size>65536</sdk:size>\r
 \r
     <sdk:tool>\r
         <sdk:revision>42</sdk:revision>\r
+        <sdk:license>This is the license for this package.</sdk:license>\r
         <sdk:archives>\r
             <sdk:archive os="windows">\r
                 <sdk:size>65536</sdk:size>\r
     </sdk:tool>\r
 \r
     <sdk:add-on>\r
+        <sdk:license>This is the license for this package.</sdk:license>\r
         <sdk:name>This add-on has no libraries</sdk:name>\r
         <sdk:api-level>4</sdk:api-level>\r
         <sdk:vendor>Joe Bar</sdk:vendor>\r