Package org.apache.uima.collection.impl

Source Code of org.apache.uima.collection.impl.CollectionProcessingEngine_implTest

/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements.  See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership.  The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License.  You may obtain a copy of the License at
*
*   http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied.  See the License for the
* specific language governing permissions and limitations
* under the License.
*/

package org.apache.uima.collection.impl;

import java.io.File;
import java.util.HashMap;
import java.util.Properties;

import junit.framework.TestCase;

import org.apache.uima.UIMAFramework;
import org.apache.uima.analysis_engine.AnalysisEngine;
import org.apache.uima.cas.CAS;
import org.apache.uima.collection.CasInitializer;
import org.apache.uima.collection.CollectionProcessingEngine;
import org.apache.uima.collection.CollectionReader;
import org.apache.uima.collection.EntityProcessStatus;
import org.apache.uima.collection.StatusCallbackListener;
import org.apache.uima.collection.impl.cpm.utils.TestStatusCallbackListener;
import org.apache.uima.collection.metadata.CpeDescription;
import org.apache.uima.resource.Resource;
import org.apache.uima.resource.ResourceManager;
import org.apache.uima.test.junit_extension.JUnitExtension;
import org.apache.uima.util.XMLInputSource;

public class CollectionProcessingEngine_implTest extends TestCase {
  protected final String TEST_DATAPATH = JUnitExtension.getFile(
      "CollectionProcessingEngineImplTest").getPath()
      + System.getProperty("path.separator") + JUnitExtension.getFile("ResourceTest");

  /**
         * Constructor for CollectionProcessingEngine_implTest.
         *
         * @param arg0
         */
  public CollectionProcessingEngine_implTest(String arg0) {
    super(arg0);
  }

  /*
         * (non-Javadoc)
         *
         * @see junit.framework.TestCase#setUp()
         */
  protected void setUp() throws Exception {
    File referenceFile = JUnitExtension
  .getFile("CollectionProcessingEngineImplTest/performanceTuningSettingsTestCpe.xml");
    System.setProperty("CPM_HOME", referenceFile.getParentFile().getParentFile().getAbsolutePath());
  }

  public void testPerformanceTuningSettings() throws Exception {
    try {
      Properties newProps = UIMAFramework.getDefaultPerformanceTuningProperties();
      newProps.setProperty(UIMAFramework.CAS_INITIAL_HEAP_SIZE, "100000");
      HashMap params = new HashMap();
      params.put(Resource.PARAM_PERFORMANCE_TUNING_SETTINGS, newProps);

      CpeDescription cpeDesc = UIMAFramework.getXMLParser().parseCpeDescription(
    new XMLInputSource(JUnitExtension
        .getFile("CollectionProcessingEngineImplTest/performanceTuningSettingsTestCpe.xml")));
      CollectionProcessingEngine cpe = UIMAFramework.produceCollectionProcessingEngine(cpeDesc,
    params);
      cpe.process();
      // Need to give CPE time to do its work. The following should work, but
      // doesn't
      // while (cpe.isProcessing())
      // {
      // Thread.sleep(1000);
      // }
      Thread.sleep(3000);
    } catch (Exception e) {
      JUnitExtension.handleException(e);
    }
  }

  public void testExternalResoures() throws Exception {
    try {
      ResourceManager rm = UIMAFramework.newDefaultResourceManager();
      rm.setDataPath(TEST_DATAPATH);
      CpeDescription cpeDesc = UIMAFramework.getXMLParser().parseCpeDescription(
    new XMLInputSource(JUnitExtension
        .getFile("CollectionProcessingEngineImplTest/externalResourceTestCpe.xml")));
      CollectionProcessingEngine cpe = UIMAFramework.produceCollectionProcessingEngine(cpeDesc, rm,
    null);
      CollectionReader colRdr = (CollectionReader) cpe.getCollectionReader();
      assertNotNull(colRdr.getUimaContext().getResourceObject("TestFileResource"));
      CasInitializer casIni = colRdr.getCasInitializer();
      assertNotNull(casIni.getUimaContext().getResourceObject("TestFileLanguageResource",
    new String[] { "en" }));
      AnalysisEngine ae = (AnalysisEngine) cpe.getCasProcessors()[0];
      assertNotNull(ae.getUimaContext().getResourceObject("TestResourceObject"));
      assertNotNull(ae.getUimaContext().getResourceObject("TestLanguageResourceObject",
    new String[] { "en" }));
    } catch (Exception e) {
      JUnitExtension.handleException(e);
    }
  }
 
  public void testCasMultiplierTypeSystem() throws Throwable {
    CpeDescription cpeDesc = UIMAFramework.getXMLParser()
            .parseCpeDescription(new XMLInputSource(
                    JUnitExtension.getFile("CollectionProcessingEngineImplTest/cpeWithWrappedCasMultiplier.xml")));
    CollectionProcessingEngine cpe = UIMAFramework.produceCollectionProcessingEngine(cpeDesc);
    // create and register a status callback listener
    TestStatusCallbackListener listener = new TestStatusCallbackListener();
    cpe.addStatusCallbackListener(listener);

    // run CPM
    cpe.process();

    // wait until CPM has finished
    while (!listener.isFinished()) {
      Thread.sleep(5);
    }
   
    //check that there was no exception
    if (listener.getLastStatus().isException()) {
      throw (Throwable)listener.getLastStatus().getExceptions().get(0);
    }
  }
}
TOP

Related Classes of org.apache.uima.collection.impl.CollectionProcessingEngine_implTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.