Closes #233 Karaf fixes - class loading
* Disables loading `catalog.bom` (can be enabled through a feature flag). * Moves all `catalog.bom` items to be loaded through `default.catalog.bom` * Fallback class loading - replace `Class.forName(..)`, `classLoader.loadClass(...)` usages with a centralized logic. Class loading logic: * Supports embedding the bundle's symbolidName and version in the class name (for example `org.apache.brooklyn.core:0.10.0.SNAPHOT:org.apache.brooklyn.core.mgmt.entitlement.PerUserEntitlementManager` * try to load from the entity's catalog item libraries * Class.forName, using the calling class' class loader * mgmt.getCatalogClassLoader.loadClass * scanning all bundles matching `org.apache.brooklyn.*:0.10.0-SNAPSHOT` by default. Can be overriden with a system property. Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/33421d72 Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/33421d72 Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/33421d72 Branch: refs/heads/master Commit: 33421d7247f0b0090e02fce6c176bdc5d5cfd302 Parents: 30573a5 f315476 Author: Svetoslav Neykov <[email protected]> Authored: Wed Jul 6 15:32:40 2016 +0300 Committer: Svetoslav Neykov <[email protected]> Committed: Wed Jul 6 15:32:40 2016 +0300 ---------------------------------------------------------------------- .../spi/creation/CampInternalUtils.java | 5 +- .../spi/dsl/methods/BrooklynDslCommon.java | 10 +- .../brooklyn/catalog/CatalogYamlEntityTest.java | 24 + .../core/BrooklynFeatureEnablement.java | 8 + .../catalog/internal/CatalogBomScanner.java | 27 +- .../brooklyn/core/effector/AddSensor.java | 15 +- .../drivers/ReflectiveEntityDriverFactory.java | 5 +- .../brooklyn/core/location/geo/HostGeoInfo.java | 3 +- .../JavaBrooklynClassLoadingContext.java | 18 +- .../core/mgmt/entitlement/Entitlements.java | 8 +- .../internal/AbstractManagementContext.java | 3 +- .../transformer/CompoundTransformerLoader.java | 3 +- .../brooklyn/core/objs/BrooklynTypes.java | 5 +- .../core/sensor/DurationSinceSensor.java | 7 +- .../core/sensor/ssh/SshCommandSensor.java | 2 +- .../location/byon/ByonLocationResolver.java | 4 +- .../location/ssh/SshMachineLocation.java | 3 +- .../brooklyn/util/core/ClassLoaderUtils.java | 249 +++++++++ .../brooklyn/util/core/flags/TypeCoercions.java | 9 +- .../objs/BasicSpecParameterFromClassTest.java | 5 +- karaf/apache-brooklyn/pom.xml | 9 + .../src/main/resources/etc/default.catalog.bom | 416 +++++++++++++-- karaf/features/src/main/feature/feature.xml | 17 +- .../init/src/main/resources/catalog-classes.bom | 507 +++++++++++++++++++ .../brooklyn/rest/resources/PolicyResource.java | 7 +- .../provider/DelegatingSecurityProvider.java | 10 +- .../HardcodedCatalogEntitySpecResolver.java | 59 ++- .../location/winrm/WinRmMachineLocation.java | 11 +- 28 files changed, 1318 insertions(+), 131 deletions(-) ----------------------------------------------------------------------
