Sam Corbett created BROOKLYN-368:
------------------------------------
Summary: YAML parsing errors are too coarse
Key: BROOKLYN-368
URL: https://issues.apache.org/jira/browse/BROOKLYN-368
Project: Brooklyn
Issue Type: Sub-task
Reporter: Sam Corbett
Here's an error
[reported|https://github.com/brooklyncentral/clocker/issues/345] by a user of
Clocker:
{code}
Remote catalog url classpath://io.brooklyn.clocker.swarm:swarm/swarm.bom can't
be fetched.: Error getting resource
'classpath://io.brooklyn.clocker.swarm:swarm/swarm.bom' for
classload:[OSGi::0.0.0[[CatalogBundleDto{symbolicName=null, version=null,
url=https://oss.sonatype.org/service/local/artifact/maven/redirect?r=snapshots&g=io.brooklyn.etcd&a=brooklyn-etcd&v=2.3.0-SNAPSHOT},
CatalogBundleDto{symbolicName=null, version=null,
url=https://oss.sonatype.org/service/local/repositories/releases/content/io/brooklyn/clocker/common/2.0.0/common-2.0.0.jar},
CatalogBundleDto{symbolicName=null, version=null,
url=https://oss.sonatype.org/service/local/repositories/releases/content/io/brooklyn/clocker/swarm/2.0.0/swarm-2.0.0.jar},
CatalogBundleDto{symbolicName=null, version=null,
url=https://oss.sonatype.org/service/local/repositories/releases/content/io/brooklyn/clocker/kubernetes/2.0.0/kubernetes-2.0.0.jar}]]];[java:AggregateClassLoader[AggregateClassLoader[sun.misc.Launcher$AppClassLoader@15aeb7ab,
AggregateClassLoader[],
AggregateClassLoader[AggregateClassLoader[AggregateClassLoader[org.apache.brooklyn.util.javalang.LoadedClassLoader@3d68e54],
AggregateClassLoader[]]]]]]: IOException: Error accessing
classpath://io.brooklyn.clocker.swarm:swarm/swarm.bom: java.io.IOException:
io.brooklyn.clocker.swarm:swarm/swarm.bom not found on classpath
{code}
The important information is right at the start: swarm.bom can't be fetched.
The rest is noise only suitable for a debug log.
Brooklyn leaks too much Java to end users. For example, if you try to add this
blueprint to the catalogue:
{code}
brooklyn.catalog:
item:
- type: org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess
{code}
The error you receive is "java.util.ArrayList cannot be cast to java.util.Map"
(i.e. the hyphen shouldn't be there). There is no indication of where in the
blueprint the error occurred and what the expected syntax is.
A third common mistake is typing {{brooklyn.config}} in DSL strings. The
correct value is {{brooklyn:config}}. It causes problems that are hard to
trace. We should either permit the former or provide "did you mean this?"
feedback.
Lastly, when bundles' dependencies cannot be wired the user is told "cannot
load catalogue item". Brooklyn would save them a lot of time by telling them
why this is the case.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)