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-tp7589782p758... Sent from the XWiki- Dev mailing list archive at Nabble.com.