blob: 94624a57b70cc92f3680ce6630e5558918980029 [file] [log] [blame]
/*
* Copyright (c) 2020 Kentyou.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Kentyou - initial API and implementation
*/
package org.eclipse.sensinact.gateway.sthbnd.http.onem2m.osgi;
import org.eclipse.sensinact.gateway.core.SensiNactResourceModelConfiguration.BuildPolicy;
import org.eclipse.sensinact.gateway.generic.ExtModelConfiguration;
import org.eclipse.sensinact.gateway.generic.ExtModelConfigurationBuilder;
import org.eclipse.sensinact.gateway.generic.InvalidProtocolStackException;
import org.eclipse.sensinact.gateway.generic.Task;
import org.eclipse.sensinact.gateway.sthbnd.http.HttpPacket;
import org.eclipse.sensinact.gateway.sthbnd.http.annotation.HttpTaskConfiguration;
import org.eclipse.sensinact.gateway.sthbnd.http.annotation.HttpTasks;
import org.eclipse.sensinact.gateway.sthbnd.http.annotation.KeyValuePair;
import org.eclipse.sensinact.gateway.sthbnd.http.annotation.SimpleHttpTask;
import org.eclipse.sensinact.gateway.sthbnd.http.onem2m.internal.OneM2MHttpGetConfigurator;
import org.eclipse.sensinact.gateway.sthbnd.http.onem2m.task.OneM2MDiscoveryTask;
import org.eclipse.sensinact.gateway.sthbnd.http.onem2m.task.OneM2MGetTask;
import org.eclipse.sensinact.gateway.sthbnd.http.smpl.HttpActivator;
@HttpTasks(tasks = {@SimpleHttpTask(commands = {Task.CommandType.GET}, configuration = @HttpTaskConfiguration(host = "$(http.onem2m.host)", port = "$(http.onem2m.port)", path = "/$(http.onem2m.cse.base)", acceptType = "application/json", contentType = "application/json", headers = {@KeyValuePair(key = "X-M2M-Origin", value = "SOrigin")}, content = OneM2MHttpGetConfigurator.class, direct = true))})
public class Activator extends HttpActivator {
/**
* @inheritDoc
* @see AbstractActivator#doStart()
*/
@Override
public void doStart() throws Exception {
super.mediator.setTaskProcessingContextHandler(this.getProcessingContextHandler());
this.mediator.setTaskProcessingContextFactory(this.getTaskProcessingContextFactory());
this.mediator.setChainedTaskProcessingContextFactory(this.getChainedTaskProcessingContextFactory());
ExtModelConfiguration<? extends HttpPacket> configuration = ExtModelConfigurationBuilder.instance(mediator, getPacketType()
).withStartAtInitializationTime(isStartingAtInitializationTime()
).withServiceBuildPolicy(BuildPolicy.BUILD_NON_DESCRIBED.getPolicy()
).withResourceBuildPolicy(BuildPolicy.BUILD_NON_DESCRIBED.getPolicy()
).withDesynchronization(true
).build(getResourceDescriptionFile(), getDefaults());
this.endpoint = this.configureProtocolStackEndpoint();
this.connect(configuration);
}
/**
* @inheritDoc
* @see HttpActivator#connect(ExtModelConfiguration)
*/
@Override
public void connect(ExtModelConfiguration configuration) throws InvalidProtocolStackException {
super.endpoint.registerDiscoveryTask(new OneM2MDiscoveryTask(mediator, endpoint));
super.endpoint.setGetTaskType(OneM2MGetTask.class);
super.connect(configuration);
}
}