You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2015/11/30 16:05:58 UTC

svn commit: r1717269 - in /qpid/java/trunk: broker-core/src/main/java/org/apache/qpid/server/model/ broker-core/src/main/java/org/apache/qpid/server/security/ broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/ broker-core/src/...

Author: rgodfrey
Date: Mon Nov 30 15:05:57 2015
New Revision: 1717269

URL: http://svn.apache.org/viewvc?rev=1717269&view=rev
Log:
QPID-6918 : Make auto generated self signed certs work for JDK 8; fix model so non available types are not visible in meta data

Added:
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ModelRoot.java   (with props)
Modified:
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/BrokerModel.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectTypeRegistry.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/SystemConfig.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/AutoGeneratedSelfSignedKeyStoreImpl.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/TestModel.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/lifecycle/TestConfiguredObject.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestModel.java
    qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addStore.js

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/BrokerModel.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/BrokerModel.java?rev=1717269&r1=1717268&r2=1717269&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/BrokerModel.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/BrokerModel.java Mon Nov 30 15:05:57 2015
@@ -116,7 +116,8 @@ public final class BrokerModel extends M
         addRelationship(Session.class, Publisher.class);
 
         _objectFactory = new ConfiguredObjectFactoryImpl(this);
-        _typeRegistry = new ConfiguredObjectTypeRegistry((new QpidServiceLoader()).instancesOf(ConfiguredObjectRegistration.class), getSupportedCategories());
+        _typeRegistry = new ConfiguredObjectTypeRegistry((new QpidServiceLoader()).instancesOf(ConfiguredObjectRegistration.class), getSupportedCategories(),
+                                                         _objectFactory);
     }
 
     public final ConfiguredObjectTypeRegistry getTypeRegistry()

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectTypeRegistry.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectTypeRegistry.java?rev=1717269&r1=1717268&r2=1717269&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectTypeRegistry.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectTypeRegistry.java Mon Nov 30 15:05:57 2015
@@ -49,6 +49,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import org.apache.qpid.server.plugin.ConfiguredObjectRegistration;
+import org.apache.qpid.server.plugin.ConfiguredObjectTypeFactory;
 import org.apache.qpid.server.util.Action;
 import org.apache.qpid.server.util.ServerScopedRuntimeException;
 import org.apache.qpid.util.Strings;
@@ -195,12 +196,17 @@ public class ConfiguredObjectTypeRegistr
     private final Map<Class<? extends ConfiguredObject>, Map<String, Collection<String>>> _validChildTypes =
             Collections.synchronizedMap(new HashMap<Class<? extends ConfiguredObject>, Map<String, Collection<String>>>());
 
-    public ConfiguredObjectTypeRegistry(Iterable<ConfiguredObjectRegistration> configuredObjectRegistrations, Collection<Class<? extends ConfiguredObject>> categoriesRestriction)
-    {
+    private final ConfiguredObjectFactory _objectFactory;
 
+    public ConfiguredObjectTypeRegistry(Iterable<ConfiguredObjectRegistration> configuredObjectRegistrations,
+                                        Collection<Class<? extends ConfiguredObject>> categoriesRestriction,
+                                        final ConfiguredObjectFactory objectFactory)
+    {
+        _objectFactory = objectFactory;
         Set<Class<? extends ConfiguredObject>> categories = new HashSet<>();
         Set<Class<? extends ConfiguredObject>> types = new HashSet<>();
 
+
         for (ConfiguredObjectRegistration registration : configuredObjectRegistrations)
         {
             for (Class<? extends ConfiguredObject> configuredObjectClass : registration.getConfiguredObjectClasses())
@@ -249,7 +255,12 @@ public class ConfiguredObjectTypeRegistr
             {
                 if (categoryClass.isAssignableFrom(typeClass))
                 {
-                    _knownTypes.get(categoryClass).add(typeClass);
+                    ManagedObject annotation = typeClass.getAnnotation(ManagedObject.class);
+                    String annotationType = annotation.type();
+                    if(ModelRoot.class.isAssignableFrom(categoryClass) || factoryExists(categoryClass, annotationType))
+                    {
+                        _knownTypes.get(categoryClass).add(typeClass);
+                    }
                 }
             }
         }
@@ -308,6 +319,14 @@ public class ConfiguredObjectTypeRegistr
         }
     }
 
