use of com.yahoo.document.config.DocumentmanagerConfig in project vespa by vespa-engine.
the class DocumentTypeManagerConfigurer method addAnnotationTypeInheritance.
private static void addAnnotationTypeInheritance(DocumentmanagerConfig config, DocumentTypeManager manager) {
for (DocumentmanagerConfig.Annotationtype annType : config.annotationtype()) {
if (annType.inherits().size() > 0) {
AnnotationType inheritedType = manager.getAnnotationTypeRegistry().getType(annType.inherits(0).id());
AnnotationType type = manager.getAnnotationTypeRegistry().getType(annType.id());
type.inherit(inheritedType);
}
}
}
use of com.yahoo.document.config.DocumentmanagerConfig in project vespa by vespa-engine.
the class SplitterJoinerTestCase method testSplitJoin.
@Test
public void testSplitJoin() {
ConfigGetter<SplitterJoinerDocumentProcessorConfig> getter = new ConfigGetter<>(SplitterJoinerDocumentProcessorConfig.class);
ConfigGetter<DocumentmanagerConfig> docManGetter = new ConfigGetter<>(DocumentmanagerConfig.class);
SplitterJoinerDocumentProcessorConfig cfg = getter.getConfig("file:src/test/java/com/yahoo/docproc/util/splitter-joiner-document-processor.cfg");
DocumentmanagerConfig docManCfg = docManGetter.getConfig("file:src/test/java/com/yahoo/docproc/util/documentmanager.docindoc.cfg");
SplitterDocumentProcessor splitter = new SplitterDocumentProcessor(cfg, docManCfg);
DocumentTypeManager manager = splitter.manager;
/**
** Create documents: ***
*/
Document inner1 = new Document(manager.getDocumentType("docindoc"), "doc:inner:number:one");
inner1.setFieldValue("name", new StringFieldValue("Donald Duck"));
inner1.setFieldValue("content", new StringFieldValue("Lives in Duckburg"));
Document inner2 = new Document(manager.getDocumentType("docindoc"), "doc:inner:number:two");
inner2.setFieldValue("name", new StringFieldValue("Uncle Scrooge"));
inner2.setFieldValue("content", new StringFieldValue("Lives in Duckburg, too."));
Array<Document> innerArray = (Array<Document>) manager.getDocumentType("outerdoc").getField("innerdocuments").getDataType().createFieldValue();
innerArray.add(inner1);
innerArray.add(inner2);
Document outer = new Document(manager.getDocumentType("outerdoc"), "doc:outer:the:only:one");
outer.setFieldValue("innerdocuments", innerArray);
/**
** End create documents ***
*/
Processing p = Processing.of(new DocumentPut(outer));
splitter.process(p);
assertEquals(2, p.getDocumentOperations().size());
assertThat(((DocumentPut) (p.getDocumentOperations().get(0))).getDocument(), sameInstance(inner1));
assertThat(((DocumentPut) (p.getDocumentOperations().get(1))).getDocument(), sameInstance(inner2));
assertThat(((DocumentPut) (p.getVariable(cfg.contextFieldName()))).getDocument(), sameInstance(outer));
assertThat(outer.getFieldValue("innerdocuments"), sameInstance(innerArray));
assertTrue(innerArray.isEmpty());
JoinerDocumentProcessor joiner = new JoinerDocumentProcessor(cfg, docManCfg);
joiner.process(p);
assertThat(p.getDocumentOperations().size(), equalTo(1));
assertThat(((DocumentPut) p.getDocumentOperations().get(0)).getDocument(), sameInstance(outer));
assertThat(p.getVariable(cfg.contextFieldName()), nullValue());
assertThat(outer.getFieldValue("innerdocuments"), sameInstance(innerArray));
assertThat(innerArray.size(), equalTo(2));
assertThat(innerArray.get(0), sameInstance(inner1));
assertThat(innerArray.get(1), sameInstance(inner2));
}
use of com.yahoo.document.config.DocumentmanagerConfig in project vespa by vespa-engine.
the class DeriverTestCase method testDeriveDocManager.
@Test
public void testDeriveDocManager() {
DocumentTypeManager dtm = new DocumentTypeManager(new DocumentmanagerConfig(Deriver.getDocumentManagerConfig(new ArrayList<String>() {
{
add("src/test/derived/deriver/child.sd");
add("src/test/derived/deriver/parent.sd");
add("src/test/derived/deriver/grandparent.sd");
}
})));
assertEquals(dtm.getDocumentType("child").getField("a").getDataType(), DataType.STRING);
}
use of com.yahoo.document.config.DocumentmanagerConfig in project vespa by vespa-engine.
the class DocprocBuilderTest method setupCluster.
@Before
public void setupCluster() {
ContainerModel model = new ContainerModelBuilder(false, Networking.disable).build(DeployState.createTestState(), null, root, servicesXml());
cluster = model.getCluster();
cluster.getDocproc().getChains().addServersAndClientsForChains();
root.freezeModelTopology();
containerMbusConfig = root.getConfig(ContainerMbusConfig.class, cluster.getContainers().get(0).getConfigId());
componentsConfig = root.getConfig(ComponentsConfig.class, cluster.getConfigId());
chainsConfig = root.getConfig(ChainsConfig.class, cluster.getConfigId() + "/component/com.yahoo.docproc.jdisc.DocumentProcessingHandler");
documentmanagerConfig = root.getConfig(DocumentmanagerConfig.class, cluster.getConfigId());
bundlesConfig = root.getConfig(BundlesConfig.class, cluster.getConfigId());
schemamappingConfig = root.getConfig(SchemamappingConfig.class, cluster.getContainers().get(0).getConfigId());
qrStartConfig = root.getConfig(QrStartConfig.class, cluster.getConfigId());
docprocConfig = root.getConfig(DocprocConfig.class, cluster.getConfigId());
}
use of com.yahoo.document.config.DocumentmanagerConfig in project vespa by vespa-engine.
the class DocumentModelBuilderTestCase method testDocumentManagerSimple.
@Test
public void testDocumentManagerSimple() throws IOException, ParseException {
DocumentModel model = createAndTestModel("src/test/configmodel/types/types.sd");
DocumentmanagerConfig.Builder documentmanagerCfg = new DocumentManager().produce(model, new DocumentmanagerConfig.Builder());
assertConfigFile("src/test/configmodel/types/documentmanager.cfg", new DocumentmanagerConfig(documentmanagerCfg).toString());
}
Aggregations