Uploaded image for project: 'Javassist'
  1. Javassist
  2. JASSIST-226

automatical modification of class and method Annotation

This issue belongs to an archived project. You can view it, but you can't modify it. Learn more

    XMLWordPrintable

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Rejected
    • 3.18.0-GA
    • None

    Description

      I'm using Javassist to create .class file at runtime. Every method of the created class must have a Java Annotation ("@annotation example") with an URI. The problem is that the Annotation class modifies automatically the URI by substituting slashes with dots.

      //the Annotation String that I need
      @RDFBean('http://www.semanticweb.org/pi/2014/5/test#Test')
      //the resulting String
      @RDFBean('http:..www.semanticweb.org.pi.2014.5.test#Test')

      Is there a way to prevent this String modification?
      I suppose it's related to the different notation between a file path and a Java package.

      This is the code:

      ClassPool pool = ClassPool.getDefault();
      CtClass cc = pool.makeClass(className);

      ClassFile ccFile = cc.getClassFile();
      ConstPool constpool = ccFile.getConstPool();

      // create the annotation
      AnnotationsAttribute attr = new AnnotationsAttribute(constpool, AnnotationsAttribute.visibleTag);
      // classLocalName contains: http://www.semanticweb.org/pi/2014/5/test#Test
      Annotation annot = new Annotation("RDFBean('" + classLocalName + "')", constpool);
      attr.addAnnotation(annot);
      ccFile.addAttribute(attr);

      Attachments

        Activity

          People

            chiba_jira Shigeru Chiba (Inactive)
            paolo789 Paolo Paolo (Inactive)
            Archiver:
            samahaja@redhat.com Sagar Mahajan

            Dates

              Created:
              Updated:
              Resolved:
              Archived: