[forge-issues] [JBoss JIRA] (FORGE-745) Can not use Java Parser in war deployment on AS7
Lincoln Baxter III (JIRA)
jira-events at lists.jboss.org
Thu Jan 17 14:58:21 EST 2013
[ https://issues.jboss.org/browse/FORGE-745?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Lincoln Baxter III closed FORGE-745.
------------------------------------
Assignee: Lincoln Baxter III
Fix Version/s: 1.2.1.Final
2.0.0.Alpha1
Resolution: Done
> Can not use Java Parser in war deployment on AS7
> ------------------------------------------------
>
> Key: FORGE-745
> URL: https://issues.jboss.org/browse/FORGE-745
> Project: Forge
> Issue Type: Bug
> Components: Parsers / File Manipulation
> Affects Versions: 1.1.3.Final
> Environment: Ubuntu, AS7
> Reporter: Craig Schwarzwald
> Assignee: Lincoln Baxter III
> Fix For: 1.2.1.Final, 2.0.0.Alpha1
>
>
> {code}
> package org.ocpsoft.keywords;
> import static org.junit.Assert.assertTrue;
> import java.io.File;
> import java.io.FileOutputStream;
> import java.io.PrintStream;
> import java.net.URL;
> import org.jboss.arquillian.container.test.api.Deployment;
> import org.jboss.arquillian.drone.api.annotation.Drone;
> import org.jboss.arquillian.junit.Arquillian;
> import org.jboss.arquillian.test.api.ArquillianResource;
> import org.jboss.forge.parser.JavaParser;
> import org.jboss.forge.parser.java.JavaClass;
> import org.jboss.forge.parser.java.Visibility;
> import org.jboss.shrinkwrap.api.ShrinkWrap;
> import org.jboss.shrinkwrap.api.asset.EmptyAsset;
> import org.jboss.shrinkwrap.api.spec.WebArchive;
> import org.jboss.shrinkwrap.resolver.api.DependencyResolvers;
> import org.jboss.shrinkwrap.resolver.api.maven.MavenDependencyResolver;
> import org.junit.Test;
> import org.junit.runner.RunWith;
> import com.ocpsoft.constants.InputConstants;
> import com.thoughtworks.selenium.DefaultSelenium;
> @RunWith(Arquillian.class)
> public class ParserExampleTest
> {
> @Deployment // testable = false to run as a client
> public static WebArchive createDeployment() {
> MavenDependencyResolver resolver = DependencyResolvers.use(
> MavenDependencyResolver.class).loadMetadataFromPom("pom.xml");
> return ShrinkWrap.create(WebArchive.class)
> .addAsResource("META-INF/persistence.xml")
> .addAsLibraries(resolver.artifacts("org.jboss.forge:parser-java-impl")
> .resolveAsFiles())
> .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml");
> }
>
>
> @Test
> public void testParser() throws InterruptedException {
> String className = "ParseTest";
> removeClassFile(InputConstants.FILE_LOCATION + className + ".java");
> createTestClassViaParser(InputConstants.FILE_LOCATION + className + ".java", className);
> }
>
> private void createTestClassViaParser(String testPath, String className) {
> JavaClass testClass = JavaParser.create(JavaClass.class);
>
> testClass
> .setName(className)
> .setPackage("com.example.domain")
> .addAnnotation(RunWith.class).setLiteralValue(Arquillian.class.getSimpleName() + ".class")
> .getOrigin().addImport(Arquillian.class);
>
> testClass
> .addField().setPrivate().setStatic(true).setFinal(true).setType(String.class).setName("WEBAPP_SRC").setLiteralInitializer("\"src/main/webapp\"");
>
> testClass.addMethod()
> .setName("getDeployment")
> .setStatic(true)
> .setVisibility(Visibility.PUBLIC)
> .setReturnType(WebArchive.class)
> .setBody("return ShrinkWrap.create(WebArchive.class, \"FBTutorialDemo.war\")\n" +
> "\t.addAsResource(\"META-INF/persistence.xml\")\n" +
> "\t.addAsWebResource(new File(WEBAPP_SRC, \"index.html\"))\n" +
> "\t.addAsWebResource(new File(WEBAPP_SRC, \"index2.html\"))\n" +
> "\t.addAsWebResource(new File(WEBAPP_SRC, \"myInfo.html\"))\n" +
> "\t.addAsWebResource(new File(WEBAPP_SRC, \"friendsInfo.html\"))\n" +
> "\t.addAsWebInfResource(EmptyAsset.INSTANCE, \"beans.xml\");")
> .addAnnotation(Deployment.class)
> .getOrigin().addImport(File.class);
> testClass.addImport(WebArchive.class);
> testClass.addImport(ShrinkWrap.class);
> testClass.addImport(EmptyAsset.class);
>
> testClass
> .addField().setType(DefaultSelenium.class)
> .setName("browser").addAnnotation(Drone.class)
> .getOrigin().addImport(DefaultSelenium.class);
> testClass.addImport(Drone.class);
>
> testClass
> .addField().setType(URL.class)
> .setName("deploymentURL").addAnnotation(ArquillianResource.class)
> .getOrigin().addImport(URL.class);
> testClass.addImport(ArquillianResource.class);
>
> try{
> PrintStream writetoTest = new PrintStream(
> new FileOutputStream(testPath));
> writetoTest.print(testClass.toString());
> writetoTest.close();
> }
> catch (Exception e) {
> System.err.println("Failure in createTestClassViaParser: " + e);
> }
> }
>
> public void removeClassFile(String filePath){
> File classFile = new File(filePath);
> try{
> if(!classFile.exists()){
> System.out.println(filePath + " does NOT exist. Nothing to Remove");
> }
> else{
> if(classFile.delete()){
> System.out.println(classFile.getName() + " is deleted!");
> }else{
> System.out.println("Delete operation is failed.");
> assertTrue(false);
> }
> }
> }catch(Exception e){
> e.printStackTrace();
> }
> }
> }
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the forge-issues
mailing list