title: Custom annotation processor in spring
body: <p>i've written thi annotation</p>
  
  <pre><code>    @Retention(RetentionPolicy.SOURCE)
  public @interface Encrypt {
  
  }
  </code></pre>
  
  <p>and its processor...</p>
  
  <pre><code>@SupportedAnnotationTypes("it.trecube.annotation.Encrypt")
  @SupportedSourceVersion(SourceVersion.RELEASE_7)
  public class EncryptProcessor extends AbstractProcessor{
  
      public EncryptProcessor(){
          super();
      }
  
  
      @Override
      public boolean process(Set&lt;? extends TypeElement&gt; annotations,
              RoundEnvironment roundEnv) {
          String className = null;
          String packageName = null;
          String fqClassName = null;
          for (Element elem : roundEnv.getElementsAnnotatedWith(Encrypt.class)) {
              if (elem.getKind() == ElementKind.CLASS) {
                  //              Encrypt encrypt = elem.getAnnotation(Encrypt.class);
                  //              String message = "annotation found in " + elem.getSimpleName();
                  //              processingEnv.getMessager().printMessage(Kind.NOTE, message);
                  TypeElement classElement = (TypeElement) elem;
                  PackageElement packageElement = (PackageElement) classElement.getEnclosingElement();
  
                  processingEnv.getMessager().printMessage(
                          Diagnostic.Kind.NOTE,
                          "annotated class: @Encrypt" , elem);
  
                  className = classElement.getSimpleName().toString();
                  packageName = packageElement.getQualifiedName().toString();
                  fqClassName = classElement.getQualifiedName().toString();
  
                  if (fqClassName != null) {
                      processingEnv.getMessager().printMessage(
                              Diagnostic.Kind.NOTE,
                              "fqClassName: "+fqClassName , elem);
                      Properties props = new Properties();
                      URL url = this.getClass().getClassLoader().getResource("velocity.properties");
                      try {
                          props.load(url.openStream());
                      } catch (IOException e) {
                          processingEnv.getMessager().printMessage(
                                  Diagnostic.Kind.ERROR,
                                  "annotated class: " + classElement.getQualifiedName()+"-&gt;\n"+
                                          e.getMessage(), elem);
                          e.printStackTrace();
                          return true;
                      }
                      VelocityEngine ve = new VelocityEngine(props);
                      ve.init();
  
                      VelocityContext vc = new VelocityContext();
  
                      vc.put("className", className);
                      vc.put("packageName", packageName);
  
  
                      Template vt = ve.getTemplate("encrypt.vm");
                      File file = new File("src/main/java/"+fqClassName.replace(".", "/")+"_Encrypt.aj");
                      try {
                      BufferedWriter bw = new BufferedWriter(new FileWriter(file));
  
                          processingEnv.getMessager().printMessage(
                                  Diagnostic.Kind.NOTE,
                                  "creating source file: " + file.getAbsolutePath());
  
  
                          processingEnv.getMessager().printMessage(
                                  Diagnostic.Kind.NOTE,
                                  "applying velocity template: " + vt.getName());
  
                          vt.merge(vc, bw);
  
                          bw.close();
                      } catch (IOException e) {
                          processingEnv.getMessager().printMessage(
                                  Diagnostic.Kind.ERROR,
                                  "applying velocity error: " + vt.getName()+"-&gt;\n"+e.getMessage());
                          e.printStackTrace();
                      }
                  }
              }
          }
          return true; // no further processing of this annotation type
      }
  </code></pre>
  
  <p>I've tested all into a maven  client project and all work, but when i try to use it into an existing spring (full maven build) project not work...
  Can someone help me??
  Tnx</p>