Search in sources :

Example 1 with MetastoreLocator

use of org.pentaho.osgi.metastore.locator.api.MetastoreLocator in project pdi-dataservice-server-plugin by pentaho.

the class AnnotationsQueryServiceTest method testAnnotationsOnCurrentStep2Paths.

@Test
public void testAnnotationsOnCurrentStep2Paths() throws Exception {
    TransMeta transMeta = new TransMeta();
    DummyTransMeta src1Meta = new DummyTransMeta();
    StepMeta src1 = new StepMeta("src1", src1Meta);
    transMeta.addStep(src1);
    final ModelAnnotationGroup mag1 = new ModelAnnotationGroup(new ModelAnnotation<CreateAttribute>(new CreateAttribute()));
    final String name1 = mag1.get(0).getName();
    DummyTransMeta annot1Meta = createPseudoAnnotate(mag1);
    StepMeta annot1 = new StepMeta("annot1", annot1Meta);
    transMeta.addStep(annot1);
    TransHopMeta src1ToAnnot1 = new TransHopMeta(src1, annot1);
    transMeta.addTransHop(src1ToAnnot1);
    DummyTransMeta src2Meta = new DummyTransMeta();
    StepMeta src2 = new StepMeta("src2", src2Meta);
    transMeta.addStep(src2);
    final ModelAnnotationGroup mag2 = new ModelAnnotationGroup(new ModelAnnotation<CreateAttribute>(new CreateAttribute()));
    final String name2 = mag2.get(0).getName();
    DummyTransMeta annot2Meta = createPseudoAnnotate(mag2);
    StepMeta annot2 = new StepMeta("annot2", annot2Meta);
    transMeta.addStep(annot2);
    TransHopMeta src2ToAnnot2 = new TransHopMeta(src2, annot2);
    transMeta.addTransHop(src2ToAnnot2);
    DummyTransMeta mergedMeta = new DummyTransMeta();
    StepMeta mergedStepMeta = new StepMeta("merged", mergedMeta);
    transMeta.addStep(mergedStepMeta);
    transMeta.addTransHop(new TransHopMeta(annot1, mergedStepMeta));
    transMeta.addTransHop(new TransHopMeta(annot2, mergedStepMeta));
    final DataServiceMeta ds1 = new DataServiceMeta((TransMeta) transMeta.clone());
    ds1.setName("dsa");
    ds1.setStepname("annot1");
    final DataServiceMeta dsAll = new DataServiceMeta((TransMeta) transMeta.clone());
    dsAll.setName("ds");
    dsAll.setStepname("merged");
    final DataServiceDelegate dataServiceFactory = mock(DataServiceDelegate.class);
    final DataServiceResolver dataServiceResolver = mock(DataServiceResolver.class);
    when(dataServiceResolver.getDataService("dsAll")).thenReturn(dsAll);
    when(dataServiceResolver.getDataService("ds1")).thenReturn(ds1);
    final DataServiceContext dataServiceContext = mock(DataServiceContext.class);
    when(dataServiceContext.getDataServiceDelegate()).thenReturn(dataServiceFactory);
    final MetastoreLocator metastoreLocator = mock(MetastoreLocator.class);
    when(metastoreLocator.getMetastore()).thenReturn(null);
    AnnotationsQueryService queryService = new AnnotationsQueryService(metastoreLocator, dataServiceResolver);
    Query query = queryService.prepareQuery("show annotations from ds1", 0, Collections.<String, String>emptyMap());
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    query.writeTo(outputStream);
    String result = getResultString(outputStream);
    assertTrue(result.contains(name1));
    assertFalse(result.contains(name2));
    queryService = new AnnotationsQueryService(metastoreLocator, dataServiceResolver);
    query = queryService.prepareQuery("show annotations from dsAll", 0, Collections.<String, String>emptyMap());
    outputStream = new ByteArrayOutputStream();
    query.writeTo(outputStream);
    String result2 = getResultString(outputStream);
    assertTrue(result2.contains(name1));
    assertTrue(result2.contains(name2));
}
Also used : ModelAnnotationGroup(org.pentaho.agilebi.modeler.models.annotations.ModelAnnotationGroup) DataServiceMeta(org.pentaho.di.trans.dataservice.DataServiceMeta) CreateAttribute(org.pentaho.agilebi.modeler.models.annotations.CreateAttribute) TransMeta(org.pentaho.di.trans.TransMeta) DummyTransMeta(org.pentaho.di.trans.steps.dummytrans.DummyTransMeta) DataServiceResolver(org.pentaho.di.trans.dataservice.resolvers.DataServiceResolver) MetastoreLocator(org.pentaho.osgi.metastore.locator.api.MetastoreLocator) ByteArrayOutputStream(java.io.ByteArrayOutputStream) StepMeta(org.pentaho.di.trans.step.StepMeta) DummyTransMeta(org.pentaho.di.trans.steps.dummytrans.DummyTransMeta) DataServiceContext(org.pentaho.di.trans.dataservice.DataServiceContext) DataServiceDelegate(org.pentaho.di.trans.dataservice.ui.DataServiceDelegate) TransHopMeta(org.pentaho.di.trans.TransHopMeta) Test(org.junit.Test)

