@Override public void generate(CacheXmlGenerator cacheXmlGenerator) throws SAXException { final ContentHandler handler = cacheXmlGenerator.getContentHandler(); try { handler.startPrefixMapping(PREFIX, NAMESPACE); final AttributesImpl atts = new AttributesImpl(); addAttribute(atts, ATTRIBUTE_VALUE, extension.getValue()); emptyElement(handler, PREFIX, ELEMENT_REGION, atts); } finally { handler.endPrefixMapping(PREFIX); } } }
@Override public void generate(CacheXmlGenerator cacheXmlGenerator) throws SAXException { final ContentHandler handler = cacheXmlGenerator.getContentHandler(); try { handler.startPrefixMapping(PREFIX, NAMESPACE); final AttributesImpl atts = new AttributesImpl(); addAttribute(atts, ATTRIBUTE_VALUE, extension.getValue()); emptyElement(handler, PREFIX, ELEMENT_CACHE, atts); } finally { handler.endPrefixMapping("mock"); } } }
/** * Test of generating cache configuration. */ @Test public void generateWithFields() throws Exception { LuceneIndexCreation index = mock(LuceneIndexCreation.class); when(index.getName()).thenReturn("index"); String[] fields = new String[] {"field1", "field2"}; when(index.getFieldNames()).thenReturn(fields); LuceneIndexXmlGenerator generator = new LuceneIndexXmlGenerator(index); CacheXmlGenerator cacheXmlGenerator = mock(CacheXmlGenerator.class); ContentHandler handler = mock(ContentHandler.class); when(cacheXmlGenerator.getContentHandler()).thenReturn(handler); generator.generate(cacheXmlGenerator); ArgumentCaptor<Attributes> captor = ArgumentCaptor.forClass(Attributes.class); verify(handler).startElement(eq(""), eq("index"), eq("lucene:index"), captor.capture()); Attributes value = captor.getValue(); assertEquals("index", value.getValue(LuceneXmlConstants.NAME)); captor = ArgumentCaptor.forClass(Attributes.class); verify(handler, times(2)).startElement(eq(""), eq("field"), eq("lucene:field"), captor.capture()); Set<String> foundFields = new HashSet<String>(); for (Attributes fieldAttr : captor.getAllValues()) { foundFields.add(fieldAttr.getValue(LuceneXmlConstants.NAME)); } HashSet<String> expected = new HashSet<String>(Arrays.asList(fields)); assertEquals(expected, foundFields); verify(handler, times(2)).endElement(eq(""), eq("field"), eq("lucene:field")); verify(handler).endElement(eq(""), eq("index"), eq("lucene:index")); }
@Override public void generate(CacheXmlGenerator cacheXmlGenerator) throws SAXException { final ContentHandler handler = cacheXmlGenerator.getContentHandler(); handler.startPrefixMapping(PREFIX, NAMESPACE); AttributesImpl attr = new AttributesImpl(); // TODO - should the type be xs:string ? XmlGeneratorUtils.addAttribute(attr, NAME, index.getName()); XmlGeneratorUtils.startElement(handler, PREFIX, INDEX, attr); for (String field : index.getFieldNames()) { AttributesImpl fieldAttr = new AttributesImpl(); XmlGeneratorUtils.addAttribute(fieldAttr, NAME, field); Analyzer analyzer = index.getFieldAnalyzers().get(field); if (analyzer != null) { XmlGeneratorUtils.addAttribute(fieldAttr, ANALYZER, analyzer.getClass().getName()); } XmlGeneratorUtils.emptyElement(handler, PREFIX, FIELD, fieldAttr); } LuceneSerializer serializer = index.getLuceneSerializer(); if (serializer != null) { XmlGeneratorUtils.startElement(handler, PREFIX, SERIALIZER, EMPTY); XmlGeneratorUtils.addDeclarable(handler, serializer); XmlGeneratorUtils.endElement(handler, PREFIX, SERIALIZER); } XmlGeneratorUtils.endElement(handler, PREFIX, INDEX); } }
CacheXmlGenerator cacheXmlGenerator = mock(CacheXmlGenerator.class); ContentHandler handler = mock(ContentHandler.class); when(cacheXmlGenerator.getContentHandler()).thenReturn(handler); generator.generate(cacheXmlGenerator);