Search in sources :

Example 1 with ScriptPlugin

use of org.apache.logging.log4j.script.ScriptPlugin in project logging-log4j2 by apache.

the class ScriptConditionTest method testSelectFilesToDelete3.

@Test
@Tag("groovy")
public void testSelectFilesToDelete3() {
    final Configuration config = new DefaultConfiguration();
    // creates the ScriptManager
    config.initialize();
    final List<PathWithAttributes> pathList = new ArrayList<>();
    pathList.add(new PathWithAttributes(Paths.get("/path/1/abc/a.txt"), new DummyFileAttributes()));
    pathList.add(new PathWithAttributes(Paths.get("/path/2/abc/bbb.txt"), new DummyFileAttributes()));
    pathList.add(new PathWithAttributes(Paths.get("/path/3/abc/c.txt"), new DummyFileAttributes()));
    final String scriptText = // 
    "" + // 
    "import java.nio.file.*;" + // 
    "def pattern = ~/(\\d*)[\\/\\\\]abc[\\/\\\\].*\\.txt/;" + // 
    "assert pattern.getClass() == java.util.regex.Pattern;" + "def copy = pathList.collect{it};" + // 
    "pathList.each { pathWithAttribs -> \n" + // 
    "  def relative = basePath.relativize pathWithAttribs.path;" + // 
    "  println 'relative path: ' + relative;" + "  def str = relative.toString();" + // 
    "  def m = pattern.matcher(str);" + // 
    "  if (m.find()) {" + // 
    "    def index = m.group(1) as int;" + // 
    "    println 'extracted index: ' + index;" + "    def isOdd = (index % 2) == 1;" + // 
    "    println 'is odd: ' + isOdd;" + "    if (isOdd) { copy.remove pathWithAttribs}" + // 
    "  }" + // 
    "}" + "println copy;" + "copy;";
    final ScriptPlugin script = new ScriptPlugin("test", "groovy", scriptText);
    final ScriptCondition condition = ScriptCondition.createCondition(script, config);
    final Path base = Paths.get("/path");
    final List<PathWithAttributes> result = condition.selectFilesToDelete(base, pathList);
    assertEquals(1, result.size());
    assertEquals(Paths.get("/path/2/abc/bbb.txt"), result.get(0).getPath());
}
Also used : Path(java.nio.file.Path) PathWithAttributes(org.apache.logging.log4j.core.appender.rolling.action.PathWithAttributes) DefaultConfiguration(org.apache.logging.log4j.core.config.DefaultConfiguration) Configuration(org.apache.logging.log4j.core.config.Configuration) ArrayList(java.util.ArrayList) DefaultConfiguration(org.apache.logging.log4j.core.config.DefaultConfiguration) DummyFileAttributes(org.apache.logging.log4j.core.test.appender.rolling.action.DummyFileAttributes) ScriptPlugin(org.apache.logging.log4j.script.ScriptPlugin) Test(org.junit.jupiter.api.Test) Tag(org.junit.jupiter.api.Tag)

Example 2 with ScriptPlugin

use of org.apache.logging.log4j.script.ScriptPlugin in project logging-log4j2 by apache.

the class ScriptConditionTest method testSelectFilesToDelete.

@Test
public void testSelectFilesToDelete() {
    final Configuration config = new DefaultConfiguration();
    // creates the ScriptManager
    config.initialize();
    // script that returns pathList
    final ScriptPlugin script = new ScriptPlugin("test", "javascript", "pathList;");
    final ScriptCondition condition = ScriptCondition.createCondition(script, config);
    final List<PathWithAttributes> pathList = new ArrayList<>();
    final Path base = Paths.get("baseDirectory");
    final List<PathWithAttributes> result = condition.selectFilesToDelete(base, pathList);
    assertSame(result, pathList);
}
Also used : Path(java.nio.file.Path) PathWithAttributes(org.apache.logging.log4j.core.appender.rolling.action.PathWithAttributes) DefaultConfiguration(org.apache.logging.log4j.core.config.DefaultConfiguration) Configuration(org.apache.logging.log4j.core.config.Configuration) ArrayList(java.util.ArrayList) DefaultConfiguration(org.apache.logging.log4j.core.config.DefaultConfiguration) ScriptPlugin(org.apache.logging.log4j.script.ScriptPlugin) Test(org.junit.jupiter.api.Test)

Example 3 with ScriptPlugin

use of org.apache.logging.log4j.script.ScriptPlugin in project logging-log4j2 by apache.

the class ScriptConditionTest method testSelectFilesToDelete2.

@Test
public void testSelectFilesToDelete2() {
    final Configuration config = new DefaultConfiguration();
    // creates the ScriptManager
    config.initialize();
    final List<PathWithAttributes> pathList = new ArrayList<>();
    pathList.add(new PathWithAttributes(Paths.get("/path/1"), new DummyFileAttributes()));
    pathList.add(new PathWithAttributes(Paths.get("/path/2"), new DummyFileAttributes()));
    pathList.add(new PathWithAttributes(Paths.get("/path/3"), new DummyFileAttributes()));
    final String scriptText = // 
    "pathList.remove(1);" + "pathList;";
    final ScriptPlugin script = new ScriptPlugin("test", "javascript", scriptText);
    final ScriptCondition condition = ScriptCondition.createCondition(script, config);
    final Path base = Paths.get("baseDirectory");
    final List<PathWithAttributes> result = condition.selectFilesToDelete(base, pathList);
    assertSame(result, pathList);
    assertEquals(2, result.size());
    assertEquals(Paths.get("/path/1"), result.get(0).getPath());
    assertEquals(Paths.get("/path/3"), result.get(1).getPath());
}
Also used : Path(java.nio.file.Path) PathWithAttributes(org.apache.logging.log4j.core.appender.rolling.action.PathWithAttributes) DefaultConfiguration(org.apache.logging.log4j.core.config.DefaultConfiguration) Configuration(org.apache.logging.log4j.core.config.Configuration) ArrayList(java.util.ArrayList) DefaultConfiguration(org.apache.logging.log4j.core.config.DefaultConfiguration) DummyFileAttributes(org.apache.logging.log4j.core.test.appender.rolling.action.DummyFileAttributes) ScriptPlugin(org.apache.logging.log4j.script.ScriptPlugin) Test(org.junit.jupiter.api.Test)

Aggregations

Path (java.nio.file.Path)3 ArrayList (java.util.ArrayList)3 PathWithAttributes (org.apache.logging.log4j.core.appender.rolling.action.PathWithAttributes)3 Configuration (org.apache.logging.log4j.core.config.Configuration)3 DefaultConfiguration (org.apache.logging.log4j.core.config.DefaultConfiguration)3 ScriptPlugin (org.apache.logging.log4j.script.ScriptPlugin)3 Test (org.junit.jupiter.api.Test)3 DummyFileAttributes (org.apache.logging.log4j.core.test.appender.rolling.action.DummyFileAttributes)2 Tag (org.junit.jupiter.api.Tag)1