Search in sources :

Example 21 with ResourceMap

use of org.bndtools.templating.ResourceMap in project bndtools by bndtools.

the class ReposTemplateLoaderTest method testProcessTemplate.

public void testProcessTemplate() throws Exception {
    List<Template> templates = loader.findTemplates("test1", new ProgressMonitorReporter(new NullProgressMonitor(), "")).getValue();
    assertEquals(1, templates.size());
    Template template = templates.get(0);
    Map<String, List<Object>> parameters = new HashMap<>();
    parameters.put("projectName", Collections.<Object>singletonList("org.example.foo"));
    parameters.put("srcDir", Collections.<Object>singletonList("src/main/java"));
    parameters.put("basePackageDir", Collections.<Object>singletonList("org/example/foo"));
    ResourceMap outputs = template.generateOutputs(parameters);
    assertEquals(5, outputs.size());
    Entry<String, Resource> entry;
    Iterator<Entry<String, Resource>> iter = outputs.entries().iterator();
    entry = iter.next();
    assertEquals("src/main/java/org/example/foo/Activator.java", entry.getKey());
    assertEquals("package org.example.foo; public class Activator {}", IO.collect(entry.getValue().getContent()));
    entry = iter.next();
    assertEquals("pic.jpg", entry.getKey());
    // Check the digest of the pic to ensure it didn't get damaged by the templating engine
    DigestInputStream digestStream = new DigestInputStream(entry.getValue().getContent(), MessageDigest.getInstance("SHA-256"));
    IO.drain(digestStream);
    byte[] digest = digestStream.getMessageDigest().digest();
    assertEquals("ea5d770bc2deddb1f9a20df3ad337bdc1490ba7b35fa41c33aa4e9a534e82ada", Hex.toHexString(digest).toLowerCase());
    entry = iter.next();
    assertEquals("src/main/java/", entry.getKey());
    entry = iter.next();
    assertEquals("src/main/java/org/example/foo/", entry.getKey());
    entry = iter.next();
    assertEquals("bnd.bnd", entry.getKey());
    assertEquals("Bundle-SymbolicName: org.example.foo", IO.collect(entry.getValue().getContent()));
}
Also used : NullProgressMonitor(org.eclipse.core.runtime.NullProgressMonitor) DigestInputStream(java.security.DigestInputStream) ProgressMonitorReporter(org.bndtools.utils.progress.ProgressMonitorReporter) HashMap(java.util.HashMap) Resource(org.bndtools.templating.Resource) Template(org.bndtools.templating.Template) ResourceMap(org.bndtools.templating.ResourceMap) Entry(java.util.Map.Entry) List(java.util.List)

Example 22 with ResourceMap

use of org.bndtools.templating.ResourceMap in project bndtools by bndtools.

the class ReposTemplateLoaderTest method testAlternateDelimiters.

public void testAlternateDelimiters() throws Exception {
    List<Template> templates = loader.findTemplates("test2", new ProgressMonitorReporter(new NullProgressMonitor(), "")).getValue();
    assertEquals(1, templates.size());
    Template template = templates.get(0);
    Map<String, List<Object>> parameters = new HashMap<>();
    parameters.put("projectName", Collections.<Object>singletonList("org.example.foo"));
    parameters.put("srcDir", Collections.<Object>singletonList("src/main/java"));
    parameters.put("basePackageDir", Collections.<Object>singletonList("org/example/foo"));
    ResourceMap outputs = template.generateOutputs(parameters);
    assertEquals(5, outputs.size());
    Iterator<Entry<String, Resource>> iter = outputs.entries().iterator();
    Entry<String, Resource> entry;
    entry = iter.next();
    assertEquals("src/main/java/org/example/foo/Activator.java", entry.getKey());
    assertEquals("package org.example.foo; public class Activator {}", IO.collect(entry.getValue().getContent()));
    entry = iter.next();
    assertEquals("pic.jpg", entry.getKey());
    // Check the digest of the pic to ensure it didn't get damaged by the templating engine
    DigestInputStream digestStream = new DigestInputStream(entry.getValue().getContent(), MessageDigest.getInstance("SHA-256"));
    IO.drain(digestStream);
    byte[] digest = digestStream.getMessageDigest().digest();
    assertEquals("ea5d770bc2deddb1f9a20df3ad337bdc1490ba7b35fa41c33aa4e9a534e82ada", Hex.toHexString(digest).toLowerCase());
    entry = iter.next();
    assertEquals("src/main/java/", entry.getKey());
    entry = iter.next();
    assertEquals("src/main/java/org/example/foo/", entry.getKey());
    entry = iter.next();
    assertEquals("bnd.bnd", entry.getKey());
    assertEquals("Bundle-SymbolicName: org.example.foo", IO.collect(entry.getValue().getContent()));
}
Also used : NullProgressMonitor(org.eclipse.core.runtime.NullProgressMonitor) DigestInputStream(java.security.DigestInputStream) ProgressMonitorReporter(org.bndtools.utils.progress.ProgressMonitorReporter) HashMap(java.util.HashMap) Resource(org.bndtools.templating.Resource) Template(org.bndtools.templating.Template) ResourceMap(org.bndtools.templating.ResourceMap) Entry(java.util.Map.Entry) List(java.util.List)

Aggregations

ResourceMap (org.bndtools.templating.ResourceMap)22 List (java.util.List)13 StringResource (org.bndtools.templating.StringResource)13 NullProgressMonitor (org.eclipse.core.runtime.NullProgressMonitor)13 HashMap (java.util.HashMap)12 Resource (org.bndtools.templating.Resource)10 Test (org.junit.Test)9 Template (org.bndtools.templating.Template)6 Entry (java.util.Map.Entry)5 FolderResource (org.bndtools.templating.FolderResource)5 ProgressMonitorReporter (org.bndtools.utils.progress.ProgressMonitorReporter)4 File (java.io.File)3 InputStream (java.io.InputStream)3 DigestInputStream (java.security.DigestInputStream)3 StringReader (java.io.StringReader)2 Properties (java.util.Properties)2 JarEntry (java.util.jar.JarEntry)2 JarFile (java.util.jar.JarFile)2 JarInputStream (java.util.jar.JarInputStream)2 BuiltInTemplate (org.bndtools.core.ui.wizards.shared.BuiltInTemplate)2