func()

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
}