Search in sources :

Example 16 with Macro

use of aQute.bnd.osgi.Macro in project bnd by bndtools.

the class MacroTest method testWarning.

public static void testWarning() {
    Processor p = new Processor();
    p.setProperty("three", "333");
    p.setProperty("empty", "");
    p.setProperty("real", "true");
    Macro m = new Macro(p);
    m.process("    ${warning;xw;1;2;3 ${three}}");
    m.process("    ${error;xe;1;2;3 ${three}}");
    m.process("    ${if;1;$<a>}");
    assertTrue("xw", p.getWarnings().get(0).endsWith("xw"));
    assertTrue("1", p.getWarnings().get(1).endsWith("1"));
    assertTrue("2", p.getWarnings().get(2).endsWith("2"));
    assertTrue("3 333", p.getWarnings().get(3).endsWith("3 333"));
    assertTrue("xw", p.getErrors().get(0).endsWith("xe"));
    assertTrue("1", p.getErrors().get(1).endsWith("1"));
    assertTrue("2", p.getErrors().get(2).endsWith("2"));
    assertTrue("3 333", p.getErrors().get(3).endsWith("3 333"));
}
Also used : Processor(aQute.bnd.osgi.Processor) Macro(aQute.bnd.osgi.Macro)

Example 17 with Macro

use of aQute.bnd.osgi.Macro in project bnd by bndtools.

the class MacroTest method testJoin.

public static void testJoin() {
    Processor p = new Processor();
    p.setProperty("a", "aaaa");
    Macro m = new Macro(p);
    assertEquals("aa,bb,cc,dd,ee,ff", m.process("${join;aa,bb,cc,dd,ee,ff}"));
    assertEquals("aa,bb,cc,dd,ee,ff", m.process("${join;aa,bb,cc;dd,ee,ff}"));
    assertEquals("aa,bb,cc,dd,ee,ff", m.process("${join;aa;bb;cc;dd;ee,ff}"));
    assertEquals("aaXbbXccXddXeeXff", m.process("${sjoin;X;aa,bb,cc,dd,ee,ff}"));
    assertEquals("aa\nbb\ncc\ndd\nee\nff", m.process("${sjoin;\n;aa,bb,cc;dd,ee,ff}"));
    assertEquals("aa\nbb\ncc\ndd\nee\nff", m.process("${unescape;${sjoin;\\n;aa,bb,cc;dd,ee,ff}}"));
}
Also used : Processor(aQute.bnd.osgi.Processor) Macro(aQute.bnd.osgi.Macro)

Example 18 with Macro

use of aQute.bnd.osgi.Macro in project bnd by bndtools.

the class MacroTest method testParentFile.

public static void testParentFile() {
    Processor p = new Processor();
    Macro m = new Macro(p);
    assertTrue(m.process("${dir;.project}").endsWith("biz.aQute.bndlib.tests"));
}
Also used : Processor(aQute.bnd.osgi.Processor) Macro(aQute.bnd.osgi.Macro)

Example 19 with Macro

use of aQute.bnd.osgi.Macro in project karaf by apache.

the class VerifyMojo method getMetadata.