Example 2 with MetastoreLocator

use of org.pentaho.osgi.metastore.locator.api.MetastoreLocator in project pdi-dataservice-server-plugin by pentaho.

the class AnnotationsQueryServiceTest method testAnnotationsOnCurrentStep.

@Test
public void testAnnotationsOnCurrentStep() throws Exception {
    TransMeta transMeta = new TransMeta();
    DummyTransMeta src1Meta = new DummyTransMeta();
    StepMeta src1 = new StepMeta("src", src1Meta);
    transMeta.addStep(src1);
    final ModelAnnotationGroup mag1 = new ModelAnnotationGroup(new ModelAnnotation<CreateAttribute>(new CreateAttribute()));
    final String name1 = mag1.get(0).getName();
    DummyTransMeta annot1Meta = createPseudoAnnotate(mag1);
    StepMeta annot1 = Mockito.spy(new StepMeta("annot", annot1Meta));
    transMeta.addStep(annot1);
    TransHopMeta src1ToAnnot1 = new TransHopMeta(src1, annot1);
    transMeta.addTransHop(src1ToAnnot1);
    final DataServiceMeta dsA = new DataServiceMeta(transMeta);
    dsA.setName("dsa");
    dsA.setStepname("annot");
    final DataServiceMeta ds1 = new DataServiceMeta(transMeta);
    ds1.setName("ds");
    ds1.setStepname("src");
    final DataServiceDelegate dataServiceFactory = mock(DataServiceDelegate.class);
    final DataServiceContext dataServiceContext = mock(DataServiceContext.class);
    when(dataServiceContext.getDataServiceDelegate()).thenReturn(dataServiceFactory);
    final DataServiceResolver dataServiceResolver = mock(DataServiceResolver.class);
    when(dataServiceResolver.getDataService("ds")).thenReturn(ds1);
    when(dataServiceResolver.getDataService("dsa")).thenReturn(dsA);
    final MetastoreLocator metastoreLocator = mock(MetastoreLocator.class);
    when(metastoreLocator.getMetastore()).thenReturn(null);
    final AnnotationsQueryService queryService = new AnnotationsQueryService(metastoreLocator, dataServiceResolver);
    Query query = queryService.prepareQuery("show annotations from dsa", 0, Collections.<String, String>emptyMap());
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    query.writeTo(outputStream);
    String result = getResultString(outputStream);
    assertTrue(result.contains(name1));
    query = queryService.prepareQuery("show annotations from ds", 0, Collections.<String, String>emptyMap());
    outputStream = new ByteArrayOutputStream();
    query.writeTo(outputStream);
    result = getResultString(outputStream);
    String output = getResultString(outputStream);
    assertEquals("<annotations></annotations>", output.trim());
}
Also used : ModelAnnotationGroup(org.pentaho.agilebi.modeler.models.annotations.ModelAnnotationGroup) DataServiceMeta(org.pentaho.di.trans.dataservice.DataServiceMeta) CreateAttribute(org.pentaho.agilebi.modeler.models.annotations.CreateAttribute) TransMeta(org.pentaho.di.trans.TransMeta) DummyTransMeta(org.pentaho.di.trans.steps.dummytrans.DummyTransMeta) DataServiceResolver(org.pentaho.di.trans.dataservice.resolvers.DataServiceResolver) MetastoreLocator(org.pentaho.osgi.metastore.locator.api.MetastoreLocator) ByteArrayOutputStream(java.io.ByteArrayOutputStream) StepMeta(org.pentaho.di.trans.step.StepMeta) DummyTransMeta(org.pentaho.di.trans.steps.dummytrans.DummyTransMeta) DataServiceContext(org.pentaho.di.trans.dataservice.DataServiceContext) DataServiceDelegate(org.pentaho.di.trans.dataservice.ui.DataServiceDelegate) TransHopMeta(org.pentaho.di.trans.TransHopMeta) Test(org.junit.Test)

