/** * Copyright (c) 2011, SOCIETIES Consortium (WATERFORD INSTITUTE OF TECHNOLOGY (TSSG), HERIOT-WATT UNIVERSITY (HWU), SOLUTA.NET * (SN), GERMAN AEROSPACE CENTRE (Deutsches Zentrum fuer Luft- und Raumfahrt e.V.) (DLR), Zavod za varnostne tehnologije * informacijske družbe in elektronsko poslovanje (SETCCE), INSTITUTE OF COMMUNICATION AND COMPUTER SYSTEMS (ICCS), LAKE * COMMUNICATIONS (LAKE), INTEL PERFORMANCE LEARNING SOLUTIONS LTD (INTEL), PORTUGAL TELECOM INOVAÇÃO, SA (PTIN), IBM Corp., * INSTITUT TELECOM (ITSUD), AMITEC DIACHYTI EFYIA PLIROFORIKI KAI EPIKINONIES ETERIA PERIORISMENIS EFTHINIS (AMITEC), TELECOM * ITALIA S.p.a.(TI), TRIALOG (TRIALOG), Stiftelsen SINTEF (SINTEF), NEC EUROPE LTD (NEC)) * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following * conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package org.societies.context.example.externalBroker; import java.io.IOException; import java.util.Hashtable; import java.util.List; import java.util.Set; import java.util.concurrent.ExecutionException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.societies.api.identity.IIdentity; import org.societies.api.identity.INetworkNode; import org.societies.api.identity.IdentityType; import org.societies.api.identity.InvalidFormatException; import org.societies.api.identity.Requestor; import org.societies.api.cis.attributes.MembershipCriteria; import org.societies.api.cis.management.ICisManager; import org.societies.api.cis.management.ICisOwned; import org.societies.api.context.broker.ICtxBroker; import org.societies.api.comm.xmpp.interfaces.ICommManager; import org.societies.api.context.CtxException; import org.societies.api.context.event.CtxChangeEvent; import org.societies.api.context.event.CtxChangeEventListener; import org.societies.api.context.model.CommunityCtxEntity; import org.societies.api.context.model.CtxAssociation; import org.societies.api.context.model.CtxAssociationTypes; import org.societies.api.context.model.CtxAttribute; import org.societies.api.context.model.CtxAttributeBond; import org.societies.api.context.model.CtxAttributeIdentifier; import org.societies.api.context.model.CtxAttributeTypes; import org.societies.api.context.model.CtxAttributeValueMetrics; import org.societies.api.context.model.CtxAttributeValueType; import org.societies.api.context.model.CtxBondOriginType; import org.societies.api.context.model.CtxEntity; import org.societies.api.context.model.CtxEntityIdentifier; import org.societies.api.context.model.CtxEntityTypes; import org.societies.api.context.model.CtxHistoryAttribute; import org.societies.api.context.model.CtxIdentifier; import org.societies.api.context.model.CtxModelType; import org.societies.api.context.model.CtxOriginType; import org.societies.api.context.model.IndividualCtxEntity; import org.societies.api.context.model.util.SerialisationHelper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** * This class provides examples for using the internal Context Broker in OSGi. */ @Service public class ExternalCtxBrokerExample { /** The logging facility. */ private static final Logger LOG = LoggerFactory.getLogger(ExternalCtxBrokerExample.class); /** The 3P Context Broker service reference. */ //private org.societies.api.context.broker.ICtxBroker externalCtxBroker; private ICommManager commMgrService; //private org.societies.api.internal.context.broker.ICtxBroker internalCtxBroker; private IIdentity cssOwnerId; private INetworkNode cssNodeId; private ICisOwned cisOwned = null; private static IndividualCtxEntity owner = null; private static CtxEntity deviceCtxEntity; private static CtxAssociation usesServiceAssoc; private static CtxAttributeIdentifier weightAttrIdentifier = null; private static CtxAttributeIdentifier ctxAttributeDeviceIDIdentifier = null; private Requestor requestor = null; private IIdentity remoteTargetCss; private IContextAware3pService ca3pService; @Autowired(required=true) public ExternalCtxBrokerExample(ICommManager commMgr,ICisManager cisManager, IContextAware3pService ca3pService) throws InvalidFormatException { LOG.info("*** " + this.getClass() + " instantiated"); LOG.info("*** ca3pService : " + this.ca3pService + " instantiated"); //this.externalCtxBroker = externalCtxBroker; //this.internalCtxBroker = internalCtxBroker; this.commMgrService = commMgr; this.ca3pService = ca3pService; this.cssNodeId = commMgr.getIdManager().getThisNetworkNode(); LOG.info("*** cssNodeId = " + this.cssNodeId); final String cssOwnerStr = this.cssNodeId.getBareJid(); this.cssOwnerId = commMgr.getIdManager().fromJid(cssOwnerStr); LOG.info("*** cssOwnerId = " + this.cssOwnerId); this.requestor = new Requestor(this.cssOwnerId); LOG.info("*** requestor = " + this.requestor); LOG.info("*** Starting individual context examples..."); //ca3pService.retrieveIndividualEntityId(); //ca3pService.createCtxEntityWithCtxAttributes(); //ca3pService.retrieveCtxAttributeBasedOnEntity(); //ca3pService.lookupAndRetrieveCtxAttributes(); //ca3pService.createCtxEntityWithCtxAttributes(); ca3pService.registerForLocUpdates(); } }