I feel like I am so close, but it just is not working.  I have the following
code but it is throwing an error.  I will attach a screenshot of the error. 
(My company is blocking SSH all of a sudden. So I cannot copy the file.)  It
is saying there is no such property.  I assume it means the "xredirect"?

{{groovy}} 
import org.xwiki.observation.* 
import org.xwiki.observation.event.* 
import org.xwiki.bridge.event.* 
import org.xwiki.context.* 
import com.xpn.xwiki.web.* 
import com.xpn.xwiki.* 
import org.apache.velocity.VelocityContext;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;

public class RequestWrapper extends HttpServletRequestWrapper 
{
    private HashMap params = new HashMap();

    public RequestWrapper(HttpServletRequest request) 
    {
        super(request);
    }

   public String getParameter(String name) 
   {
      // if we added one, return that one
      if ( params.get( name ) != null ) 
      {
         return params.get( name );
      }
      
      // otherwise return what's in the original request
      HttpServletRequest req = (HttpServletRequest) super.getRequest();
      
      return req.getParameter( name );
   }

   public void addParameter( String name, String value ) 
   {
      params.put( name, value );
   }

}

class ProcessDocumentRenamer implements EventListener 
{ 
    def xwiki 
    def context 
    def response
  
    ProcessDocumentRenamer(xwiki, context) 
    { 
        this.xwiki = xwiki 
        this.context = context 
    }

    String getName() 
    { 
        // The unique name of this event listener 
        return "ProcessDocumentRenamer" 
    }

    List<Event> getEvents() 
    { 
        // The list of events this listener listens to 
        return Arrays.asList(new DocumentCreatedEvent(), new
DocumentUpdatedEvent()) 
    }

    // Called by the Observation Manager when an event matches the list of
events returned 
    // by getEvents() 
    void onEvent(Event event, Object source, Object data) 
    { 
        // Current context 
        def crtContext =
Utils.getComponent(Execution.class).getContext().getProperty('xwikicontext') 
        def response = 
Utils.getComponent(Execution.class).getContext().getProperty('response')

        // Defines the type of object that should be looked for 
        def myObject =
source.getObject("DocumentationTemplates.ProcessClass");

        // If the page has an object of the specified class, we get the
value of the relevant property and assign it to our title variable 
        if (myObject != null) { 
          // Defines the variable that we will later use to update the title
of the document 
          def documentName = myObject.get("processName").value

          if (source.getName() != documentName) { 
            // Build the new name for the document. 
            def FullDocumentName = source.getSpaceName() + "." +
documentName;

            // Set the document title to the new name. 
            source.setTitle(documentName)

            // Force the storage to keep the same version number, so that
this looks like a single save event 
            source.setMetaDataDirty(false); 
            source.setContentDirty(false); 
 
            // Rename the document 
            source.rename(FullDocumentName, crtContext);

            def RedirectRequest = new RequestWrapper(request);
           
RedirectRequest.addParameter('xredirect',xwiki.getURL(FullDocumentName));
          } 
        }         
    } 
}

// Register against the Observation Manager 
def observation = Utils.getComponent(ObservationManager.class) 
observation.removeListener("ProcessDocumentRenamer") 
def listener = new ProcessDocumentRenamer(xwiki, xcontext) 
observation.addListener(listener) 
{{/groovy}}

<http://xwiki.475771.n2.nabble.com/file/n7589834/Error.png> 



--
View this message in context: 
http://xwiki.475771.n2.nabble.com/Looking-for-help-with-groovy-tp7589782p7589834.html
Sent from the XWiki- Dev mailing list archive at Nabble.com.
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to