Example 3 with MetastoreLocator

use of org.pentaho.osgi.metastore.locator.api.MetastoreLocator in project pdi-dataservice-server-plugin by pentaho.

the class AnnotationsQueryServiceTest method testGetsAnnotationsDefinedByStream.

@Test
public void testGetsAnnotationsDefinedByStream() throws Exception {
    final DataServiceDelegate dataServiceFactory = mock(DataServiceDelegate.class);
    final DataServiceContext dataServiceContext = mock(DataServiceContext.class);
    final DataServiceResolver dataServiceResolver = mock(DataServiceResolver.class);
    final MetastoreLocator metastoreLocator = mock(MetastoreLocator.class);
    when(dataServiceContext.getDataServiceDelegate()).thenReturn(dataServiceFactory);
    when(metastoreLocator.getMetastore()).thenReturn(null);
    final AnnotationsQueryService queryService = new AnnotationsQueryService(metastoreLocator, dataServiceResolver);
    URL resource = getClass().getClassLoader().getResource("showAnnotations.ktr");
    @SuppressWarnings("ConstantConditions") final TransMeta transMeta = new TransMeta(resource.getPath(), "show annotations");
    Document document = XMLHandler.loadXMLFile(resource);
    transMeta.loadXML(document.getFirstChild(), null, true);
    final DataServiceMeta dataServiceMeta = new DataServiceMeta(transMeta);
    dataServiceMeta.setName("annotatedService");
    dataServiceMeta.setStepname("Annotate Stream");
    when(dataServiceResolver.getDataService("annotatedService")).thenReturn(dataServiceMeta);
    Query query = queryService.prepareQuery("show annotations from annotatedService", 0, Collections.<String, String>emptyMap());
    AnnotationsQueryService.AnnotationsQuery spy = (AnnotationsQueryService.AnnotationsQuery) Mockito.spy(query);
    final ModelAnnotationGroup mag = new ModelAnnotationGroup(new ModelAnnotation<>(new CreateMeasure()));
    when(spy.getTrans(transMeta)).then(new Answer<Trans>() {

        @Override
        public Trans answer(final InvocationOnMock invocationOnMock) throws Throwable {
            Trans trans = (Trans) invocationOnMock.callRealMethod();
            trans.getExtensionDataMap().put("KEY_MODEL_ANNOTATIONS", mag);
            return trans;
        }
    });
    final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    spy.writeTo(outputStream);
    ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(outputStream.toByteArray());
    DataInputStream dataInputStream = new DataInputStream(byteArrayInputStream);
    ThinResultSet thinResultSet = new ThinResultFactory().loadResultSet(dataInputStream, null);
    thinResultSet.next();
    String output = thinResultSet.getString(1);
    assertEquals(new ModelAnnotationGroupXmlWriter(mag).getXML().trim(), output);
    verify(metastoreLocator).getMetastore();
    assertEquals(0, query.getTransList().size());
    thinResultSet.close();
}
Also used : ModelAnnotationGroupXmlWriter(org.pentaho.agilebi.modeler.models.annotations.ModelAnnotationGroupXmlWriter) ThinResultFactory(org.pentaho.di.trans.dataservice.jdbc.ThinResultFactory) DataServiceMeta(org.pentaho.di.trans.dataservice.DataServiceMeta) TransMeta(org.pentaho.di.trans.TransMeta) DummyTransMeta(org.pentaho.di.trans.steps.dummytrans.DummyTransMeta) MetastoreLocator(org.pentaho.osgi.metastore.locator.api.MetastoreLocator) Document(org.w3c.dom.Document) URL(java.net.URL) ThinResultSet(org.pentaho.di.trans.dataservice.jdbc.ThinResultSet) CreateMeasure(org.pentaho.agilebi.modeler.models.annotations.CreateMeasure) Trans(org.pentaho.di.trans.Trans) DummyTrans(org.pentaho.di.trans.steps.dummytrans.DummyTrans) ModelAnnotationGroup(org.pentaho.agilebi.modeler.models.annotations.ModelAnnotationGroup) DataServiceResolver(org.pentaho.di.trans.dataservice.resolvers.DataServiceResolver) ByteArrayOutputStream(java.io.ByteArrayOutputStream) DataInputStream(java.io.DataInputStream) DataServiceContext(org.pentaho.di.trans.dataservice.DataServiceContext) ByteArrayInputStream(java.io.ByteArrayInputStream) InvocationOnMock(org.mockito.invocation.InvocationOnMock) DataServiceDelegate(org.pentaho.di.trans.dataservice.ui.DataServiceDelegate) Test(org.junit.Test)

