public void GetSpeciesObservationChangeBirdRingingCentre()
        {
            Boolean               areMoreSpeciesObservationsAvailable;
            ConnectorServer       connectorServer = new ConnectorServer();
            DateTime              changedFrom     = new DateTime(2000, 1, 1);
            DateTime              changedTo       = changedFrom;
            GbifConnector         connector       = new BirdRingingCentreConnector();
            List <HarvestMapping> mappings;
            List <WebSpeciesObservationFieldDescriptionExtended> fieldDescriptions;
            WebSpeciesObservationDataProvider dataProvider;

            dataProvider      = connector.GetSpeciesObservationDataProvider(GetContext());
            fieldDescriptions = WebServiceData.MetadataManager.GetSpeciesObservationFieldDescriptionsExtended(GetContext());
            mappings          = HarvestManager.CreateMappingList(fieldDescriptions, dataProvider.Id);
            try
            {
                GetContext().GetSpeciesObservationDatabase().SetMaxChangeId(dataProvider.Id, dataProvider.MaxChangeId - 1);
                GetContext().GetSpeciesObservationDatabase().EmptyTempTables();
                areMoreSpeciesObservationsAvailable = connector.GetSpeciesObservationChange(changedFrom,
                                                                                            changedTo,
                                                                                            mappings,
                                                                                            GetContext(),
                                                                                            connectorServer);
                Assert.IsFalse(areMoreSpeciesObservationsAvailable);
            }
            catch (Exception)
            {
                GetContext().GetSpeciesObservationDatabase().SetMaxChangeId(dataProvider.Id, dataProvider.MaxChangeId);
                throw;
            }
        }
Пример #2
0
        /// <summary>
        /// Used to bridge to the private method CreateSpeciesObservations for the HarvestManagerTest.
        /// </summary>
        /// <param name="context">Web service context.</param>
        /// <param name="speciesObservations">Species observations.</param>
        /// <param name="dataProvider">Data provider.</param>
        /// <param name="changedFrom">Changed from date.</param>
        /// <param name="changedTo">Changed to date.</param>
        public static void TestCreateSpeciesObservations(WebServiceContext context,
                                                         SpeciesObservationChange speciesObservations,
                                                         WebSpeciesObservationDataProvider dataProvider,
                                                         DateTime changedFrom,
                                                         DateTime changedTo)
        {
            Stopwatch stopwatch = Stopwatch.StartNew();
            int       noOfUpdated, noOfUpdatedErrors, noOfDeleted, noOfDeletedErrors;

            ////ConnectorServer.CreateSpeciesObservations(context, speciesObservations.CreatedSpeciesObservations, dataProvider, out noOfCreated, out noOfCreatedErrors);
            ConnectorServer.UpdateSpeciesObservations(context, speciesObservations.UpdatedSpeciesObservations, dataProvider, out noOfUpdated, out noOfUpdatedErrors);
            ConnectorServer.DeleteSpeciesObservations(context, speciesObservations.DeletedSpeciesObservationGuids, dataProvider, out noOfDeleted, out noOfDeletedErrors);
            stopwatch.Stop();
            context.GetSpeciesObservationDatabase().LogHarvestRead(context,
                                                                   dataProvider,
                                                                   changedFrom,
                                                                   changedTo,
                                                                   stopwatch.ElapsedMilliseconds,
                                                                   0,
                                                                   0,
                                                                   noOfUpdated,
                                                                   noOfUpdatedErrors,
                                                                   noOfDeleted,
                                                                   noOfDeletedErrors);
        }
 protected override void ShutdownConnnectorInfoManager()
 {
     if (_server != null)
     {
         _server.Stop();
         _server = null;
     }
 }
        protected override ConnectorInfoManager GetConnectorInfoManager()
        {
            TestUtil.InitializeLogging();

            GuardedString str = new GuardedString();

            str.AppendChar('c');
            str.AppendChar('h');
            str.AppendChar('a');
            str.AppendChar('n');
            str.AppendChar('g');
            str.AppendChar('e');
            str.AppendChar('i');
            str.AppendChar('t');

#if DEBUG
            const int PORT = 58762;
#else
            const int PORT = 58761;
#endif

            /*X509Store store = new X509Store("TestCertificateStore",
             *                              StoreLocation.CurrentUser);
             * store.Open(OpenFlags.ReadOnly|OpenFlags.OpenExistingOnly);
             * X509Certificate certificate = store.Certificates[0];
             * store.Close();*/

            X509Certificate2 certificate = new
                                           X509Certificate2(CERT_PATH,
                                                            "changeit");
            //Trace.TraceInformation("certificate: "+certificate);
            _server                   = ConnectorServer.NewInstance();
            _server.Port              = PORT;
            _server.KeyHash           = str.GetBase64SHA1Hash();
            _server.IfAddress         = (IOUtil.GetIPAddress("localhost"));
            _server.UseSSL            = true;
            _server.ServerCertificate = certificate;
            _server.Start();
            //while ( true ) {
            //    Thread.Sleep(1000);
            //}
            ConnectorInfoManagerFactory fact = ConnectorInfoManagerFactory.GetInstance();
            MyCertificateValidationCallback
                callback = new MyCertificateValidationCallback();
            RemoteFrameworkConnectionInfo connInfo = new
                                                     RemoteFrameworkConnectionInfo("localhost",
                                                                                   PORT,
                                                                                   str,
                                                                                   true,
                                                                                   callback.Validate,
                                                                                   60000);

            ConnectorInfoManager manager = fact.GetRemoteManager(connInfo);

            return(manager);
        }
