diff --git a/pkg/metadata/metadata_dependencies_test.go b/pkg/metadata/metadata_dependencies_test.go index 1e66872ac5..d006c937d1 100644 --- a/pkg/metadata/metadata_dependencies_test.go +++ b/pkg/metadata/metadata_dependencies_test.go @@ -118,3 +118,74 @@ func TestDependencies(t *testing.T) { // assert all dependencies are found and sorted (removing duplicates) assert.Equal(t, []string{"camel:core", "camel:http4", "camel:twitter"}, meta.Dependencies) } + +func TestJacksonDependency(t *testing.T) { + code := v1alpha1.SourceSpec{ + DataSpec: v1alpha1.DataSpec{ + Name: "Request.java", + Content: ` + from("http4:test").unmarshal().json(JsonLibrary.Jackson).to("log:end"); + `, + }, + Language: v1alpha1.LanguageJavaSource, + } + + catalog, err := test.DefaultCatalog() + assert.Nil(t, err) + + meta := Extract(catalog, code) + + // assert all dependencies are found and sorted (removing duplicates) + assert.Equal(t, []string{"camel:core", "camel:http4", "camel:jackson"}, meta.Dependencies) +} + +func TestHystrixDependency(t *testing.T) { + code := v1alpha1.SourceSpec{ + DataSpec: v1alpha1.DataSpec{ + Name: "Request.groovy", + Content: ` + from("http4:test") + .hystrix() + .to("log:end") + .onFallback() + .to("log:fallback") + `, + }, + Language: v1alpha1.LanguageGroovy, + } + + catalog, err := test.DefaultCatalog() + assert.Nil(t, err) + + meta := Extract(catalog, code) + + // assert all dependencies are found and sorted (removing duplicates) + assert.Equal(t, []string{"camel:core", "camel:http4", "camel:hystrix"}, meta.Dependencies) +} + +func TestXMLHystrixDependency(t *testing.T) { + code := v1alpha1.SourceSpec{ + + DataSpec: v1alpha1.DataSpec{ + Name: "routes.xml", + Content: ` + + + + + + + + `, + }, + Language: v1alpha1.LanguageXML, + } + + catalog, err := test.DefaultCatalog() + assert.Nil(t, err) + + meta := Extract(catalog, code) + + // assert all dependencies are found and sorted (removing duplicates) + assert.Equal(t, []string{"camel:core", "camel:hystrix", "camel:kafka"}, meta.Dependencies) +} \ No newline at end of file diff --git a/pkg/util/source/inspector.go b/pkg/util/source/inspector.go index a9310a4c6b..6d3216193e 100644 --- a/pkg/util/source/inspector.go +++ b/pkg/util/source/inspector.go @@ -40,6 +40,8 @@ var ( additionalDependencies = map[string]string{ ".*JsonLibrary\\.Jackson.*": "camel:jackson", + ".*\\.hystrix().*": "camel:hystrix", + ".*.*": "camel:hystrix", } )