Example 4 with MetastoreLocator

use of org.pentaho.osgi.metastore.locator.api.MetastoreLocator in project pdi-dataservice-server-plugin by pentaho.

the class AnnotationsQueryServiceTest method testNoAnnotationsReturnsEmpty.

@Test
public void testNoAnnotationsReturnsEmpty() throws Exception {
    final DataServiceDelegate dataServiceFactory = mock(DataServiceDelegate.class);
    final DataServiceContext dataServiceContext = mock(DataServiceContext.class);
    final DataServiceResolver dataServiceResolver = mock(DataServiceResolver.class);
    final MetastoreLocator metastoreLocator = mock(MetastoreLocator.class);
    when(dataServiceContext.getDataServiceDelegate()).thenReturn(dataServiceFactory);
    when(metastoreLocator.getMetastore()).thenReturn(null);
    final AnnotationsQueryService queryService = new AnnotationsQueryService(metastoreLocator, dataServiceResolver);
    URL resource = getClass().getClassLoader().getResource("showAnnotations.ktr");
    @SuppressWarnings("ConstantConditions") final TransMeta transMeta = new TransMeta(resource.getPath(), "show annotations");
    Document document = XMLHandler.loadXMLFile(resource);
    transMeta.loadXML(document.getFirstChild(), null, true);
    final DataServiceMeta dataServiceMeta = new DataServiceMeta(transMeta);
    dataServiceMeta.setName("gridService");
    dataServiceMeta.setStepname("Data Grid");
    when(dataServiceResolver.getDataService("gridService")).thenReturn(dataServiceMeta);
    Query query = queryService.prepareQuery("show annotations from gridService", 0, Collections.<String, String>emptyMap());
    final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    query.writeTo(outputStream);
    String output = getResultString(outputStream);
    assertEquals("<annotations></annotations>", output.trim());
}
Also used : DataServiceMeta(org.pentaho.di.trans.dataservice.DataServiceMeta) TransMeta(org.pentaho.di.trans.TransMeta) DummyTransMeta(org.pentaho.di.trans.steps.dummytrans.DummyTransMeta) DataServiceResolver(org.pentaho.di.trans.dataservice.resolvers.DataServiceResolver) MetastoreLocator(org.pentaho.osgi.metastore.locator.api.MetastoreLocator) ByteArrayOutputStream(java.io.ByteArrayOutputStream) Document(org.w3c.dom.Document) URL(java.net.URL) DataServiceContext(org.pentaho.di.trans.dataservice.DataServiceContext) DataServiceDelegate(org.pentaho.di.trans.dataservice.ui.DataServiceDelegate) Test(org.junit.Test)

Example 5 with MetastoreLocator

use of org.pentaho.osgi.metastore.locator.api.MetastoreLocator in project pentaho-kettle by pentaho.

the class RunConfigurationManagerTest method setup.

