package org.jboss.windup.tests.bootstrap;
import com.google.common.base.Charsets;
import com.google.common.io.Files;
import org.jboss.windup.bootstrap.Bootstrap;
import org.jboss.windup.util.PathUtil;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.rules.TemporaryFolder;
import java.io.File;
import java.io.IOException;
public abstract class AbstractBootstrapTestWithRules extends AbstractBootstrapTest {
private static final String TESTING_MIGRATION_RULES = "<?xml version=\"1.0\"?>\n"
+ "<ruleset xmlns=\"http://windup.jboss.org/schema/jboss-ruleset\" id=\"BootstrapTests_Eap6to7\" "
+ "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" "
+ "xsi:schemaLocation=\"http://windup.jboss.org/schema/jboss-ruleset "
+ "http://windup.jboss.org/schema/jboss-ruleset/windup-jboss-ruleset.xsd \">\n"
+ " <metadata>\n"
+ " <description>Only for bootstrap tests.</description>\n"
+ " <dependencies>\n"
+ " <addon id=\"org.jboss.windup.rules,windup-rules-xml," + Bootstrap.getRuntimeAPIVersion() + "\" />\n"
+ " </dependencies>\n"
+ " <sourceTechnology id=\"eap6\" versionRange=\"[6,7)\" />\n"
+ " <targetTechnology id=\"eap7\" versionRange=\"[7,)\" />\n"
+ " <tag>test-tag-eap</tag>\n"
+ " </metadata>\n"
+ "\n"
+ " <rules>\n"
+ " <rule id=\"testing-rule\">\n"
+ " <when>\n"
+ " <file filename=\"jboss-web.xml\"/>\n"
+ " </when>\n"
+ " <perform>\n"
+ " <classification title=\"jboss-web.xml\" effort=\"3\" severity=\"mandatory\"/>\n"
+ " </perform>\n"
+ " </rule>\n"
+ " </rules>\n"
+ "</ruleset>";
// has a different tag, which is needed for some tests
private static final String MORE_TESTING_MIGRATION_RULES = "<?xml version=\"1.0\"?>\n"
+ "<ruleset xmlns=\"http://windup.jboss.org/schema/jboss-ruleset\" id=\"BootstrapTests_More_Eap6to7\" "
+ "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" "
+ "xsi:schemaLocation=\"http://windup.jboss.org/schema/jboss-ruleset "
+ "http://windup.jboss.org/schema/jboss-ruleset/windup-jboss-ruleset.xsd \">\n"
+ " <metadata>\n"
+ " <description>Only for bootstrap tests.</description>\n"
+ " <dependencies>\n"
+ " <addon id=\"org.jboss.windup.rules,windup-rules-xml," + Bootstrap.getRuntimeAPIVersion() + "\" />\n"
+ " </dependencies>\n"
+ " <sourceTechnology id=\"eap6\" versionRange=\"[6,7)\" />\n"
+ " <targetTechnology id=\"eap7\" versionRange=\"[7,)\" />\n"
+ " <tag>another-test-tag-eap</tag>\n"
+ " </metadata>\n"
+ "\n"
+ " <rules>\n"
+ " <rule id=\"another-testing-rule\">\n"
+ " <when>\n"
+ " <file filename=\"jboss-ejb3.xml\"/>\n"
+ " </when>\n"
+ " <perform>\n"
+ " <classification title=\"jboss-ejb3.xml\" effort=\"3\" severity=\"mandatory\"/>\n"
+ " </perform>\n"
+ " </rule>\n"
+ " </rules>\n"
+ "</ruleset>";
@Rule
public final TemporaryFolder rulesDir = new TemporaryFolder();
@Before
public void setUpRulesDirectory() throws IOException {
File rules = rulesDir.newFile("test-eap6to7-rules.windup.xml");
Files.write(TESTING_MIGRATION_RULES, rules, Charsets.UTF_8);
File moreRules = rulesDir.newFile("test-eap6to7-more-rules.windup.xml");
Files.write(MORE_TESTING_MIGRATION_RULES, moreRules, Charsets.UTF_8);
System.setProperty(PathUtil.WINDUP_RULESETS_DIR_SYSPROP, rulesDir.getRoot().getAbsolutePath());
}
@After
public void cleanSystemProperty() {
System.clearProperty(PathUtil.WINDUP_RULESETS_DIR_SYSPROP);
}
}