+    private boolean factoryExists(final Class<? extends ConfiguredObject> categoryClass, final String type)
+    {
+        final ConfiguredObjectTypeFactory factory =
+                _objectFactory.getConfiguredObjectTypeFactory(categoryClass.getSimpleName(), type);
+
+        return factory != null && factory.getType().equals(type);
+    }
+
     private static Method getValidChildTypesFunction(final String validValue, final Class<? extends ConfiguredObject> clazz)
     {
         if (validValue.matches("([\\w][\\w\\d_]+\\.)+[\\w][\\w\\d_\\$]*#[\\w\\d_]+\\s*\\(\\s*\\)"))

Added: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ModelRoot.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ModelRoot.java?rev=1717269&view=auto
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ModelRoot.java (added)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ModelRoot.java Mon Nov 30 15:05:57 2015
@@ -0,0 +1,25 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.apache.qpid.server.model;
+
+public interface ModelRoot
+{
+}

Propchange: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ModelRoot.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/SystemConfig.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/SystemConfig.java?rev=1717269&r1=1717268&r2=1717269&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/SystemConfig.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/SystemConfig.java Mon Nov 30 15:05:57 2015
@@ -25,7 +25,7 @@ import org.apache.qpid.server.logging.Ev
 import org.apache.qpid.server.store.DurableConfigurationStore;
 
 @ManagedObject (creatable = false)
-public interface SystemConfig<X extends SystemConfig<X>> extends ConfiguredObject<X>
+public interface SystemConfig<X extends SystemConfig<X>> extends ConfiguredObject<X>, ModelRoot
 {
     String MANAGEMENT_MODE = "managementMode";
     

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/AutoGeneratedSelfSignedKeyStoreImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/AutoGeneratedSelfSignedKeyStoreImpl.java?rev=1717269&r1=1717268&r2=1717269&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/AutoGeneratedSelfSignedKeyStoreImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/AutoGeneratedSelfSignedKeyStoreImpl.java Mon Nov 30 15:05:57 2015
@@ -383,13 +383,23 @@ public class AutoGeneratedSelfSignedKeyS
     {
         try
         {
-            final Class<?> certAndKeyGenClass = Class.forName("sun.security.x509.CertAndKeyGen");
+            Class<?> certAndKeyGenClass;
+            try
+            {
+                certAndKeyGenClass = Class.forName("sun.security.x509.CertAndKeyGen");
+            }
+            catch (ClassNotFoundException e)
+            {
+                certAndKeyGenClass = Class.forName("sun.security.tools.keytool.CertAndKeyGen");
+            }
+
             final Class<?> x500NameClass = Class.forName("sun.security.x509.X500Name");
             final Class<?> certificateExtensionsClass = Class.forName("sun.security.x509.CertificateExtensions");
             final Class<?> generalNamesClass = Class.forName("sun.security.x509.GeneralNames");
             final Class<?> generalNameClass = Class.forName("sun.security.x509.GeneralName");
             final Class<?> extensionClass = Class.forName("sun.security.x509.SubjectAlternativeNameExtension");
 
+
             CONSTRUCTOR = certAndKeyGenClass.getConstructor(String.class, String.class);
             GENERATE_METHOD = certAndKeyGenClass.getMethod("generate", Integer.TYPE);
             GET_PRIVATE_KEY_METHOD = certAndKeyGenClass.getMethod("getPrivateKey");

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/TestModel.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/TestModel.java?rev=1717269&r1=1717268&r2=1717269&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/TestModel.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/TestModel.java Mon Nov 30 15:05:57 2015
@@ -54,7 +54,7 @@ public class TestModel extends Model
 
         ConfiguredObjectRegistration configuredObjectRegistration = new ConfiguredObjectRegistrationImpl();
 
-        _registry = new ConfiguredObjectTypeRegistry(Collections.singletonList(configuredObjectRegistration), Collections.EMPTY_LIST);
+        _registry = new ConfiguredObjectTypeRegistry(Collections.singletonList(configuredObjectRegistration), Collections.EMPTY_LIST, _objectFactory);
     }
 
 

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/lifecycle/TestConfiguredObject.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/lifecycle/TestConfiguredObject.java?rev=1717269&r1=1717268&r2=1717269&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/lifecycle/TestConfiguredObject.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/lifecycle/TestConfiguredObject.java Mon Nov 30 15:05:57 2015
@@ -219,7 +219,8 @@ public class TestConfiguredObject extend
                     return TestConfiguredObjectModel.class.getSimpleName();
                 }
             };
-            _configuredObjectTypeRegistry = new ConfiguredObjectTypeRegistry(Arrays.asList(configuredObjectRegistration), CATEGORIES);
+            _configuredObjectTypeRegistry = new ConfiguredObjectTypeRegistry(Arrays.asList(configuredObjectRegistration), CATEGORIES,
+                                                                             _configuredObjectFactory);
         }
 
         @Override

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestModel.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestModel.java?rev=1717269&r1=1717268&r2=1717269&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestModel.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestModel.java Mon Nov 30 15:05:57 2015
@@ -62,7 +62,7 @@ public class TestModel extends Model
                 return "org.apache.qpid.server.model.testmodels.attribute";
             }
         };
-        _registry = new ConfiguredObjectTypeRegistry(Arrays.asList(configuredObjectRegistration), getSupportedCategories());
+        _registry = new ConfiguredObjectTypeRegistry(Arrays.asList(configuredObjectRegistration), getSupportedCategories(), _objectFactory);
     }
 
 

Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addStore.js
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addStore.js?rev=1717269&r1=1717268&r2=1717269&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addStore.js (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addStore.js Mon Nov 30 15:05:57 2015
@@ -126,19 +126,25 @@ define(["dojo/_base/lang",
             {
                 if (this.storeForm.validate())
                 {
-                    var success = false,failureReason=null;
+                    var that = this;
+
+                    function disableButtons(disabled) {
+                        that.addButton.set("disabled", disabled);
+                        that.cancelButton.set("disabled", disabled);
+                    }
+
+                    disableButtons(true);
 
                     var storeData = util.getFormWidgetValues(this.storeForm, this.initialData);
-                    var that = this;
 
                     if (this.effectiveData)
                     {
                         // update request
-                        this.management.update(this.modelObj, storeData).then(function(x){that.dialog.hide();});
+                        this.management.update(this.modelObj, storeData).then(function(x){ disableButtons(false); that.dialog.hide();}, function(err) { disableButtons(false); that.management.errorHandler(err); });
                     }
                     else
                     {
-                        this.management.create(this.category, this.modelObj, storeData).then(function(x){that.dialog.hide();});
+                        this.management.create(this.category, this.modelObj, storeData).then(function(x){ disableButtons(false); that.dialog.hide();}, function(err) { disableButtons(false); that.management.errorHandler(err); });
                     }
                 }
                 else



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org