@UsesExternalServices @Test public void testRequestIndependence() { @SuppressWarnings("unchecked") final Controller controller = ControllerFactory.createCachingPooling(org.carrot2.core.IDocumentSource.class); closeAfterTest(controller); final Map<String, Object> attrs = Maps.newHashMap(); CommonAttributesDescriptor.attributeBuilder(attrs).results(50).query("data mining"); controller.process( attrs, org.carrot2.webapp.source.WebDocumentSource.class, LingoClusteringAlgorithm.class); attrs.clear(); CommonAttributesDescriptor.attributeBuilder(attrs) .results(50) .query(WebDocumentSource.QUERY_FAILURE); try { controller.process( attrs, org.carrot2.webapp.source.WebDocumentSource.class, LingoClusteringAlgorithm.class); fail(); } catch (ProcessingException e) { assertThat(e.getCause().getMessage()).contains("Synthetic failure"); } }
/** * Creates a new component configuration. * * @param componentClass the specific {@link IProcessingComponent} class. * @param componentId identifier of the component. * @param attributes initialization attributes for this component configuration. */ public ProcessingComponentConfiguration( Class<? extends IProcessingComponent> componentClass, String componentId, Map<String, Object> attributes) { this.componentClass = componentClass; this.componentId = componentId; this.attributes = Collections.unmodifiableMap(Maps.newHashMap(attributes)); }
static Map<String, ProcessingComponentConfiguration> indexByComponentId( ProcessingComponentConfiguration... configurations) { final HashMap<String, ProcessingComponentConfiguration> componentIdToConfiguration = Maps.newHashMapWithExpectedSize(configurations.length); for (ProcessingComponentConfiguration configuration : configurations) { if (componentIdToConfiguration.put(configuration.componentId, configuration) != null) { throw new IllegalArgumentException( "Duplicate processing component id: " + configuration.componentId); } } return Collections.unmodifiableMap(componentIdToConfiguration); }
@Test public void testXsltWithParameters() { IResource xml = resourceLocator.getFirst("/xml/custom-parameters-required.xml"); IResource xslt = resourceLocator.getFirst("/xsl/custom-xslt.xsl"); Map<String, String> xsltParameters = Maps.newHashMap(); xsltParameters.put("id-field", "number"); xsltParameters.put("title-field", "heading"); xsltParameters.put("snippet-field", "snippet"); xsltParameters.put("url-field", "url"); processingAttributes.put(AttributeUtils.getKey(XmlDocumentSource.class, "xml"), xml); processingAttributes.put(AttributeUtils.getKey(XmlDocumentSource.class, "xslt"), xslt); processingAttributes.put( AttributeUtils.getKey(XmlDocumentSource.class, "xsltParameters"), xsltParameters); final int documentCount = runQuery(); assertTransformedDocumentsEqual(documentCount); }
/** Reload all lexical resources associated with the given key. */ private static HashMap<LanguageCode, ILexicalData> reloadResources( ResourceLookup resourceLookup) { // Load lexical resources. ObjectHashSet<MutableCharArray> mergedStopwords = new ObjectHashSet<>(); ArrayList<Pattern> mergedStoplabels = Lists.newArrayList(); HashMap<LanguageCode, ILexicalData> resourceMap = Maps.newHashMap(); for (LanguageCode languageCode : LanguageCode.values()) { final String isoCode = languageCode.getIsoCode(); ObjectHashSet<MutableCharArray> stopwords = toLower(load(resourceLookup, "stopwords." + isoCode)); ArrayList<Pattern> stoplabels = compile(load(resourceLookup, "stoplabels." + isoCode)); mergedStopwords.addAll(stopwords); mergedStoplabels.addAll(stoplabels); resourceMap.put(languageCode, new DefaultLexicalData(stopwords, stoplabels)); } resourceMap.put(null, new DefaultLexicalData(mergedStopwords, mergedStoplabels)); return resourceMap; }