/**
*
*/
package org.richfaces.cdk;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import org.junit.Test;
/**
* @author asmirnov
*
*/
public class LibraryBuilderTest extends CdkTestBase {
private static final String[] JAVA_INCLUDES = new String[] { "**/*.java" };
private static final String MAIN_CONFIG = "src/main/config";
private static final String MAIN_TEMPLATES = "src/main/templates";
private static final String PROJECT_BASE = "";
private static final String[] STRINGS_ARRAY = new String[0];
private static final String XML_INCLUDES = "**/*.xml";
protected File outputJavaDirectory = new File(PROJECT_BASE + "target/generated-sources/main/java");
protected File outputResourcesDirectory = new File(PROJECT_BASE + "target/generated-sources/main/resources");
protected File outputTestDirectory = new File(PROJECT_BASE + "target/generated-sources/test/java");
protected File outputTestResourcesDirectory = new File(PROJECT_BASE + "target/generated-sources/test/resources");
/**
* <p class="changed_added_4_0">
* This utility method sets output directory for particular type. I such directory does not exist, it is created.
* </p>
*
* @param generator
* @param directory
* @param type
*/
private static void setOutput(Generator generator, File directory, Outputs type) {
generator.addOutputFolder(type, directory);
}
@Test
public void createInstance() throws Exception {
List<String> compileSourceRoots = Arrays.asList("");
Generator generator = new Generator();
generator.setLoader(createClassLoader());
// Set source folders.
ArrayList<File> folders = new ArrayList<File>(compileSourceRoots.size());
for (String sourceFolder : compileSourceRoots) {
File folder = new File(sourceFolder);
if (folder.exists() && folder.isDirectory()) {
folders.add(folder);
}
}
generator.addSources(Sources.JAVA_SOURCES, findJavaFiles(), folders);
// TODO - detect templates and configs directories.
generator.addSources(Sources.RENDERER_TEMPLATES, findTemplateFiles(), null);
generator.addSources(Sources.FACES_CONFIGS, findFacesConfigFiles(), null);
// Setup output folders.
setOutput(generator, outputJavaDirectory, Outputs.JAVA_CLASSES);
setOutput(generator, outputResourcesDirectory, Outputs.RESOURCES);
setOutput(generator, outputTestDirectory, Outputs.TEST_JAVA_CLASSES);
setOutput(generator, outputTestResourcesDirectory, Outputs.TEST_RESOURCES);
// configure CDK workers.
// setupPlugins(generator);
// Build JSF library.
// LibraryBuilder builder = LibraryBuilder.createInstance(context);
generator.init();
}
/**
* <p class="changed_added_4_0">
* This method checks library configuration and sets default values if necessary.
* </p>
*/
protected void checkLibraryConfig() {
// TODO Auto-generated method stub
}
@Override
protected CdkClassLoader createClassLoader() {
return new CdkClassLoader(this.getClass().getClassLoader());
}
private Iterable<File> findFacesConfigFiles() {
return Collections.emptySet();
}
private Iterable<File> findJavaFiles() {
return Collections.emptySet();
}
private Iterable<File> findTemplateFiles() {
return Collections.emptySet();
}
}