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)

Reply via email to