code: @Override
  	public CQVariables getVariables(PageContext pageContext) {
  		log.trace("getBindings");
  
  		CQVariablesImpl binding = new CQVariablesImpl();
  
  		// Load all of the attributes from the current page context
  		Enumeration<?> attrs = pageContext
  				.getAttributeNamesInScope(PageContext.PAGE_SCOPE);
  		while (attrs.hasMoreElements()) {
  			String key = String.class.cast(attrs.nextElement());
  			binding.put(key, pageContext.getAttribute(key));
  		}
  
  		// Put the request and response
  		binding.put(SlingBindings.REQUEST, pageContext.getRequest());
  		binding.put(SlingBindings.RESPONSE, pageContext.getResponse());
  
  		if (pageContext.getAttribute("bindings") != null) {
  			SlingBindings sb = SlingBindings.class.cast(pageContext
  					.getAttribute("bindings"));
  			for (String key : sb.keySet()) {
  				binding.put(key, sb.get(key));
  			}
  		}
  
  		return binding;
  	}
docs: /*
  (non-Javadoc)
  
  @see
  com.sixdimensions.wcm.cq.component.bindings.CQVariablesService#getVariables
  (javax.servlet.jsp.PageContext)