Пример #5
0
        public virtual void TestFacadeEviction()
        {
            ConnectorServer server = ConnectorServer.NewInstance();

            try
            {
                GuardedString str = new GuardedString();
                str.AppendChar('c');
                str.AppendChar('h');
                str.AppendChar('a');
                str.AppendChar('n');
                str.AppendChar('g');
                str.AppendChar('e');
                str.AppendChar('i');
                str.AppendChar('t');

#if DEBUG
                const int PORT = 58760;
#else
                const int PORT = 58761;
#endif

                server.MaxFacadeLifeTime = 1;
                server.Port      = PORT;
                server.IfAddress = (IOUtil.GetIPAddress("127.0.0.1"));
                server.KeyHash   = str.GetBase64SHA1Hash();
                server.Start();

                RemoteFrameworkConnectionInfo connInfo =
                    new RemoteFrameworkConnectionInfo("127.0.0.1", PORT, str, false, null, 0);
                ConnectorInfoManager remoteManager =
                    ConnectorInfoManagerFactory.GetInstance().GetRemoteManager(connInfo);

                ConnectorInfo remoteInfo =
                    FindConnectorInfo(remoteManager, "1.0.0.0", "org.identityconnectors.testconnector.TstConnector");

                ConnectorFacade remoteFacade = ConnectorFacadeFactory.GetInstance().
                                               NewInstance(remoteInfo.CreateDefaultAPIConfiguration());

                ManagedConnectorFacadeFactoryImpl managedFactory =
                    (ManagedConnectorFacadeFactoryImpl)ConnectorFacadeFactory.GetManagedInstance();

                // Assert it's empty
                Assert.IsNull(managedFactory.Find(remoteFacade.ConnectorFacadeKey));
                remoteFacade.Schema();
                // Assert it has one item
                Assert.IsNotNull(managedFactory.Find(remoteFacade.ConnectorFacadeKey));
                Thread.Sleep(new TimeSpan(0, 2, 0));
                // Assert it's empty
                Assert.IsNull(managedFactory.Find(remoteFacade.ConnectorFacadeKey));
            }
            finally
            {
                server.Stop();
            }
        }