public static Map<String, Map<VersionRange, Map<String, String>>> getMetadata(Map<String, String> properties, String prefix) {
    Map<String, Map<VersionRange, Map<String, String>>> result = new HashMap<>();
    for (String key : properties.keySet()) {
        if (key.startsWith(prefix)) {
            String val = properties.get(key);
            key = key.substring(prefix.length());
            String[] parts = key.split("#");
            if (parts.length == 3) {
                Map<VersionRange, Map<String, String>> ranges = result.computeIfAbsent(parts[0], k -> new HashMap<>());
                String version = parts[1];
                if (!version.startsWith("[") && !version.startsWith("(")) {
                    Processor processor = new Processor();
                    processor.setProperty("@", VersionTable.getVersion(version).toString());
                    Macro macro = new Macro(processor);
                    version = macro.process("${range;[==,=+)}");
                }
                VersionRange range = new VersionRange(version);
                ranges.computeIfAbsent(range, k -> new HashMap<>()).put(parts[2], val);
            }
        }
    }
    return result;
}
Also used : Manifest(java.util.jar.Manifest) ResourceImpl(org.apache.karaf.features.internal.resolver.ResourceImpl) MultiException(org.apache.karaf.features.internal.util.MultiException) Constants(org.osgi.framework.Constants) Enumeration(java.util.Enumeration) URL(java.net.URL) IdentityNamespace(org.osgi.framework.namespace.IdentityNamespace) ConfigFile(org.apache.karaf.features.internal.model.ConfigFile) Parameter(org.apache.maven.plugins.annotations.Parameter) FeaturesService(org.apache.karaf.features.FeaturesService) ResourceUtils(org.apache.karaf.features.internal.resolver.ResourceUtils) BundleCapability(org.osgi.framework.wiring.BundleCapability) MavenProject(org.apache.maven.project.MavenProject) JaxbUtil(org.apache.karaf.features.internal.model.JaxbUtil) Map(java.util.Map) CustomDownloadManager(org.apache.karaf.profile.assembly.CustomDownloadManager) Artifact(org.apache.maven.artifact.Artifact) VersionTable(org.apache.felix.utils.version.VersionTable) Bundle(org.osgi.framework.Bundle) Method(java.lang.reflect.Method) ZipEntry(java.util.zip.ZipEntry) BundleRevision(org.osgi.framework.wiring.BundleRevision) EnumSet(java.util.EnumSet) BundleException(org.osgi.framework.BundleException) MavenResolver(org.ops4j.pax.url.mvn.MavenResolver) Processor(aQute.bnd.osgi.Processor) Deployer(org.apache.karaf.features.internal.service.Deployer) InvalidSyntaxException(org.osgi.framework.InvalidSyntaxException) MapUtils(org.apache.karaf.features.internal.util.MapUtils) Collection(java.util.Collection) BundleRequirement(org.osgi.framework.wiring.BundleRequirement) Set(java.util.Set) MANIFEST_NAME(java.util.jar.JarFile.MANIFEST_NAME) Reader(java.io.Reader) Version(org.osgi.framework.Version) Attributes(java.util.jar.Attributes) Executors(java.util.concurrent.Executors) VersionRange(org.apache.felix.utils.version.VersionRange) BundleStartLevel(org.osgi.framework.startlevel.BundleStartLevel) List(java.util.List) MojoSupport(org.apache.karaf.tooling.utils.MojoSupport) PropertiesLoader(org.apache.karaf.util.config.PropertiesLoader) ResolutionException(org.osgi.service.resolver.ResolutionException) Pattern(java.util.regex.Pattern) DownloadManager(org.apache.karaf.features.internal.download.DownloadManager) Features(org.apache.karaf.features.internal.model.Features) Requirement(org.osgi.resource.Requirement) Proxy(java.lang.reflect.Proxy) ZipInputStream(java.util.zip.ZipInputStream) DownloadCallback(org.apache.karaf.features.internal.download.DownloadCallback) HashMap(java.util.HashMap) ResourceBuilder(org.apache.karaf.features.internal.resolver.ResourceBuilder) TreeSet(java.util.TreeSet) FeatureEvent(org.apache.karaf.features.FeatureEvent) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) Mojo(org.apache.maven.plugins.annotations.Mojo) StreamProvider(org.apache.karaf.features.internal.download.StreamProvider) ScheduledExecutorService(java.util.concurrent.ScheduledExecutorService) MavenResolvers(org.ops4j.pax.url.mvn.MavenResolvers) Downloader(org.apache.karaf.features.internal.download.Downloader) ResolutionScope(org.apache.maven.plugins.annotations.ResolutionScope) Hashtable(java.util.Hashtable) LinkedHashSet(java.util.LinkedHashSet) BundleWiring(org.osgi.framework.wiring.BundleWiring) Properties(java.util.Properties) Macro(aQute.bnd.osgi.Macro) Iterator(java.util.Iterator) Conditional(org.apache.karaf.features.internal.model.Conditional) StaticInstallSupport(org.apache.karaf.features.internal.service.StaticInstallSupport) IOException(java.io.IOException) ResolverImpl(org.apache.felix.resolver.ResolverImpl) Field(java.lang.reflect.Field) MojoExecutionException(org.apache.maven.plugin.MojoExecutionException) Logger(org.apache.felix.resolver.Logger) File(java.io.File) MojoFailureException(org.apache.maven.plugin.MojoFailureException) AtomicLong(java.util.concurrent.atomic.AtomicLong) Feature(org.apache.karaf.features.internal.model.Feature) DeploymentEvent(org.apache.karaf.features.DeploymentEvent) FileReader(java.io.FileReader) InvocationHandler(java.lang.reflect.InvocationHandler) State(org.apache.karaf.features.internal.service.State) Collections(java.util.Collections) InputStream(java.io.InputStream) Processor(aQute.bnd.osgi.Processor) HashMap(java.util.HashMap) Macro(aQute.bnd.osgi.Macro) VersionRange(org.apache.felix.utils.version.VersionRange) Map(java.util.Map) HashMap(java.util.HashMap)

Example 20 with Macro

use of aQute.bnd.osgi.Macro in project bnd by bndtools.

the class bnd method _macro.

/**
	 * Show the value of a macro
	 * 
	 * @throws Exception
	 */
@Description("Show macro value")
public void _macro(macroOptions options) throws Exception {
    Project project = getProject(options.project());
    if (project == null) {
        messages.NoProject();
        return;
    }
    StringBuilder sb = new StringBuilder();
    Macro r = project.getReplacer();
    getInfo(project);
    String del = "";
    for (String s : options._arguments()) {
        if (!s.startsWith("${")) {
            s = "${" + s;
        }
        if (!s.endsWith("}")) {
            s += "}";
        }
        s = s.replace(':', ';');
        String p = r.process(s);
        sb.append(del);
        sb.append(p);
        del = " ";
    }
    getInfo(project);
    err.println(sb);
}
Also used : Project(aQute.bnd.build.Project) Macro(aQute.bnd.osgi.Macro) Description(aQute.lib.getopt.Description)

Aggregations

Macro (aQute.bnd.osgi.Macro)32 Processor (aQute.bnd.osgi.Processor)29 Project (aQute.bnd.build.Project)1 VersionedClause (aQute.bnd.build.model.clauses.VersionedClause)1 Attrs (aQute.bnd.header.Attrs)1 Analyzer (aQute.bnd.osgi.Analyzer)1 Version (aQute.bnd.version.Version)1 Description (aQute.lib.getopt.Description)1 Replacer (aQute.libg.sed.Replacer)1 Sed (aQute.libg.sed.Sed)1 File (java.io.File)1 FileReader (java.io.FileReader)1 IOException (java.io.IOException)1 InputStream (java.io.InputStream)1 Reader (java.io.Reader)1 Field (java.lang.reflect.Field)1 InvocationHandler (java.lang.reflect.InvocationHandler)1 Method (java.lang.reflect.Method)1 Proxy (java.lang.reflect.Proxy)1 URL (java.net.URL)1