@Before
public void setup() throws Exception {
    MemoryMetaStore memoryMetaStore = new MemoryMetaStore();
    MetastoreLocator metastoreLocator = createMetastoreLocator(memoryMetaStore);
    DefaultRunConfigurationProvider defaultRunConfigurationProvider = new DefaultRunConfigurationProvider(metastoreLocator, defaultRunConfigurationExecutor);
    SparkRunConfigurationExecutor sparkRunConfigurationExecutor = new SparkRunConfigurationExecutor(null);
    SparkRunConfigurationProvider sparkRunConfigurationProvider = new SparkRunConfigurationProvider(metastoreLocator, sparkRunConfigurationExecutor);
    List<RunConfigurationProvider> runConfigurationProviders = new ArrayList<>();
    runConfigurationProviders.add(sparkRunConfigurationProvider);
    executionConfigurationManager = new RunConfigurationManager(runConfigurationProviders);
    executionConfigurationManager.setDefaultRunConfigurationProvider(defaultRunConfigurationProvider);
    DefaultRunConfiguration defaultRunConfiguration = new DefaultRunConfiguration();
    defaultRunConfiguration.setName("Default Configuration");
    defaultRunConfiguration.setDescription("Default Configuration Description");
    defaultRunConfiguration.setLocal(true);
    executionConfigurationManager.save(defaultRunConfiguration);
    SparkRunConfiguration sparkRunConfiguration = new SparkRunConfiguration();
    sparkRunConfiguration.setName("Spark Configuration");
    sparkRunConfiguration.setDescription("Spark Configuration Description");
    sparkRunConfiguration.setUrl("127.0.0.1");
    executionConfigurationManager.save(sparkRunConfiguration);
}
Also used : MemoryMetaStore(org.pentaho.metastore.stores.memory.MemoryMetaStore) DefaultRunConfigurationProvider(org.pentaho.di.engine.configuration.impl.pentaho.DefaultRunConfigurationProvider) SparkRunConfigurationProvider(org.pentaho.di.engine.configuration.impl.spark.SparkRunConfigurationProvider) SparkRunConfiguration(org.pentaho.di.engine.configuration.impl.spark.SparkRunConfiguration) SparkRunConfigurationExecutor(org.pentaho.di.engine.configuration.impl.spark.SparkRunConfigurationExecutor) ArrayList(java.util.ArrayList) DefaultRunConfiguration(org.pentaho.di.engine.configuration.impl.pentaho.DefaultRunConfiguration) MetastoreLocator(org.pentaho.osgi.metastore.locator.api.MetastoreLocator) SparkRunConfigurationProvider(org.pentaho.di.engine.configuration.impl.spark.SparkRunConfigurationProvider) RunConfigurationProvider(org.pentaho.di.engine.configuration.api.RunConfigurationProvider) DefaultRunConfigurationProvider(org.pentaho.di.engine.configuration.impl.pentaho.DefaultRunConfigurationProvider) Before(org.junit.Before)

Aggregations

MetastoreLocator (org.pentaho.osgi.metastore.locator.api.MetastoreLocator)8 Test (org.junit.Test)7 DataServiceContext (org.pentaho.di.trans.dataservice.DataServiceContext)6 DataServiceResolver (org.pentaho.di.trans.dataservice.resolvers.DataServiceResolver)6 ByteArrayOutputStream (java.io.ByteArrayOutputStream)5 DataServiceDelegate (org.pentaho.di.trans.dataservice.ui.DataServiceDelegate)5 TransMeta (org.pentaho.di.trans.TransMeta)4 DataServiceMeta (org.pentaho.di.trans.dataservice.DataServiceMeta)4 DummyTransMeta (org.pentaho.di.trans.steps.dummytrans.DummyTransMeta)4 ModelAnnotationGroup (org.pentaho.agilebi.modeler.models.annotations.ModelAnnotationGroup)3 URL (java.net.URL)2 ArrayList (java.util.ArrayList)2 CreateAttribute (org.pentaho.agilebi.modeler.models.annotations.CreateAttribute)2 RunConfigurationProvider (org.pentaho.di.engine.configuration.api.RunConfigurationProvider)2 DefaultRunConfiguration (org.pentaho.di.engine.configuration.impl.pentaho.DefaultRunConfiguration)2 DefaultRunConfigurationProvider (org.pentaho.di.engine.configuration.impl.pentaho.DefaultRunConfigurationProvider)2 SparkRunConfiguration (org.pentaho.di.engine.configuration.impl.spark.SparkRunConfiguration)2 SparkRunConfigurationExecutor (org.pentaho.di.engine.configuration.impl.spark.SparkRunConfigurationExecutor)2 SparkRunConfigurationProvider (org.pentaho.di.engine.configuration.impl.spark.SparkRunConfigurationProvider)2 Trans (org.pentaho.di.trans.Trans)2