code: @Override
  	public void search(String crs, final VectorServerLayer layer, SearchCriterion[] criteria,
  			LogicalOperator operator, int maxResultSize, final FeatureMapFunction callback) {
  		SearchFeatureRequest request = new SearchFeatureRequest();
  		request.setBooleanOperator(operator.getValue());
  		request.setCriteria(criteria);
  		request.setMax(maxResultSize);
  		request.setLayerId(layer.getServerLayerId());
  		request.setCrs(crs);
  		request.setFilter(layer.getFilter());
  		request.setFeatureIncludes(11);
  
  		GwtCommand command = new GwtCommand(SearchFeatureRequest.COMMAND);
  		command.setCommandRequest(request);
  		GeomajasServerExtension.getInstance().getCommandService().execute(command,
  				new AbstractCommandCallback<SearchFeatureResponse>() {
  
  					public void execute(SearchFeatureResponse response) {
  						List<Feature> features = new ArrayList<Feature>();
  						for (org.geomajas.layer.feature.Feature feature : response.getFeatures()) {
  							features.add(create(feature, layer));
  						}
  						Map<FeaturesSupported, List<Feature>> mapping = new HashMap<FeaturesSupported, List<Feature>>();
  						mapping.put(layer, features);
  						callback.execute(mapping);
  					}
  				});
  	}
docs: ------------------------------------------------------------------------