[
https://issues.apache.org/jira/browse/BROOKLYN-351?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Aled Sage resolved BROOKLYN-351.
--------------------------------
Resolution: Fixed
Assignee: Aled Sage
Fix Version/s: 0.10.0
> extra jclouds providers not found (in karaf)
> --------------------------------------------
>
> Key: BROOKLYN-351
> URL: https://issues.apache.org/jira/browse/BROOKLYN-351
> Project: Brooklyn
> Issue Type: Bug
> Reporter: Aled Sage
> Assignee: Aled Sage
> Fix For: 0.10.0
>
>
> When using a downstream build of Brooklyn 0.10.0-SNAPSHOT (with karaf), I
> added a couple of extra jclouds labs providers/apis via the feature.xml.
> However, when I tried to use it with the blueprint below, I got the error
> shown:
> {noformat}
> location: jclouds:azurecompute
> services:
> - type: org.apache.brooklyn.entity.stock.BasicApplication
> 2016-09-26 12:10:12,346 DEBUG 115 o.a.b.c.t.AbstractTypePlanTransformer
> [p1212877220-1463] Could not instantiate BasicRegisteredType[null;null]
> (rethrowing): Illegal parameter for 'location' (jclouds:azurecompute); not
> resolvable: NoSuchElementException: Cloud provider/
> API type azurecompute is not supported by jclouds
> {noformat}
> Looking in {{org.jclouds.providers.Providers.withId("azurecompute")}},
> jclouds does know about azurecompute.
> The problem is that the providers/apis list are retrieved and stored in
> {{JcloudsLocationResolver.PROVIDERS}} and {{JcloudsLocationResolver.APIS}}
> (during static init). At that point, the azurecompute bundle has not been
> activated, so {{org.jclouds.osgi.ProviderRegistry}} had not yet had it added
> by {{org.jclouds.osgi.MetadataBundleListener}}.
> Below is a stacktrace of where this happens:
> {noformat}
> Daemon Thread [FelixStartLevel] (Suspended (breakpoint at line 82 in
> Providers))
> owns: AtomicBoolean (id=1573)
> Providers.all() line: 82
> JcloudsLocationResolver.getProvidersMap() line: 61
> JcloudsLocationResolver.<clinit>() line: 56
> NativeConstructorAccessorImpl.newInstance0(Constructor, Object[]) line:
> not available [native method]
> NativeConstructorAccessorImpl.newInstance(Object[]) line: 57
> DelegatingConstructorAccessorImpl.newInstance(Object[]) line: 45
> Constructor<T>.newInstance(Object...) line: 526
> ReflectionUtils.newInstance(AccessControlContext, Constructor,
> Object...) line: 331
> BeanRecipe.newInstance(Constructor, Object...) line: 984
> BeanRecipe.getInstanceFromType(List<Object>, List<ReifiedType>) line:
> 349
> BeanRecipe.getInstance() line: 282
> BeanRecipe.internalCreate2() line: 830
> BeanRecipe.internalCreate() line: 811
> BeanRecipe(AbstractRecipe).create() line: 106
> RefRecipe.internalCreate() line: 62
> RefRecipe(AbstractRecipe).create() line: 106
> ServiceRecipe.createService() line: 285
> ServiceRecipe.internalGetService(Bundle, ServiceRegistration) line: 252
> ServiceRecipe.internalCreate() line: 149
> AbstractRecipe$1.call() line: 79
> FutureTask<V>.run() line: 262
> ServiceRecipe(AbstractRecipe).create() line: 88
> BlueprintRepository.createInstances(Collection<String>) line: 255
> BlueprintRepository.createAll(Collection<String>) line: 186
> BlueprintContainerImpl.instantiateEagerComponents() line: 712
> BlueprintContainerImpl.doRun() line: 399
> BlueprintContainerImpl.run() line: 273
> BlueprintExtender.createContainer(Bundle, List<Object>) line: 294
> BlueprintExtender.createContainer(Bundle) line: 263
> BlueprintExtender.modifiedBundle(Bundle, BundleEvent, Object) line: 253
> BundleHookBundleTracker$Tracked.customizerModified(Bundle, BundleEvent,
> T) line: 500
> BundleHookBundleTracker$Tracked.customizerModified(Object, Object,
> Object) line: 433
>
> BundleHookBundleTracker$Tracked(BundleHookBundleTracker$AbstractTracked<S,T,R>).track(S,
> R) line: 725
> BundleHookBundleTracker$Tracked.bundleChanged(BundleEvent) line: 463
> BundleHookBundleTracker$BundleEventHook.event(BundleEvent, Collection)
> line: 422
> SecureAction.invokeBundleEventHook(EventHook, BundleEvent,
> Collection<BundleContext>) line: 1179
> EventDispatcher.createWhitelistFromHooks(EventObject, Framework,
> Map<BundleContext,List<ListenerInfo>>, Map<BundleContext,List<ListenerInfo>>,
> Class<T>) line: 731
> EventDispatcher.fireBundleEvent(BundleEvent, Framework) line: 486
> Felix.fireBundleEvent(int, Bundle) line: 4541
> Felix.startBundle(BundleImpl, int) line: 2172
> Felix.setActiveStartLevel(int, FrameworkListener[]) line: 1371
> FrameworkStartLevelImpl.run() line: 308
> Thread.run() line: 745
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)