in pkg/util/source/inspector.go [314:368]
func (i *baseInspector) discoverDependencies(source v1.SourceSpec, meta *Metadata) error {
for _, uri := range meta.FromURIs {
// consumer
if err := i.addDependencies(uri, meta, true); err != nil {
return err
}
}
for _, uri := range meta.ToURIs {
// producer
if err := i.addDependencies(uri, meta, false); err != nil {
return err
}
}
for pattern, supplier := range sourceDependencies {
if !pattern.MatchString(source.Content) {
continue
}
for _, dep := range supplier(i.catalog) {
meta.AddDependency(dep)
}
}
for _, match := range languageRegexp.FindAllStringSubmatch(source.Content, -1) {
if len(match) > 1 {
if dependency, ok := i.catalog.GetLanguageDependency(match[1]); ok {
meta.AddDependency(dependency)
}
}
}
for _, match := range camelTypeRegexp.FindAllStringSubmatch(source.Content, -1) {
if len(match) > 1 {
if dependency, ok := i.catalog.GetJavaTypeDependency(match[1]); ok {
meta.AddDependency(dependency)
}
}
}
for _, match := range errorHandlerRegexp.FindAllStringSubmatch(source.Content, -1) {
if len(match) > 1 {
_, scheme := i.catalog.DecodeComponent(match[1])
if dfDep := i.catalog.GetArtifactByScheme(scheme.ID); dfDep != nil {
meta.AddDependency(dfDep.GetDependencyID())
}
if scheme.ID == kamelet {
AddKamelet(meta, match[1])
}
}
}
return nil
}