(Abdera abdera, Map<String, String> properties)
| 79 | } |
| 80 | |
| 81 | @Override |
| 82 | public void init(Abdera abdera, Map<String, String> properties) { |
| 83 | // can receive servlet init params here |
| 84 | super.init(abdera, properties); |
| 85 | |
| 86 | // map paths to handlers |
| 87 | RegexTargetResolver resolver = new OrderedRegexTargetResolver(); |
| 88 | resolver.setPattern("/service", TargetType.TYPE_SERVICE) |
| 89 | .setPattern("/(http[^#?]*)/([0-9a-fA-F]{11})", |
| 90 | TargetType.TYPE_ENTRY, "collection", "entry") |
| 91 | // external entry |
| 92 | .setPattern("/(http[^#?]*)", TargetType.TYPE_COLLECTION, |
| 93 | "collection") |
| 94 | // external feed |
| 95 | .setPattern("/([^/#?]+)/([^/#?]+)/([^/#?]+)(\\?[^#]*)?", |
| 96 | TargetType.TYPE_MEDIA, "collection", "entry", |
| 97 | "resource") |
| 98 | .setPattern("/([^/#?]+)/([^/#?]+)(\\?[^#]*)?", |
| 99 | TargetType.TYPE_ENTRY, "collection", "entry") |
| 100 | .setPattern("/([^/#?]+);categories", |
| 101 | TargetType.TYPE_CATEGORIES, "collection") |
| 102 | .setPattern("/([^/#?;]+)(\\?[^#]*)?", |
| 103 | TargetType.TYPE_COLLECTION, "collection") |
| 104 | .setPattern("/", TargetType.TYPE_COLLECTION); |
| 105 | |
| 106 | super.setTargetResolver(resolver); |
| 107 | |
| 108 | // url construction templates |
| 109 | setTargetBuilder(new TemplateTargetBuilder() |
| 110 | .setTemplate(TargetType.TYPE_SERVICE, "{target_base}") |
| 111 | .setTemplate(TargetType.TYPE_COLLECTION, |
| 112 | "{target_base}/{collection}{-opt|?|q,c,s,p,l,i,o}{-join|&|q,c,s,p,l,i,o}") |
| 113 | .setTemplate(TargetType.TYPE_CATEGORIES, |
| 114 | "{target_base}/{collection};categories") |
| 115 | .setTemplate(TargetType.TYPE_ENTRY, |
| 116 | "{target_base}/{collection}/{entry}")); |
| 117 | |
| 118 | addWorkspace(this); |
| 119 | addFilter(new PaginationFilter()); |
| 120 | addFilter(new OpenSearchFilter() |
| 121 | .setShortName("Trsst Search") |
| 122 | .setDescription("Search on entry metadata.") |
| 123 | .setTags("test", "example", "opensearch") |
| 124 | .setContact("admin@trsst.com") |
| 125 | .setTemplate( |
| 126 | "{target_base}/?q={searchTerms}&count={count?}&page={startPage?}&offset={startIndex?}&before={beforeDate?}&after={afterDate?}") |
| 127 | // .setTemplate( |
| 128 | // "{target_base}/?q={searchTerms}&c={count?}&s={startIndex?}&p={startPage?}&l={language?}&i={indexEncoding?}&o={outputEncoding?}") |
| 129 | .mapTargetParameter("q", "searchTerms") |
| 130 | .mapTargetParameter("count", "count") |
| 131 | .mapTargetParameter("before", "beforeDate") |
| 132 | .mapTargetParameter("after", "afterDates") |
| 133 | .mapTargetParameter("page", "startPage") |
| 134 | .mapTargetParameter("offset", "startIndex")); |
| 135 | // .mapTargetParameter("l", "language") |
| 136 | // .mapTargetParameter("i", "inputEncoding") |
| 137 | // .mapTargetParameter("o", "outputEncoding")); |
| 138 |
no test coverage detected