traslatorservice
Bundle-Version: 1.0.0
Bundle-Activator: it.polimi.osgi.traslatorservice.Activator
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Import-Package: org.eclipse.smila.integration.pipelet.interfaces,
org.osgi.framework;version="1.3.0"
Export-Package: it.polimi.osgi.traslatorservice
Service-Component: OSGI-INF/TranslatorService.xml
TranslatorService.xml
<?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="
http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" name="it.polimi.osgi.traslatorservice">
<implementation class="it.polimi.osgi.traslatorservice.internal.TranslatorService"/>
<service>
<provide interface="org.eclipse.smila.integration.pipelet.interfaces.ITranslatorService"/>
</service>
</scr:component>
Pipelet
package org.eclipse.smila.integration.pipelet;
...
public class TranslatorPipelet implements Pipelet {
....
private ITranslatorService _driver;
/** {@inheritDoc}
* @throws ProcessingException */
@Override
public String[] process(final Blackboard blackboard, final String[] recordIds) throws ProcessingException{
final ParameterAccessor paramAccessor = new ParameterAccessor(blackboard, _config);
final ResultCollector resultCollector = new ResultCollector(paramAccessor, _log, ProcessingConstants.DROP_ON_ERROR_DEFAULT);
for (final String id : recordIds) {
try {
paramAccessor.setCurrentRecord(id);
String inValue = "";
String outValue = "";
// get parameter either from record or configuration via parameter accessor.
final String sourceAttr = paramAccessor.getRequiredParameter(SOURCE_ATT);
final String targetAttr = paramAccessor.getRequiredParameter(TARGET_ATT);
if (blackboard.getMetadata(id).containsKey(sourceAttr)) {
inValue = blackboard.getMetadata(id).getStringValue(sourceAttr);
}
outValue = this.getTranslation(inValue);
....
} catch (final Exception e) {
resultCollector.addFailedResult(id, e);
}
}
return resultCollector.getResultIds();
}
/** {@inheritDoc} */
@Override
public void configure(final AnyMap config) {
_config = config;
}
public String getTranslation(String sentence){
return _driver.getTranslation(sentence);
}
public void setTranslatorService(ITranslatorService driver){
_driver=driver;
}
}
MANIFEST.MF (Pipelet)
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Example bundle for pipelet development
Bundle-SymbolicName: org.eclipse.smila.integration.pipelet
Bundle-Version: 0.9.0
Bundle-Vendor: Eclipse RT SMILA project
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Import-Package: org.apache.commons.logging;version="1.1.1",
org.eclipse.smila.blackboard;version="0.8.0",
org.eclipse.smila.datamodel;version="0.8.0",
org.eclipse.smila.processing;version="0.8.0",
org.eclipse.smila.processing.parameters;version="0.9.0",
org.eclipse.smila.processing.util;version="0.9.0",
org.eclipse.smila.utils;version="0.9.0",
org.osgi.framework
Export-Package: org.eclipse.smila.integration.pipelet;version="0.9.0",
org.eclipse.smila.integration.pipelet.interfaces
SMILA-Pipelets: org.eclipse.smila.integration.pipelet.TranslatorPipelet
Service-Component: OSGI-INF/TranslatorPipelet.xml
Bundle-Activator: org.eclipse.smila.integration.pipelet.Activator
TranslatorPipelet.xml
<?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="
http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.smila.integration.pipelet" immediate="true">
<implementation class="org.eclipse.smila.integration.pipelet.TranslatorPipelet"/>
<reference bind="setTranslatorService" cardinality="1..1" interface="org.eclipse.smila.integration.pipelet.interfaces.ITranslatorService" name="ITranslatorService" policy="static"/>
</scr:component>
SMILA launch
osgi> Persistence bundle starting...
Persistence bundle started.
ProviderTracker: New service detected...
ProviderTracker: Added service org.eclipse.persistence.jpa.osgi.PersistenceProviderOSGi
TranslatorService started!
....
....
....
[INFO ] HTTP server started successfully on port 8080.