Пример #6
0
        /// <summary>
        /// Start this service.
        /// </summary>
        protected override void OnStart(string[] args)
        {
            try {
                initializeCurrentDirectory();
                Trace.TraceInformation("Starting connector server: " + Environment.CurrentDirectory);
                NameValueCollection settings =
                    GetApplicationSettings();
                String portStr =
                    settings.Get(PROP_PORT);
                if (portStr == null)
                {
                    throw new Org.IdentityConnectors.Framework.Common.Exceptions.ConfigurationException("Missing required configuration property: " + PROP_PORT);
                }
                String keyHash = settings.Get(PROP_KEY);
                if (keyHash == null)
                {
                    throw new Org.IdentityConnectors.Framework.Common.Exceptions.ConfigurationException("Missing required configuration property: " + PROP_KEY);
                }

                int  port   = Int32.Parse(portStr);
                bool useSSL = Boolean.Parse(settings.Get(PROP_SSL) ?? "false");
                _server         = ConnectorServer.NewInstance();
                _server.Port    = port;
                _server.UseSSL  = useSSL;
                _server.KeyHash = keyHash;
                if (useSSL)
                {
                    _server.ServerCertificate =
                        GetCertificate();
                }
                String ifaddress = settings.Get(PROP_IFADDRESS);
                if (ifaddress != null)
                {
                    _server.IfAddress =
                        IOUtil.GetIPAddress(ifaddress);
                }
                String facedeLifeTimeStr = settings.Get(PROP_FACADE_LIFETIME);
                if (facedeLifeTimeStr != null)
                {
                    _server.MaxFacadeLifeTime = Int32.Parse(facedeLifeTimeStr);
                }
                _server.Start();
                Trace.TraceInformation("Started connector server");
            }
            catch (Exception e) {
                TraceUtil.TraceException("Exception occured starting connector server",
                                         e);
                throw;
            }
        }
Пример #7
0
        /// <summary>
        /// Will get all changes from the first connection and return it to HarvestManagerTest.
        /// If you want to test more connectors, code must be rewritten.
        /// </summary>
        /// <param name="context">Web service context.</param>
        /// <param name="changedFrom">Changed from date.</param>
        /// <param name="changedTo">Changed to date.</param>
        /// <param name="dataProvider">Data provider.</param>
        public static void TestGetSpeciesObservationChange(WebServiceContext context,
                                                           DateTime changedFrom,
                                                           DateTime changedTo,
                                                           out WebSpeciesObservationDataProvider dataProvider)
        {
            IDataProviderConnector connector = Connectors[0];

            dataProvider = connector.GetSpeciesObservationDataProvider(context);

            // Read metadata from SpeciesObservationDatabase
            List <WebSpeciesObservationFieldDescriptionExtended> webDarwinCoreFieldDescriptions = WebServiceData.MetadataManager.GetSpeciesObservationFieldDescriptionsExtended(context, true);

            var             mappings        = CreateMappingList(webDarwinCoreFieldDescriptions, dataProvider.Id);
            ConnectorServer connectorServer = new ConnectorServer();

            connector.GetSpeciesObservationChange(changedFrom, changedTo, mappings, context, connectorServer);
        }
        protected override ConnectorInfoManager GetConnectorInfoManager()
        {
            TestUtil.InitializeLogging();

            GuardedString str = new GuardedString();

            str.AppendChar('c');
            str.AppendChar('h');
            str.AppendChar('a');
            str.AppendChar('n');
            str.AppendChar('g');
            str.AppendChar('e');
            str.AppendChar('i');
            str.AppendChar('t');

#if DEBUG
            const int PORT = 58758;
#else
            const int PORT = 58759;
#endif
            _server           = ConnectorServer.NewInstance();
            _server.Port      = PORT;
            _server.IfAddress = (IOUtil.GetIPAddress("127.0.0.1"));
            _server.KeyHash   = str.GetBase64SHA1Hash();
            _server.Start();
            //while ( true ) {
            //    Thread.Sleep(1000);
            //}
            ConnectorInfoManagerFactory fact = ConnectorInfoManagerFactory.GetInstance();

            RemoteFrameworkConnectionInfo connInfo = new
                                                     RemoteFrameworkConnectionInfo("127.0.0.1", PORT, str);

            ConnectorInfoManager manager = fact.GetRemoteManager(connInfo);

            return(manager);
        }