blob: 7de51c774b6fb4d9c18b450f92e7662c6a45863a [file] [log] [blame]
package org.eclipse.basyx.components.servlet.submodel;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import javax.servlet.ServletException;
import org.eclipse.basyx.aas.restapi.VABMultiSubmodelProvider;
import org.eclipse.basyx.components.provider.BaseConfiguredProvider;
import org.eclipse.basyx.components.sqlprovider.SQLPreconfiguredSubModelProvider;
import org.eclipse.basyx.vab.protocol.http.server.VABHTTPInterface;
/**
* Servlet interface for SQL sub model provider
*
* @author kuhn
*
*/
public class SQLSubModelProviderServlet extends VABHTTPInterface<VABMultiSubmodelProvider> {
/**
* Version information to identify the version of serialized instances
*/
private static final long serialVersionUID = 1L;
/**
* Sub model ID
*/
protected String submodelID = null;
/**
* Configuration properties
*/
protected Properties cfgProperties = null;
/**
* Constructor
*/
public SQLSubModelProviderServlet() {
// Invoke base constructor
super(new VABMultiSubmodelProvider());
}
/**
* Initialize servlet
*
* @throws ServletException
*/
public void init() throws ServletException {
// Call base implementation
super.init();
// Read configuration values
String configFilePath = (String) getInitParameter("config");
// Read property file
try {
// Open property file
InputStream input = getServletContext().getResourceAsStream(configFilePath);
// Instantiate property structure
cfgProperties = new Properties();
cfgProperties.load(input);
// Extract sub model provider properties
this.submodelID = cfgProperties.getProperty(BaseConfiguredProvider.buildBasyxCfgName(BaseConfiguredProvider.SUBMODELID));
} catch (IOException e) {
// Output exception
e.printStackTrace();
}
// Instantiate and add sub model provider
SQLPreconfiguredSubModelProvider sqlSMProvider = new SQLPreconfiguredSubModelProvider(cfgProperties);
// - Add sub model provider
this.getModelProvider().addSubmodel(submodelID, sqlSMProvider);
}
}