Class DynamicAttachment

  • All Implemented Interfaces:
    java.lang.Cloneable, java.lang.Comparable<Page>, Attachment, Page

    public class DynamicAttachment
    extends Attachment
    A DynamicAttachment is an attachment which does not really exist, but is created dynamically by a JSPWiki component.

    Note that a DynamicAttachment might not be available before it is actually created by a component (e.g. plugin), and therefore trying to access it before that component has been invoked, might result in a surprising 404.

    DynamicAttachments are not listed among regular attachments in the current version.


      class MyDynamicComponent implements DynamicAttachmentProvider {
         DynamicAttachment destatt = mgr.getDynamicAttachment( destattname );
         if( destatt == null ) {
             destatt = new DynamicAttachment( context.getEngine(),
                                              this );
             destatt.setCacheable( false );
         // This is used to check whether the attachment is modified or not so don't forget to update this if your attachment source changes!
         // Else JSPWiki will be serving 304s to anyone who asks...
         destatt.setLastModified( context.getPage().getLastModified() );
         mgr.storeDynamicAttachment( context,  destatt );
          public InputStream getAttachmentData( WikiContext context, Attachment att ) throws IOException {
              byte[] bytes = "This is a test".getBytes();
              return new ByteArrayInputStream( bytes );
    • Constructor Detail

      • DynamicAttachment

        public DynamicAttachment​(Engine engine,
                                 java.lang.String parentPage,
                                 java.lang.String fileName,
                                 DynamicAttachmentProvider provider)
        Creates a DynamicAttachment.
        engine - The engine which owns this attachment
        parentPage - The page which owns this attachment
        fileName - The filename of the attachment
        provider - The provider which will be used to generate the attachment.
    • Method Detail