code: private PreprocessingFilter createPIHandler(EntityResolver resolver, XMLReader reader) {
  		PreprocessingFilter filter = new PreprocessingFilter(reader);
  		ProcessingInstructionHandler resolvingHandler = new ExpressionHandler(new VariableResolver() {
  
  			public Object resolveVariable(String name) throws ELException {
  				if ("date".equals(name)) {
  					return DateFormat.getDateInstance(DateFormat.LONG).format(new Date());
  				} else if ("project".equals(name)) {
  					return getProject();
  				} else {
  					return getProject().getProperties().get(name);
  				}
  			}
  
  		}, getLog());
  		filter.setHandlers(Arrays.asList(new Object[] { resolvingHandler }));
  		filter.setEntityResolver(resolver);
  		return filter;
  	}
docs: Creates an XML Processing handler for the built-in docbkx <code>&lt;?eval?&gt;</code> PI. This PI resolves maven
  properties and basic math formula.
  
  @param resolver The initial resolver to use.
  @param reader   The source XML reader.
  @return The XML PI filter.