Repository: ambari Updated Branches: refs/heads/branch-2.1 2552deba3 -> 0fa830d92
AMBARI-11814 - Views : Update view.xml xsd to allow for optional build-number (tbeerbower) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/0fa830d9 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/0fa830d9 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/0fa830d9 Branch: refs/heads/branch-2.1 Commit: 0fa830d922a1174c5ffb247ee0eb175a45e8ecf0 Parents: 2552deb Author: tbeerbower <tbeerbo...@hortonworks.com> Authored: Tue Jun 9 12:08:26 2015 -0400 Committer: tbeerbower <tbeerbo...@hortonworks.com> Committed: Tue Jun 9 12:09:54 2015 -0400 ---------------------------------------------------------------------- .../internal/ViewVersionResourceProvider.java | 6 +++--- .../ambari/server/orm/entities/ViewEntity.java | 22 ++++++++++++++++++++ .../server/upgrade/UpgradeCatalog210.java | 3 +++ .../server/view/configuration/ViewConfig.java | 14 +++++++++++++ .../main/resources/Ambari-DDL-MySQL-CREATE.sql | 1 + .../main/resources/Ambari-DDL-Oracle-CREATE.sql | 1 + .../resources/Ambari-DDL-Postgres-CREATE.sql | 1 + .../Ambari-DDL-Postgres-EMBEDDED-CREATE.sql | 1 + .../resources/Ambari-DDL-SQLServer-CREATE.sql | 1 + .../server/orm/entities/ViewEntityTest.java | 6 ++++++ .../server/upgrade/UpgradeCatalog210Test.java | 11 ++++++++++ .../view/configuration/ViewConfigTest.java | 7 +++++++ .../phone-list-view/src/main/resources/view.xml | 1 + .../org/apache/ambari/view/ViewDefinition.java | 7 +++++++ ambari-views/src/main/resources/view.xsd | 5 +++++ 15 files changed, 84 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/0fa830d9/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewVersionResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewVersionResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewVersionResourceProvider.java index 6352817..570766d 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewVersionResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewVersionResourceProvider.java @@ -46,9 +46,9 @@ public class ViewVersionResourceProvider extends AbstractResourceProvider { */ public static final String VIEW_NAME_PROPERTY_ID = "ViewVersionInfo/view_name"; public static final String VIEW_VERSION_PROPERTY_ID = "ViewVersionInfo/version"; + public static final String VIEW_BUILD_PROPERTY_ID = "ViewVersionInfo/build_number"; public static final String LABEL_PROPERTY_ID = "ViewVersionInfo/label"; public static final String DESCRIPTION_PROPERTY_ID = "ViewVersionInfo/description"; - public static final String VERSION_PROPERTY_ID = "ViewVersionInfo/version"; public static final String MIN_AMBARI_VERSION_PROPERTY_ID = "ViewVersionInfo/min_ambari_version"; public static final String MAX_AMBARI_VERSION_PROPERTY_ID = "ViewVersionInfo/max_ambari_version"; public static final String PARAMETERS_PROPERTY_ID = "ViewVersionInfo/parameters"; @@ -75,9 +75,9 @@ public class ViewVersionResourceProvider extends AbstractResourceProvider { static { propertyIds.add(VIEW_NAME_PROPERTY_ID); propertyIds.add(VIEW_VERSION_PROPERTY_ID); + propertyIds.add(VIEW_BUILD_PROPERTY_ID); propertyIds.add(LABEL_PROPERTY_ID); propertyIds.add(DESCRIPTION_PROPERTY_ID); - propertyIds.add(VERSION_PROPERTY_ID); propertyIds.add(MIN_AMBARI_VERSION_PROPERTY_ID); propertyIds.add(MAX_AMBARI_VERSION_PROPERTY_ID); propertyIds.add(PARAMETERS_PROPERTY_ID); @@ -134,9 +134,9 @@ public class ViewVersionResourceProvider extends AbstractResourceProvider { setResourceProperty(resource, VIEW_NAME_PROPERTY_ID, viewDefinition.getCommonName(), requestedIds); setResourceProperty(resource, VIEW_VERSION_PROPERTY_ID, viewDefinition.getVersion(), requestedIds); + setResourceProperty(resource, VIEW_BUILD_PROPERTY_ID, viewDefinition.getBuild(), requestedIds); setResourceProperty(resource, LABEL_PROPERTY_ID, viewDefinition.getLabel(), requestedIds); setResourceProperty(resource, DESCRIPTION_PROPERTY_ID, viewDefinition.getDescription(), requestedIds); - setResourceProperty(resource, VERSION_PROPERTY_ID, viewDefinition.getVersion(), requestedIds); setResourceProperty(resource, MIN_AMBARI_VERSION_PROPERTY_ID, viewDefinition.getConfiguration().getMinAmbariVersion(), requestedIds); setResourceProperty(resource, MAX_AMBARI_VERSION_PROPERTY_ID, http://git-wip-us.apache.org/repos/asf/ambari/blob/0fa830d9/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ViewEntity.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ViewEntity.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ViewEntity.java index 6039fb6..f3ddaff 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ViewEntity.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ViewEntity.java @@ -100,6 +100,13 @@ public class ViewEntity implements ViewDefinition { private String version; /** + * The view build number. + */ + @Column + @Basic + private String build; + + /** * The view archive. */ @Column @@ -271,6 +278,7 @@ public class ViewEntity implements ViewDefinition { this.label = configuration.getLabel(); this.description = configuration.getDescription(); this.version = version; + this.build = configuration.getBuild(); this.mask = configuration.getMasker(); this.icon = configuration.getIcon(); @@ -305,6 +313,11 @@ public class ViewEntity implements ViewDefinition { } @Override + public String getBuild() { + return build; + } + + @Override public ViewStatus getStatus() { return status; } @@ -377,6 +390,15 @@ public class ViewEntity implements ViewDefinition { } /** + * Set the view build number. + * + * @param build the build + */ + public void setBuild(String build) { + this.build = build; + } + + /** * Get the icon path. * * @return the icon path http://git-wip-us.apache.org/repos/asf/ambari/blob/0fa830d9/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog210.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog210.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog210.java index e32e3aa..98d84e7 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog210.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog210.java @@ -90,6 +90,7 @@ public class UpgradeCatalog210 extends AbstractUpgradeCatalog { private static final String WIDGET_TABLE = "widget"; private static final String WIDGET_LAYOUT_TABLE = "widget_layout"; private static final String WIDGET_LAYOUT_USER_WIDGET_TABLE = "widget_layout_user_widget"; + private static final String VIEW_TABLE = "viewmain"; private static final String VIEW_INSTANCE_TABLE = "viewinstance"; private static final String VIEW_PARAMETER_TABLE = "viewparameter"; private static final String STACK_TABLE = "stack"; @@ -284,6 +285,8 @@ public class UpgradeCatalog210 extends AbstractUpgradeCatalog { dbAccessor.addColumn(VIEW_INSTANCE_TABLE, new DBColumnInfo("alter_names", Integer.class, null, 0, false)); // cluster configuration dbAccessor.addColumn(VIEW_PARAMETER_TABLE, new DBColumnInfo("cluster_config", String.class, 255, null, true)); + // view build number + dbAccessor.addColumn(VIEW_TABLE, new DBColumnInfo("build", String.class, 128, null, true)); } /** http://git-wip-us.apache.org/repos/asf/ambari/blob/0fa830d9/ambari-server/src/main/java/org/apache/ambari/server/view/configuration/ViewConfig.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/view/configuration/ViewConfig.java b/ambari-server/src/main/java/org/apache/ambari/server/view/configuration/ViewConfig.java index f9b898d..728f620 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/view/configuration/ViewConfig.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/view/configuration/ViewConfig.java @@ -60,6 +60,11 @@ public class ViewConfig { private String version; /** + * The view version. + */ + private String build; + + /** * The minimum Ambari version. */ @XmlElement(name="min-ambari-version") @@ -199,6 +204,15 @@ public class ViewConfig { } /** + * Get the view build number. + * + * @return the build number + */ + public String getBuild() { + return build; + } + + /** * Get the minimum version of Ambari required to run this view. * * @return the minimum Ambari version http://git-wip-us.apache.org/repos/asf/ambari/blob/0fa830d9/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql b/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql index 0484cfc..3c46ea9 100644 --- a/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql +++ b/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql @@ -428,6 +428,7 @@ CREATE TABLE viewmain ( label VARCHAR(255), description VARCHAR(2048), version VARCHAR(255), + build VARCHAR(128), resource_type_id INTEGER NOT NULL, icon VARCHAR(255), icon64 VARCHAR(255), http://git-wip-us.apache.org/repos/asf/ambari/blob/0fa830d9/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql b/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql index ac32eb6..c196ec4 100644 --- a/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql +++ b/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql @@ -418,6 +418,7 @@ CREATE TABLE viewmain (view_name VARCHAR(255) NOT NULL, label VARCHAR(255), description VARCHAR(2048), version VARCHAR(255), + build VARCHAR(128), resource_type_id NUMBER(10) NOT NULL, icon VARCHAR(255), icon64 VARCHAR(255), http://git-wip-us.apache.org/repos/asf/ambari/blob/0fa830d9/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql b/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql index 28a6f1a..69705d3 100644 --- a/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql +++ b/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql @@ -425,6 +425,7 @@ CREATE TABLE viewmain ( label VARCHAR(255), description VARCHAR(2048), version VARCHAR(255), + build VARCHAR(128), resource_type_id INTEGER NOT NULL, icon VARCHAR(255), icon64 VARCHAR(255), http://git-wip-us.apache.org/repos/asf/ambari/blob/0fa830d9/ambari-server/src/main/resources/Ambari-DDL-Postgres-EMBEDDED-CREATE.sql ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/Ambari-DDL-Postgres-EMBEDDED-CREATE.sql b/ambari-server/src/main/resources/Ambari-DDL-Postgres-EMBEDDED-CREATE.sql index d2f17c1..967c941 100644 --- a/ambari-server/src/main/resources/Ambari-DDL-Postgres-EMBEDDED-CREATE.sql +++ b/ambari-server/src/main/resources/Ambari-DDL-Postgres-EMBEDDED-CREATE.sql @@ -479,6 +479,7 @@ CREATE TABLE ambari.viewmain ( label VARCHAR(255), description VARCHAR(2048), version VARCHAR(255), + build VARCHAR(128), resource_type_id INTEGER NOT NULL, icon VARCHAR(255), icon64 VARCHAR(255), http://git-wip-us.apache.org/repos/asf/ambari/blob/0fa830d9/ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql b/ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql index 1d24d72..f71a4ed 100644 --- a/ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql +++ b/ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql @@ -493,6 +493,7 @@ CREATE TABLE viewmain ( label VARCHAR(255), description VARCHAR(2048), version VARCHAR(255), + build VARCHAR(128), resource_type_id INTEGER NOT NULL, icon VARCHAR(255), icon64 VARCHAR(255), http://git-wip-us.apache.org/repos/asf/ambari/blob/0fa830d9/ambari-server/src/test/java/org/apache/ambari/server/orm/entities/ViewEntityTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/orm/entities/ViewEntityTest.java b/ambari-server/src/test/java/org/apache/ambari/server/orm/entities/ViewEntityTest.java index ac2715c..1022e7c 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/orm/entities/ViewEntityTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/orm/entities/ViewEntityTest.java @@ -111,6 +111,12 @@ public class ViewEntityTest { } @Test + public void testGetBuild() throws Exception { + ViewEntity viewDefinition = getViewEntity(); + Assert.assertEquals("99", viewDefinition.getBuild()); + } + + @Test public void testGetIcon() throws Exception { ViewEntity viewDefinition = getViewEntity(); Assert.assertEquals("/this/is/the/icon/url/icon.png", viewDefinition.getIcon()); http://git-wip-us.apache.org/repos/asf/ambari/blob/0fa830d9/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog210Test.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog210Test.java b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog210Test.java index c4d4876..acc6bed 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog210Test.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog210Test.java @@ -559,10 +559,12 @@ public class UpgradeCatalog210Test { Capture<DBAccessor.DBColumnInfo> viewInstanceColumnCapture = new Capture<DBAccessor.DBColumnInfo>(); Capture<DBAccessor.DBColumnInfo> viewInstanceAlterNamesColumnCapture = new Capture<DBAccessor.DBColumnInfo>(); Capture<DBAccessor.DBColumnInfo> viewParamColumnCapture = new Capture<DBAccessor.DBColumnInfo>(); + Capture<DBAccessor.DBColumnInfo> viewBuildColumnCapture = new Capture<DBAccessor.DBColumnInfo>(); captures.put("viewinstance", viewInstanceColumnCapture); captures.put("viewinstance_alter_names", viewInstanceAlterNamesColumnCapture); captures.put("viewparameter", viewParamColumnCapture); + captures.put("viewmain", viewBuildColumnCapture); } /** @@ -573,10 +575,12 @@ public class UpgradeCatalog210Test { Capture<DBColumnInfo> viewInstanceColumnCapture = captures.get("viewinstance"); Capture<DBColumnInfo> viewInstanceAlterNamesColumnCapture = captures.get("viewinstance_alter_names"); Capture<DBColumnInfo> viewParamColumnCapture = captures.get("viewparameter"); + Capture<DBColumnInfo> viewBuildColumnCapture = captures.get("viewmain"); dbAccessor.addColumn(eq("viewinstance"), capture(viewInstanceColumnCapture)); dbAccessor.addColumn(eq("viewinstance"), capture(viewInstanceAlterNamesColumnCapture)); dbAccessor.addColumn(eq("viewparameter"), capture(viewParamColumnCapture)); + dbAccessor.addColumn(eq("viewmain"), capture(viewBuildColumnCapture)); } /** @@ -587,6 +591,7 @@ public class UpgradeCatalog210Test { verifyViewInstance(captures.get("viewinstance")); verifyViewInstanceAlterNames(captures.get("viewinstance_alter_names")); verifyViewParameter(captures.get("viewparameter")); + verifyViewBuild(captures.get("viewmain")); } private void verifyViewInstance(Capture<DBAccessor.DBColumnInfo> viewInstanceColumnCapture) { @@ -606,6 +611,12 @@ public class UpgradeCatalog210Test { Assert.assertEquals(String.class, clusterConfigColumn.getType()); Assert.assertEquals("cluster_config", clusterConfigColumn.getName()); } + + private void verifyViewBuild(Capture<DBAccessor.DBColumnInfo> viewBuildColumnCapture) { + DBColumnInfo clusterConfigColumn = viewBuildColumnCapture.getValue(); + Assert.assertEquals(String.class, clusterConfigColumn.getType()); + Assert.assertEquals("build", clusterConfigColumn.getName()); + } } /** http://git-wip-us.apache.org/repos/asf/ambari/blob/0fa830d9/ambari-server/src/test/java/org/apache/ambari/server/view/configuration/ViewConfigTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/view/configuration/ViewConfigTest.java b/ambari-server/src/test/java/org/apache/ambari/server/view/configuration/ViewConfigTest.java index 2391ad6..14e5d3c 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/view/configuration/ViewConfigTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/view/configuration/ViewConfigTest.java @@ -50,6 +50,7 @@ public class ViewConfigTest { " <label>My View!</label>\n" + " <description>Description</description>" + " <version>1.0.0</version>\n" + + " <build>99</build>\n" + " <system>true</system>\n" + " <icon64>/this/is/the/icon/url/icon64.png</icon64>\n" + " <icon>/this/is/the/icon/url/icon.png</icon>\n" + @@ -200,6 +201,12 @@ public class ViewConfigTest { } @Test + public void testGetBuild() throws Exception { + ViewConfig config = getConfig(); + Assert.assertEquals("99", config.getBuild()); + } + + @Test public void testGetIcon() throws Exception { ViewConfig config = getConfig(); Assert.assertEquals("/this/is/the/icon/url/icon.png", config.getIcon()); http://git-wip-us.apache.org/repos/asf/ambari/blob/0fa830d9/ambari-views/examples/phone-list-view/src/main/resources/view.xml ---------------------------------------------------------------------- diff --git a/ambari-views/examples/phone-list-view/src/main/resources/view.xml b/ambari-views/examples/phone-list-view/src/main/resources/view.xml index bd927ca..ce5f29e 100644 --- a/ambari-views/examples/phone-list-view/src/main/resources/view.xml +++ b/ambari-views/examples/phone-list-view/src/main/resources/view.xml @@ -18,6 +18,7 @@ limitations under the License. Kerberos, LDAP, Custom. Binary/Htt <name>PHONE_LIST</name> <label>The Phone List View</label> <version>1.0.0</version> + <build>001</build> <parameter> <name>data.store.enabled</name> <description> http://git-wip-us.apache.org/repos/asf/ambari/blob/0fa830d9/ambari-views/src/main/java/org/apache/ambari/view/ViewDefinition.java ---------------------------------------------------------------------- diff --git a/ambari-views/src/main/java/org/apache/ambari/view/ViewDefinition.java b/ambari-views/src/main/java/org/apache/ambari/view/ViewDefinition.java index f378dde..b9efd74 100644 --- a/ambari-views/src/main/java/org/apache/ambari/view/ViewDefinition.java +++ b/ambari-views/src/main/java/org/apache/ambari/view/ViewDefinition.java @@ -52,6 +52,13 @@ public interface ViewDefinition { public String getVersion(); /** + * Get the view build number. + * + * @return the build number + */ + public String getBuild(); + + /** * Get the mask class name. * * @return the mask class name. http://git-wip-us.apache.org/repos/asf/ambari/blob/0fa830d9/ambari-views/src/main/resources/view.xsd ---------------------------------------------------------------------- diff --git a/ambari-views/src/main/resources/view.xsd b/ambari-views/src/main/resources/view.xsd index 46adf27..c3ad711 100644 --- a/ambari-views/src/main/resources/view.xsd +++ b/ambari-views/src/main/resources/view.xsd @@ -283,6 +283,11 @@ <xs:documentation>The version of the view.</xs:documentation> </xs:annotation> </xs:element> + <xs:element type="xs:string" name="build" minOccurs="0" maxOccurs="1"> + <xs:annotation> + <xs:documentation>The build number of the view.</xs:documentation> + </xs:annotation> + </xs:element> <xs:element type="xs:string" name="min-ambari-version" minOccurs="0" maxOccurs="1"> <xs:annotation> <xs:documentation>The minimum version of Ambari server required to run this view.</xs:documentation>