Class DynamicAttachment

java.lang.Object
org.apache.wiki.WikiPage
org.apache.wiki.attachment.Attachment
org.apache.wiki.attachment.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.

Usage:


  class MyDynamicComponent implements DynamicAttachmentProvider {
  ...

     DynamicAttachment destatt = mgr.getDynamicAttachment( destattname );

     if( destatt == null ) {
         destatt = new DynamicAttachment( context.getEngine(),
                                          context.getPage().getName(),
                                          destfilename,
                                          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 );
      }
  
Since:
2.5.34
  • Constructor Details

    • DynamicAttachment

      public DynamicAttachment​(Engine engine, java.lang.String parentPage, java.lang.String fileName, DynamicAttachmentProvider provider)
      Creates a DynamicAttachment.
      Parameters:
      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 Details