package reframe.apt;
import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import reframe.annotations.model.ObjectFactory;
import com.sun.mirror.apt.AnnotationProcessor;
public class SimpleAnnotationProcessor implements AnnotationProcessor {
public void process() {
File f = new File("/Users/stigi/Workspaces/Eclipse.workspaces/ReframeAnnotations/META-INF/concepts/webpoint-concepts.xml");
int i = 1;
try {
JAXBContext c = JAXBContext.newInstance(ObjectFactory.class);
i++;
Unmarshaller u = c.createUnmarshaller();
i++;
Object o = u.unmarshal(f);
i++;
System.out.println("Object: " + o);
} catch (JAXBException e) {
System.out.println("eception on step: " + i);
e.printStackTrace();
}
}
}
---- result
Fury:ReframeAnnotations stigi$ apt -factory reframe.apt.ReframeAnnotationProcessorFactory -cp build/classes/:build.play/classes/:lib/jaxb-impl.jar:lib/jaxb-api.jar -d out src.play/play/test*java
eception on step: 1
javax.xml.bind.JAXBException
- with linked exception:
[java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory]
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:196)
at javax.xml.bind.ContextFinder.find(ContextFinder.java:385)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:574)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:522)
at reframe.apt.SimpleAnnotationProcessor.process(SimpleAnnotationProcessor.java:20)
at com.sun.mirror.apt.AnnotationProcessors$CompositeAnnotationProcessor.process(AnnotationProcessors.java:60)
at com.sun.tools.apt.comp.Apt.main(Apt.java:454)
at com.sun.tools.apt.main.JavaCompiler.compile(JavaCompiler.java:448)
at com.sun.tools.apt.main.Main.compile(Main.java:1075)
at com.sun.tools.apt.main.Main.compile(Main.java:938)
at com.sun.tools.apt.Main.processing(Main.java:95)
at com.sun.tools.apt.Main.process(Main.java:43)
at com.sun.tools.apt.Main.main(Main.java:34)
Caused by: java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:316)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:192)
... 12 more
Fury:ReframeAnnotations stigi$