Esempio n. 1
0
 public void TestInit()
 {
     this.mockRequestData       = new Mock <IRequestData>();
     this.mockMetricsCollection = new Mock <IMetricsCollection>();
     this.mockRequestData.Setup(rd => rd.MetricsCollection).Returns(this.mockMetricsCollection.Object);
     this.discoveryManager = new DiscoveryManager(this.mockRequestData.Object);
 }
 void Start()
 {
     audioSource   = GetComponent <AudioSource>();
     questActive   = questManager.GetComponent <QuestManager>();
     chestBehavior = chestObjective.GetComponent <ChestBehavior>();
     discovery     = DiscoveryObjective.GetComponent <DiscoveryManager>();
 }
Esempio n. 3
0
        private void Main_Load(object sender, EventArgs e)
        {
            try
            {
                _arachnodeDAO = new ArachnodeDAO(_applicationSettings.ConnectionString, _applicationSettings, _webSettings, true, true);

                _actionManager      = new ActionManager <ArachnodeDAO>(_applicationSettings, _webSettings, _consoleManager);
                _consoleManager     = new ConsoleManager <ArachnodeDAO>(_applicationSettings, _webSettings);
                _memoryManager      = new MemoryManager <ArachnodeDAO>(_applicationSettings, _webSettings);
                _cacheManager       = new CacheManager <ArachnodeDAO>(_applicationSettings, _webSettings);
                _crawlerPeerManager = new CrawlerPeerManager <ArachnodeDAO>(_applicationSettings, _webSettings, null, _arachnodeDAO);
                _cache = new Cache <ArachnodeDAO>(_applicationSettings, _webSettings, null, _actionManager, _cacheManager, _crawlerPeerManager, _memoryManager, _ruleManager);

                _ruleManager      = new RuleManager <ArachnodeDAO>(_applicationSettings, _webSettings, _consoleManager);
                _discoveryManager = new DiscoveryManager <ArachnodeDAO>(_applicationSettings, _webSettings, _cache, _actionManager, _cacheManager, _memoryManager, _ruleManager);

                nudWebPageID_ValueChanged(null, null);
                nudFileID_ValueChanged(null, null);
                nudImageID_ValueChanged(null, null);
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.Message + " ::" + exception.StackTrace, "Browser");
            }
        }
Esempio n. 4
0
 protected ADataManager(ApplicationSettings applicationSettings, WebSettings webSettings, ActionManager <TArachnodeDAO> actionManager, DataTypeManager <TArachnodeDAO> dataTypeManager, DiscoveryManager <TArachnodeDAO> discoveryManager, RuleManager <TArachnodeDAO> ruleManager, IArachnodeDAO arachnodeDAO) : base(applicationSettings, webSettings)
 {
     _dataTypeManager  = dataTypeManager;
     _discoveryManager = discoveryManager;
     _ruleManager      = ruleManager;
     _actionManager    = actionManager;
     _arachnodeDAO     = arachnodeDAO;
 }
 public void OnDeviceAdded(DiscoveryManager manager, ConnectableDevice device)
 {
     App.MainDispatcher.RunAsync(CoreDispatcherPriority.High, () =>
     {
         if (App.ApplicationModel.DiscoverredDevices.All(x => x.Id != device.Id))
         {
             App.ApplicationModel.AddDevice(device);
         }
     });
 }
Esempio n. 6
0
        public MainWindow()
        {
            DiscoveryManager = new DiscoveryManager(OnAgentAdded);
            UdpManager       = new UdpManager();

            _viewModel  = new MainWindowViewModel(DiscoveryManager);
            DataContext = _viewModel;

            InitializeComponent();
        }
Esempio n. 7
0
        public bool UnSubscribeOutputDevice(OutputSubscriptionRequest subReq)
        {
            var deviceInfo = DiscoveryManager.FindDeviceInfo(subReq.DeviceDescriptor.DeviceHandle);

            if (deviceInfo == null)
            {
                return(false);
            }
            return(DescriptorManager.StopOutputDevice(deviceInfo));
        }
Esempio n. 8
0
        private static void Start()
        {
            var privateKeyProvider = new PrivateKeyProvider(PrivateKey);
            var config             = new DiscoveryConfigurationProvider(new NetworkHelper(Logger));
            var signer             = new Signer();
            var cryptoRandom       = new CryptoRandom();
            var configProvider     = new ConfigurationProvider();

            var nodeFactory = new NodeFactory();
            var calculator  = new NodeDistanceCalculator(config);

            var nodeTable = new NodeTable(config, nodeFactory, new FileKeyStore(configProvider, new JsonSerializer(Logger), new AesEncrypter(configProvider, Logger), cryptoRandom, Logger), Logger, calculator);

            var evictionManager  = new EvictionManager(nodeTable, Logger);
            var lifecycleFactory = new NodeLifecycleManagerFactory(nodeFactory, nodeTable, Logger, config, new DiscoveryMessageFactory(config), evictionManager);

            var discoveryManager = new DiscoveryManager(Logger, config, lifecycleFactory, nodeFactory, nodeTable);

            var nodesLocator           = new NodesLocator(nodeTable, discoveryManager, config, Logger);
            var discoveryMesageFactory = new DiscoveryMessageFactory(config);
            var nodeIdResolver         = new NodeIdResolver(signer);

            var pingSerializer      = new PingMessageSerializer(signer, privateKeyProvider, discoveryMesageFactory, nodeIdResolver, nodeFactory);
            var pongSerializer      = new PongMessageSerializer(signer, privateKeyProvider, discoveryMesageFactory, nodeIdResolver, nodeFactory);
            var findNodeSerializer  = new FindNodeMessageSerializer(signer, privateKeyProvider, discoveryMesageFactory, nodeIdResolver, nodeFactory);
            var neighborsSerializer = new NeighborsMessageSerializer(signer, privateKeyProvider, discoveryMesageFactory, nodeIdResolver, nodeFactory);

            var messageSerializationService = new MessageSerializationService();

            messageSerializationService.Register(pingSerializer);
            messageSerializationService.Register(pongSerializer);
            messageSerializationService.Register(findNodeSerializer);
            messageSerializationService.Register(neighborsSerializer);


            //P2P initialization
            IMessagePad eip8Pad = new Eip8MessagePad(cryptoRandom);

            messageSerializationService.Register(new AuthEip8MessageSerializer(eip8Pad));
            messageSerializationService.Register(new AckEip8MessageSerializer(eip8Pad));
            messageSerializationService.Register(new HelloMessageSerializer());
            messageSerializationService.Register(new DisconnectMessageSerializer());
            messageSerializationService.Register(new Nethermind.Network.P2P.PingMessageSerializer());
            messageSerializationService.Register(new Nethermind.Network.P2P.PongMessageSerializer());
            messageSerializationService.Register(new StatusMessageSerializer());
            IEciesCipher eciesCipher = new EciesCipher(cryptoRandom);
            IEncryptionHandshakeService encryptionHandshakeService = new EncryptionHandshakeService(messageSerializationService, eciesCipher, cryptoRandom, signer, PrivateKey, Logger);
            var p2pManager = new P2PManager(encryptionHandshakeService, Logger, messageSerializationService, Substitute.For <ISynchronizationManager>());

            //Connect discovery with P2P
            discoveryManager.RegisterDiscoveryListener(p2pManager);

            _discoveryApp = new DiscoveryApp(config, nodesLocator, Logger, discoveryManager, nodeFactory, nodeTable, messageSerializationService, cryptoRandom);
            _discoveryApp.Start(PrivateKey.PublicKey);
        }
Esempio n. 9
0
        protected void Page_Load(object sender, EventArgs e)
        {
            EnableViewState = false;

            try
            {
                if (Request.QueryString.Count == 2 && Request.QueryString.AllKeys[0] == "discoveryID" && Request.QueryString.AllKeys[1] == "absoluteUri")
                {
                    ArachnodeDataSet.WebPagesRow webPagesRow = ArachnodeDAO.GetWebPage(Request.QueryString["discoveryID"]);

                    if (webPagesRow != null)
                    {
                        string source = null;

                        if (webPagesRow.Source == null || webPagesRow.Source.Length == 0)
                        {
                            string discoveryPath = DiscoveryManager.GetDiscoveryPath(ApplicationSettings.DownloadedWebPagesDirectory, webPagesRow.AbsoluteUri, webPagesRow.FullTextIndexType);

                            if (File.Exists(discoveryPath))
                            {
                                source = File.ReadAllText(discoveryPath, Encoding.GetEncoding(webPagesRow.CodePage));
                            }
                            else
                            {
                                uxLblException.Text = "The WebPage source was not found in the database or on disk.";
                                uxLblException.Visible = true;

                                return;
                            }
                        }
                        else
                        {
                            source = Encoding.GetEncoding(webPagesRow.CodePage).GetString(webPagesRow.Source);
                        }

                        //Request.Url.Scheme + "://" + Request.Url.Authority

                        //ANODET: Should this be a configuration setting?  Perhaps - hotlinking isn't exactly polite, but does provide the best user experience.  (Version 1.5)
                        uxLWebPage.Text = HtmlManager.CreateHtmlDocument(webPagesRow.AbsoluteUri, webPagesRow.FullTextIndexType, source, UriQualificationType.AbsoluteWhenDownloadedDiscoveryIsUnavailable, ArachnodeDAO, true).DocumentNode.OuterHtml;
                    }
                    else
                    {
                        uxLblException.Text = "The WebPage was not found in the database.";
                        uxLblException.Visible = true;
                    }
                }
            }
            catch (Exception exception)
            {
                uxLblException.Text = exception.Message;
                uxLblException.Visible = true;

                ArachnodeDAO.InsertException(null, null, exception, false);
            }
        }
 public void OnDeviceUpdated(DiscoveryManager manager, ConnectableDevice device)
 {
     App.MainDispatcher.RunAsync(CoreDispatcherPriority.High, () =>
     {
         if (App.ApplicationModel.DiscoverredDevices.Contains(device))
         {
             App.ApplicationModel.DiscoverredDevices.Remove(device);
             App.ApplicationModel.DiscoverredDevices.Add(device);
             device.OnPropertyChanged("ServiceNames");
         }
     });
 }
Esempio n. 11
0
        public static void FindWardNodes()
        {
            var disco = new DiscoveryManager();

            disco.DiscoveryAddressAdded += (sender, e) =>
            {
                if (WardNodeFound != null)
                {
                    WardNodeFound(disco, new WebConfiguration(e.ServiceInfo.Address));
                }
            };
            disco.Find(DiscoveryType.Zeroconf);
        }
Esempio n. 12
0
    // Start is called before the first frame update
    IEnumerator Start()
    {
        DiscoveryManager _discoveryManager = Director.GetManager <DiscoveryManager>();

        while (_discoveryManager == null)
        {
            yield return(new WaitForEndOfFrame());

            _discoveryManager = Director.GetManager <DiscoveryManager>();
        }
        selectedSecretText.enabled        = false;
        assignedDiscoveryText.text        = "No secret selected";
        _discoveryManager.OnNewDiscovery += NewDiscovery;
        bookController.OnSecretClicked   += SecretClicked;
    }
Esempio n. 13
0
        private void SearchTvs()
        {
            listener = new DiscoveryManagerListener();

            listener.Paired += (sender, o) =>
            {
                model.Connected      = true;
                model.SelectedDevice = new Independent <ConnectableDevice>(o as ConnectableDevice);
                Dispatcher.RunAsync(CoreDispatcherPriority.High, () => Frame.Navigate(typeof(Sampler)));
            };
            DiscoveryManager.Init();
            var discoveryManager = DiscoveryManager.GetInstance();

            discoveryManager.AddListener(listener);
            discoveryManager.PairingLevel = DiscoveryManager.PairingLevelEnum.On;
            discoveryManager.Start();
        }
Esempio n. 14
0
        public Main()
        {
            InitializeComponent();

            _formText = Text;

            _actionManager      = new ActionManager <ArachnodeDAO>(_applicationSettings, _webSettings, _consoleManager);
            _consoleManager     = new ConsoleManager <ArachnodeDAO>(_applicationSettings, _webSettings);
            _memoryManager      = new MemoryManager <ArachnodeDAO>(_applicationSettings, _webSettings);
            _cacheManager       = new CacheManager <ArachnodeDAO>(_applicationSettings, _webSettings);
            _crawlerPeerManager = new CrawlerPeerManager <ArachnodeDAO>(_applicationSettings, _webSettings, null, null);
            _cache = new Cache <ArachnodeDAO>(_applicationSettings, _webSettings, null, _actionManager, _cacheManager, _crawlerPeerManager, _memoryManager, _ruleManager);

            _ruleManager      = new RuleManager <ArachnodeDAO>(_applicationSettings, _webSettings, _consoleManager);
            _discoveryManager = new DiscoveryManager <ArachnodeDAO>(_applicationSettings, _webSettings, _cache, _actionManager, _cacheManager, _memoryManager, _ruleManager);

            tbAbsoluteUri_KeyUp(this, new KeyEventArgs(Keys.Enter));
        }
Esempio n. 15
0
        public void Setup()
        {
            NetworkConfig networkConfig = new NetworkConfig();

            networkConfig.ExternalIp = IPAddress.Broadcast.ToString();

            _masterNode = new Node(TestItem.PublicKeyA, IPAddress.Broadcast.ToString(), 30000, false);
            DiscoveryConfig config = new DiscoveryConfig()
            {
                DiscoveryNewCycleWaitTime = 1
            };
            NodeDistanceCalculator distanceCalculator = new NodeDistanceCalculator(config);

            _nodeTable = new NodeTable(
                distanceCalculator,
                config,
                networkConfig,
                LimboLogs.Instance);
            DiscoveryMessageFactory     messageFactory   = new DiscoveryMessageFactory(Timestamper.Default);
            EvictionManager             evictionManager  = new EvictionManager(_nodeTable, LimboLogs.Instance);
            ITimerFactory               timerFactory     = Substitute.For <ITimerFactory>();
            NodeStatsManager            nodeStatsManager = new NodeStatsManager(timerFactory, LimboLogs.Instance);
            NodeLifecycleManagerFactory managerFactory   =
                new NodeLifecycleManagerFactory(
                    _nodeTable,
                    messageFactory,
                    evictionManager,
                    nodeStatsManager,
                    config,
                    LimboLogs.Instance);
            DiscoveryManager manager = new DiscoveryManager(
                managerFactory,
                _nodeTable,
                new NetworkStorage(new MemDb(), LimboLogs.Instance),
                config,
                LimboLogs.Instance,
                new IPResolver(networkConfig, LimboLogs.Instance));

            _nodesLocator = new NodesLocator(_nodeTable, manager, config, LimboLogs.Instance);
        }
Esempio n. 16
0
        /// <summary>
        ///     Initializes a new instance of the <see cref = "Crawl" /> class.
        /// </summary>
        /// <param name = "crawler">The crawler.</param>
        /// <param name="actionManager"></param>
        /// <param name="crawlRequestManager"></param>
        /// <param name="discoveryManager"></param>
        /// <param name="htmlManager"></param>
        /// <param name="politenessManager"></param>
        /// <param name="ruleManager"></param>
        /// <param name = "processData">if set to <c>true</c> [process data].</param>
        public Crawl(ApplicationSettings applicationSettings, WebSettings webSettings, Crawler <TArachnodeDAO> crawler, ActionManager <TArachnodeDAO> actionManager, ConsoleManager <TArachnodeDAO> consoleManager, CookieManager cookieManager, CrawlRequestManager <TArachnodeDAO> crawlRequestManager, DataTypeManager <TArachnodeDAO> dataTypeManager, DiscoveryManager <TArachnodeDAO> discoveryManager, EncodingManager <TArachnodeDAO> encodingManager, HtmlManager <TArachnodeDAO> htmlManager, PolitenessManager <TArachnodeDAO> politenessManager, ProxyManager <TArachnodeDAO> proxyManager, RuleManager <TArachnodeDAO> ruleManager, bool processData)
        {
            _applicationSettings = applicationSettings;
            _webSettings         = webSettings;

            UncrawledCrawlRequests = new PriorityQueue <CrawlRequest <TArachnodeDAO> >();
            UnassignedDiscoveries  = new HashSet <string>();

            _crawler = crawler;

            _crawlInfo.MaximumCrawlDepth = 1;

            _actionManager       = actionManager;
            _consoleManager      = consoleManager;
            _cookieManager       = cookieManager;
            _crawlRequestManager = crawlRequestManager;
            _dataTypeManager     = dataTypeManager;
            _discoveryManager    = discoveryManager;
            _encodingManager     = encodingManager;
            _htmlManager         = htmlManager;
            _politenessManager   = politenessManager;
            _proxyManager        = proxyManager;
            _ruleManager         = ruleManager;

            _processData = processData;

            _arachnodeDAO = (TArachnodeDAO)Activator.CreateInstance(typeof(TArachnodeDAO), _applicationSettings.ConnectionString, _applicationSettings, _webSettings, false, false);
            _arachnodeDAO.ApplicationSettings = applicationSettings;

            //_arachnodeDAO.OpenCommandConnections();

            _dataManager    = new DataManager <TArachnodeDAO>(_applicationSettings, _webSettings, _actionManager, _dataTypeManager, _discoveryManager, _ruleManager, _arachnodeDAO);
            _fileManager    = new FileManager <TArachnodeDAO>(_applicationSettings, _webSettings, _discoveryManager, _arachnodeDAO);
            _imageManager   = new ImageManager <TArachnodeDAO>(_applicationSettings, _webSettings, _discoveryManager, _arachnodeDAO);
            _webClient      = new WebClient <TArachnodeDAO>(_applicationSettings, _webSettings, _consoleManager, _cookieManager, _proxyManager);
            _webPageManager = new WebPageManager <TArachnodeDAO>(_applicationSettings, _webSettings, _discoveryManager, _htmlManager, _arachnodeDAO);
        }
Esempio n. 17
0
        /// <summary>
        ///     Process a range of FileID after crawling.  Useful if crawled Files were not processed at crawl time according to desired ApplicationSettings configuration.
        ///     Calling this method DOES change the 'LastDiscovered' fields where applicable.
        ///     This method is not when crawling, rather during post-processing.
        /// </summary>
        /// <param name = "fileIDLowerBound"></param>
        /// <param name = "fileIDUpperBound"></param>
        public static void ProcessFiles(Crawler <TArachnodeDAO> crawler, long fileIDLowerBound, long fileIDUpperBound)
        {
            //do not assign the application settings.  doing so will override the ApplicationSetting you set before calling this method...
            TArachnodeDAO arachnodeDAO = (TArachnodeDAO)Activator.CreateInstance(typeof(TArachnodeDAO), crawler.ApplicationSettings.ConnectionString, crawler.ApplicationSettings, crawler.WebSettings, false, false);

            ConsoleManager <TArachnodeDAO> consoleManager = new ConsoleManager <TArachnodeDAO>(crawler.ApplicationSettings, crawler.WebSettings);
            ActionManager <TArachnodeDAO>  actionManager  = new ActionManager <TArachnodeDAO>(crawler.ApplicationSettings, crawler.WebSettings, consoleManager);
            CookieManager cookieManager = new CookieManager();;
            MemoryManager <TArachnodeDAO>      memoryManager      = new MemoryManager <TArachnodeDAO>(crawler.ApplicationSettings, crawler.WebSettings);
            RuleManager <TArachnodeDAO>        ruleManager        = new RuleManager <TArachnodeDAO>(crawler.ApplicationSettings, crawler.WebSettings, consoleManager);
            CacheManager <TArachnodeDAO>       cacheManager       = new CacheManager <TArachnodeDAO>(crawler.ApplicationSettings, crawler.WebSettings);
            CrawlerPeerManager <TArachnodeDAO> crawlerPeerManager = new CrawlerPeerManager <TArachnodeDAO>(crawler.ApplicationSettings, crawler.WebSettings, null, arachnodeDAO);
            Cache <TArachnodeDAO> cache = new Cache <TArachnodeDAO>(crawler.ApplicationSettings, crawler.WebSettings, crawler, actionManager, cacheManager, crawlerPeerManager, memoryManager, ruleManager);

            DiscoveryManager <TArachnodeDAO> discoveryManager = new DiscoveryManager <TArachnodeDAO>(crawler.ApplicationSettings, crawler.WebSettings, cache, actionManager, cacheManager, memoryManager, ruleManager);

            //load the CrawlActions, CrawlRules and EngineActions...
            ruleManager.ProcessCrawlRules(crawler);
            actionManager.ProcessCrawlActions(crawler);
            actionManager.ProcessEngineActions(crawler);

            //these three methods are called in the Engine.
            UserDefinedFunctions.RefreshAllowedExtensions(true);
            UserDefinedFunctions.RefreshAllowedSchemes(true);
            UserDefinedFunctions.RefreshDisallowed();

            //instantiate a WebClient to access the ResponseHeaders...
            WebClient <TArachnodeDAO> webClient = new WebClient <TArachnodeDAO>(crawler.ApplicationSettings, crawler.WebSettings, consoleManager, cookieManager, new ProxyManager <TArachnodeDAO>(crawler.ApplicationSettings, crawler.WebSettings, consoleManager));

            webClient.GetHttpWebResponse("http://google.com", "GET", null, null, null, null);

            FileManager <TArachnodeDAO> fileManager = new FileManager <TArachnodeDAO>(crawler.ApplicationSettings, crawler.WebSettings, discoveryManager, arachnodeDAO);

            for (long i = fileIDLowerBound; i <= fileIDUpperBound; i++)
            {
                ArachnodeDataSet.FilesRow filesRow = null;

                try
                {
                    //get the File from the database.  we need the source data as we don't store this in the index.
                    //even though most of the fields are available in the Document, the File is the authoritative source, so we'll use that for all of the fields.
                    filesRow = arachnodeDAO.GetFile(i.ToString());

                    if (filesRow != null)
                    {
                        if (filesRow.Source == null || filesRow.Source.Length == 0)
                        {
                            if (File.Exists(discoveryManager.GetDiscoveryPath(crawler.ApplicationSettings.DownloadedFilesDirectory, filesRow.AbsoluteUri, filesRow.FullTextIndexType)))
                            {
                                filesRow.Source = File.ReadAllBytes(discoveryManager.GetDiscoveryPath(crawler.ApplicationSettings.DownloadedFilesDirectory, filesRow.AbsoluteUri, filesRow.FullTextIndexType));
                            }
                            else
                            {
                                Console.WriteLine("FileID: " + i + " was NOT processed successfully.");
                                if (OnFileProcessed != null)
                                {
                                    OnFileProcessed.BeginInvoke(filesRow, "FileID: " + i + " was NOT processed successfully.", null, null);
                                }
                            }
                        }

                        ProcessFile(crawler.ApplicationSettings, crawler.WebSettings, crawler, filesRow, webClient, cache, actionManager, consoleManager, crawlerPeerManager, discoveryManager, fileManager, memoryManager, ruleManager, arachnodeDAO);

                        Console.WriteLine("FileID: " + i + " was processed successfully.");
                        if (OnFileProcessed != null)
                        {
                            OnFileProcessed.BeginInvoke(filesRow, "FileID: " + i + " was processed successfully.", null, null);
                        }
                    }
                }
                catch (Exception exception)
                {
                    Console.WriteLine("FileID: " + i + " was NOT processed successfully.");
                    Console.WriteLine(exception.Message);

                    if (OnFileProcessed != null)
                    {
                        OnFileProcessed.BeginInvoke(filesRow, "FileID: " + i + " was NOT processed successfully.", null, null);
                        OnFileProcessed.BeginInvoke(filesRow, exception.Message, null, null);
                    }

                    arachnodeDAO.InsertException(null, null, exception, false);
                }
            }

            //stop the CrawlActions, CrawlRules and EngineActions...
            ruleManager.Stop();
            actionManager.Stop();
        }
Esempio n. 18
0
        /// <summary>
        ///     Processes a FilesRow after crawling.
        /// </summary>
        /// <param name = "filesRow">The files row.</param>
        /// <param name="webClient"></param>
        /// <param name="actionManager"></param>
        /// <param name="consoleManager"></param>
        /// <param name="discoveryManager"></param>
        /// <param name = "fileManager">The file manager.</param>
        /// <param name = "fileManager">The file manager.</param>
        /// <param name="memoryManager"></param>
        /// <param name="ruleManager"></param>
        /// <param name = "arachnodeDAO">The arachnode DAO.</param>
        /// <param name = "imageManager">The image manager.</param>
        public static void ProcessFile(ApplicationSettings applicationSettings, WebSettings webSettings, Crawler <TArachnodeDAO> crawler, ArachnodeDataSet.FilesRow filesRow, WebClient <TArachnodeDAO> webClient, Cache <TArachnodeDAO> cache, ActionManager <TArachnodeDAO> actionManager, ConsoleManager <TArachnodeDAO> consoleManager, CrawlerPeerManager <TArachnodeDAO> crawlerPeerManager, DiscoveryManager <TArachnodeDAO> discoveryManager, FileManager <TArachnodeDAO> fileManager, MemoryManager <TArachnodeDAO> memoryManager, RuleManager <TArachnodeDAO> ruleManager, IArachnodeDAO arachnodeDAO)
        {
            CacheManager <TArachnodeDAO> cacheManager = new CacheManager <TArachnodeDAO>(applicationSettings, webSettings);
            CookieManager cookieManager = new CookieManager();;
            CrawlRequestManager <TArachnodeDAO> crawlRequestManager = new CrawlRequestManager <TArachnodeDAO>(applicationSettings, webSettings, cache, consoleManager, discoveryManager);
            DataTypeManager <TArachnodeDAO>     dataTypeManager     = new DataTypeManager <TArachnodeDAO>(applicationSettings, webSettings);
            EncodingManager <TArachnodeDAO>     encodingManager     = new EncodingManager <TArachnodeDAO>(applicationSettings, webSettings);
            PolitenessManager <TArachnodeDAO>   politenessManager   = new PolitenessManager <TArachnodeDAO>(applicationSettings, webSettings, cache);
            ProxyManager <TArachnodeDAO>        proxyManager        = new ProxyManager <TArachnodeDAO>(applicationSettings, webSettings, consoleManager);
            HtmlManager <TArachnodeDAO>         htmlManager         = new HtmlManager <TArachnodeDAO>(applicationSettings, webSettings, discoveryManager);
            Crawl <TArachnodeDAO> crawl = new Crawl <TArachnodeDAO>(applicationSettings, webSettings, crawler, actionManager, consoleManager, cookieManager, crawlRequestManager, dataTypeManager, discoveryManager, encodingManager, htmlManager, politenessManager, proxyManager, ruleManager, true);

            //create a CrawlRequest as this is what the internals of SiteCrawler.dll expect to operate on...
            CrawlRequest <TArachnodeDAO> crawlRequest = new CrawlRequest <TArachnodeDAO>(new Discovery <TArachnodeDAO>(filesRow.AbsoluteUri), 1, UriClassificationType.Host, UriClassificationType.Host, 0, RenderType.None, RenderType.None);

            crawlRequest.Crawl = crawl;
            crawlRequest.Discovery.DiscoveryType = DiscoveryType.File;
            crawlRequest.Discovery.ID            = filesRow.ID;
            crawlRequest.Data        = filesRow.Source;
            crawlRequest.ProcessData = true;
            crawlRequest.WebClient   = webClient;

            crawlRequest.WebClient.HttpWebResponse.Headers.Clear();

            //parse the ResponseHeaders from the FilesRow.ResponseHeaders string...
            foreach (string responseHeader in filesRow.ResponseHeaders.Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries))
            {
                string[] responseHeaderSplit = responseHeader.Split(":".ToCharArray());

                string name  = responseHeaderSplit[0];
                string value = UserDefinedFunctions.ExtractResponseHeader(filesRow.ResponseHeaders, name, true).Value;

                crawlRequest.WebClient.HttpWebResponse.Headers.Add(name, value);
            }

            //refresh the DataTypes in the DataTypeManager... (if necessary)...
            if (dataTypeManager.AllowedDataTypes.Count == 0)
            {
                dataTypeManager.RefreshDataTypes();
            }

            crawlRequest.DataType = dataTypeManager.DetermineDataType(crawlRequest);

            if (applicationSettings.InsertFiles)
            {
                crawlRequest.Discovery.ID = arachnodeDAO.InsertFile(crawlRequest.Parent.Uri.AbsoluteUri, crawlRequest.Discovery.Uri.AbsoluteUri, crawlRequest.WebClient.HttpWebResponse.Headers.ToString(), applicationSettings.InsertFileSource ? crawlRequest.Data : new byte[] { }, crawlRequest.DataType.FullTextIndexType, applicationSettings.ClassifyAbsoluteUris);
            }

            crawlRequest.ManagedDiscovery = fileManager.ManageFile(crawlRequest, crawlRequest.Discovery.ID.Value, crawlRequest.Discovery.Uri.AbsoluteUri, crawlRequest.Data, crawlRequest.DataType.FullTextIndexType, applicationSettings.ExtractFileMetaData, applicationSettings.InsertFileMetaData, applicationSettings.SaveDiscoveredFilesToDisk);

            actionManager.PerformCrawlActions(crawlRequest, CrawlActionType.PostRequest, arachnodeDAO);

            discoveryManager.CloseAndDisposeManagedDiscovery(crawlRequest, arachnodeDAO);
        }
Esempio n. 19
0
        /// <summary>
        /// Returns executor Vs sources list
        /// </summary>
        private Dictionary <Tuple <Uri, string>, IEnumerable <string> > GetExecutorVsSourcesList(IMessageLogger logger)
        {
            var result = new Dictionary <Tuple <Uri, string>, IEnumerable <string> >();

            var verifiedExtensionSourceMap = new Dictionary <string, IEnumerable <string> >();

            // Validate the sources
            foreach (var kvp in this.adapterSourceMap)
            {
                var verifiedSources = DiscoveryManager.GetValidSources(kvp.Value, logger);
                if (verifiedSources.Any())
                {
                    verifiedExtensionSourceMap.Add(kvp.Key, kvp.Value);
                }
            }

            // No valid source is found => no executor vs source map
            if (!verifiedExtensionSourceMap.Any())
            {
                return(result);
            }

            foreach (var kvp in verifiedExtensionSourceMap)
            {
                Dictionary <LazyExtension <ITestDiscoverer, ITestDiscovererCapabilities>, IEnumerable <string> >
                discovererToSourcesMap = DiscovererEnumerator.GetDiscovererToSourcesMap(
                    kvp.Key,
                    kvp.Value,
                    logger);

                // Warning is logged by the inner layer
                if (discovererToSourcesMap == null || discovererToSourcesMap.Count == 0)
                {
                    continue;
                }

                foreach (var discoverer in discovererToSourcesMap.Keys)
                {
                    var executorUri = discoverer.Metadata.DefaultExecutorUri;
                    if (executorUri == null)
                    {
                        string errorMessage = string.Format(
                            CultureInfo.CurrentUICulture,
                            CrossPlatEngineResources.IgnoringExecutorAsNoDefaultExecutorUriAttribute,
                            discoverer.Value);
                        logger.SendMessage(TestMessageLevel.Warning, errorMessage);
                        continue;
                    }

                    var executorUriExtensionTuple = new Tuple <Uri, string>(executorUri, kvp.Key);

                    if (!result.ContainsKey(executorUriExtensionTuple))
                    {
                        result.Add(executorUriExtensionTuple, discovererToSourcesMap[discoverer]);
                    }
                    else
                    {
                        string errorMessage = string.Format(
                            CultureInfo.CurrentUICulture,
                            CrossPlatEngineResources.DuplicateAdaptersFound,
                            executorUri,
                            discoverer.Value);
                        logger.SendMessage(TestMessageLevel.Warning, errorMessage);
                    }
                }
            }

            return(result);
        }
 public void OnDeviceRemoved(DiscoveryManager manager, ConnectableDevice device)
 {
     throw new NotImplementedException();
 }
Esempio n. 21
0
 public MainWindowViewModel(DiscoveryManager discoveryManager)
 {
     _discoveryManager = discoveryManager;
     Agents            = new ObservableCollection <ServiceAgent>();
 }
Esempio n. 22
0
 /// <summary>
 ///     Initializes a new instance of the <see cref = "FileManager{TArachnodeDAO}" /> class.
 /// </summary>
 /// <param name = "arachnodeDAO">The arachnode DAO.</param>
 protected AFileManager(ApplicationSettings applicationSettings, WebSettings webSettings, DiscoveryManager <TArachnodeDAO> discoveryManager, IArachnodeDAO arachnodeDAO) : base(applicationSettings, webSettings)
 {
     _discoveryManager = discoveryManager;
     _arachnodeDAO     = arachnodeDAO;
 }
Esempio n. 23
0
        private void InitDiscovery()
        {
            if (_ctx.NodeStatsManager == null)
            {
                throw new StepDependencyException(nameof(_ctx.NodeStatsManager));
            }
            if (_ctx.Timestamper == null)
            {
                throw new StepDependencyException(nameof(_ctx.Timestamper));
            }
            if (_ctx.NodeKey == null)
            {
                throw new StepDependencyException(nameof(_ctx.NodeKey));
            }
            if (_ctx.CryptoRandom == null)
            {
                throw new StepDependencyException(nameof(_ctx.CryptoRandom));
            }

            if (!_ctx.Config <IInitConfig>().DiscoveryEnabled)
            {
                _ctx.DiscoveryApp = new NullDiscoveryApp();
                return;
            }

            IDiscoveryConfig discoveryConfig = _ctx.Config <IDiscoveryConfig>();

            SameKeyGenerator        privateKeyProvider      = new SameKeyGenerator(_ctx.NodeKey.Unprotect());
            DiscoveryMessageFactory discoveryMessageFactory = new DiscoveryMessageFactory(_ctx.Timestamper);
            NodeIdResolver          nodeIdResolver          = new NodeIdResolver(_ctx.EthereumEcdsa);
            IPResolver ipResolver = new IPResolver(_networkConfig, _ctx.LogManager);

            IDiscoveryMsgSerializersProvider msgSerializersProvider = new DiscoveryMsgSerializersProvider(
                _ctx._messageSerializationService,
                _ctx.EthereumEcdsa,
                privateKeyProvider,
                discoveryMessageFactory,
                nodeIdResolver);

            msgSerializersProvider.RegisterDiscoverySerializers();

            NodeDistanceCalculator nodeDistanceCalculator = new NodeDistanceCalculator(discoveryConfig);

            NodeTable       nodeTable       = new NodeTable(nodeDistanceCalculator, discoveryConfig, _networkConfig, _ctx.LogManager);
            EvictionManager evictionManager = new EvictionManager(nodeTable, _ctx.LogManager);

            NodeLifecycleManagerFactory nodeLifeCycleFactory = new NodeLifecycleManagerFactory(
                nodeTable,
                discoveryMessageFactory,
                evictionManager,
                _ctx.NodeStatsManager,
                discoveryConfig,
                _ctx.LogManager);

            SimpleFilePublicKeyDb discoveryDb      = new SimpleFilePublicKeyDb("DiscoveryDB", DiscoveryNodesDbPath.GetApplicationResourcePath(_ctx.Config <IInitConfig>().BaseDbPath), _ctx.LogManager);
            NetworkStorage        discoveryStorage = new NetworkStorage(
                discoveryDb,
                _ctx.LogManager);

            DiscoveryManager discoveryManager = new DiscoveryManager(
                nodeLifeCycleFactory,
                nodeTable,
                discoveryStorage,
                discoveryConfig,
                _ctx.LogManager,
                ipResolver
                );

            NodesLocator nodesLocator = new NodesLocator(
                nodeTable,
                discoveryManager,
                discoveryConfig,
                _ctx.LogManager);

            _ctx.DiscoveryApp = new DiscoveryApp(
                nodesLocator,
                discoveryManager,
                nodeTable,
                _ctx._messageSerializationService,
                _ctx.CryptoRandom,
                discoveryStorage,
                _networkConfig,
                discoveryConfig,
                _ctx.Timestamper,
                _ctx.LogManager);

            _ctx.DiscoveryApp.Initialize(_ctx.NodeKey.PublicKey);
        }
 public void OnDiscoveryFailed(DiscoveryManager manager, ServiceCommandError error)
 {
     throw new NotImplementedException();
 }
Esempio n. 25
0
 public DeviceReport GetOutputDeviceReport(DeviceDescriptor deviceDescriptor)
 {
     return(DiscoveryManager.FindDeviceInfo(deviceDescriptor.DeviceHandle).DeviceReport);
 }
Esempio n. 26
0
        /// <summary>
        ///     Initializes a new instance of the <see cref = "Crawler" /> class.
        /// </summary>
        public Crawler(ApplicationSettings applicationSettings, WebSettings webSettings, CrawlMode crawlMode, List <CrawlerPeer> crawlerPeers, List <DatabasePeer> databasePeers, bool enableRenderers)
        {
            Guid = Guid.NewGuid();

            try
            {
                _applicationSettings = applicationSettings;
                _webSettings         = webSettings;

                _arachnodeDAO        = (TArachnodeDAO)Activator.CreateInstance(typeof(TArachnodeDAO), _applicationSettings.ConnectionString, _applicationSettings, _webSettings, true, true);
                _applicationSettings = _arachnodeDAO.ApplicationSettings;

                _consoleManager = new ConsoleManager <TArachnodeDAO>(_applicationSettings, _webSettings);

                _consoleManager.OutputString("arachnode.net " + Assembly.GetExecutingAssembly().GetName().Version, ConsoleColor.Green, ConsoleColor.Gray);

                _actionManager = new ActionManager <TArachnodeDAO>(_applicationSettings, _webSettings, _consoleManager);
                _ruleManager   = new RuleManager <TArachnodeDAO>(_applicationSettings, _webSettings, _consoleManager);

                _memoryManager = new MemoryManager <TArachnodeDAO>(_applicationSettings, _webSettings);
                _cacheManager  = new CacheManager <TArachnodeDAO>(_applicationSettings, _webSettings);

                _cookieManager = new CookieManager();
                _cacheManager  = new CacheManager <TArachnodeDAO>(_applicationSettings, _webSettings);

                CrawlerPeers  = crawlerPeers;
                DatabasePeers = databasePeers;

                _crawlerPeerManager  = new CrawlerPeerManager <TArachnodeDAO>(_applicationSettings, _webSettings, CrawlerPeers, (TArachnodeDAO)Activator.CreateInstance(typeof(TArachnodeDAO), _applicationSettings.ConnectionString, _applicationSettings, _webSettings, true, true));
                _databasePeerManager = new DatabasePeerManager <TArachnodeDAO>(_applicationSettings, _webSettings, DatabasePeers);

                _cache = new Cache <TArachnodeDAO>(_applicationSettings, _webSettings, this, _actionManager, _cacheManager, _crawlerPeerManager, _memoryManager, _ruleManager);

                _dataTypeManager     = new DataTypeManager <TArachnodeDAO>(_applicationSettings, _webSettings);
                _discoveryManager    = new DiscoveryManager <TArachnodeDAO>(_applicationSettings, _webSettings, _cache, _actionManager, _cacheManager, _memoryManager, _ruleManager);
                _crawlRequestManager = new CrawlRequestManager <TArachnodeDAO>(_applicationSettings, _webSettings, _cache, _consoleManager, _discoveryManager);
                _encodingManager     = new EncodingManager <TArachnodeDAO>(_applicationSettings, _webSettings);
                _htmlManager         = new HtmlManager <TArachnodeDAO>(_applicationSettings, _webSettings, _discoveryManager);
                _politenessManager   = new PolitenessManager <TArachnodeDAO>(_applicationSettings, _webSettings, _cache);
                _proxyManager        = new ProxyManager <TArachnodeDAO>(_applicationSettings, _webSettings, _consoleManager);
                _reportingManager    = new ReportingManager <TArachnodeDAO>(_applicationSettings, _webSettings, _consoleManager);

                //create required directories...
                if (!Directory.Exists(_applicationSettings.ConsoleOutputLogsDirectory))
                {
                    Directory.CreateDirectory(_applicationSettings.ConsoleOutputLogsDirectory);
                }

                if (!Directory.Exists(_applicationSettings.DownloadedFilesDirectory))
                {
                    Directory.CreateDirectory(_applicationSettings.DownloadedFilesDirectory);
                }

                if (!Directory.Exists(_applicationSettings.DownloadedImagesDirectory))
                {
                    Directory.CreateDirectory(_applicationSettings.DownloadedImagesDirectory);
                }

                if (!Directory.Exists(_applicationSettings.DownloadedWebPagesDirectory))
                {
                    Directory.CreateDirectory(_applicationSettings.DownloadedWebPagesDirectory);
                }

                QueryProcessor = new QueryProcessor <TArachnodeDAO>();

                _consoleManager.OutputString("Crawler: Initializing Configuration/Database Connection.", ConsoleColor.White, ConsoleColor.Gray);

                LoadCrawlActions(_arachnodeDAO);
                LoadCrawlRules(_arachnodeDAO);

                AreRenderersEnabled = enableRenderers;

                Engine = new Engine <TArachnodeDAO>(_applicationSettings, _webSettings, this, _cache, _actionManager, _cacheManager, _consoleManager, _cookieManager, _crawlRequestManager, _dataTypeManager, _discoveryManager, _encodingManager, _htmlManager, _memoryManager, _politenessManager, _proxyManager, _reportingManager, _ruleManager, enableRenderers, (TArachnodeDAO)Activator.CreateInstance(typeof(TArachnodeDAO), _applicationSettings.ConnectionString, _applicationSettings, _webSettings, true, true));

                CrawlMode = crawlMode;

                /**/

                if (CrawlerPeerManager != null && CrawlerPeerManager.CrawlerPeers != null && CrawlerPeerManager.CrawlerPeers.Count != 0)
                {
                    ConsoleManager.OutputString("Crawler: Starting CrawlerPeerManager Server", ConsoleColor.White, ConsoleColor.Gray);

                    CrawlerPeerManager.StartServer(this, _arachnodeDAO);

                    _crawlerPeerManager.SendStatusMessageToCrawlerPeers(_arachnodeDAO);
                }

                /**/

                if (Debugger.IsAttached)
                {
                    _consoleManager.OutputString("Debugger: Attached - Expect Performance Degradation.", ConsoleColor.Yellow, ConsoleColor.Gray);
                }

                //update all core/components/managers with the updated ApplicationSettings...
#if DEMO
                Engine.CrawlRequestCompleted += Engine_CrawlRequestCompleted;

                _stopwatch.Start();
#endif
            }
            catch (InvalidConfigurationException invalidConfigurationException)
            {
                ProcessException(invalidConfigurationException);

                throw new InvalidConfigurationException(invalidConfigurationException.ApplicationSettings, invalidConfigurationException.WebSettings, invalidConfigurationException.Message, InvalidConfigurationExceptionSeverity.Error);
            }
            catch (Exception exception)
            {
                ProcessException(exception);

                throw new Exception(exception.Message, exception);
            }
        }
Esempio n. 27
0
 public CoreEsp8266()
 {
     UdpManager        = new UdpManager();
     DiscoveryManager  = new DiscoveryManager(UdpManager);
     DescriptorManager = new DescriptorManager(UdpManager);
 }
        /// <summary>
        /// Invoked when the application is launched normally by the end user.  Other entry points
        /// will be used such as when the application is launched to open a specific file.
        /// </summary>
        /// <param name="e">Details about the launch request and process.</param>
        protected override void OnLaunched(LaunchActivatedEventArgs e)
        {
#if DEBUG
            if (System.Diagnostics.Debugger.IsAttached)
            {
                DebugSettings.EnableFrameRateCounter = true;
            }
#endif

            var rootFrame = Window.Current.Content as Frame;

            // Do not repeat app initialization when the Window already has content,
            // just ensure that the window is active
            if (rootFrame == null)
            {
                // Create a Frame to act as the navigation context and navigate to the first page
                rootFrame = new Frame();

                rootFrame.NavigationFailed += OnNavigationFailed;

                if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
                {
                    //TODO: Load state from previously suspended application
                }

                // Place the frame in the current Window
                Window.Current.Content = rootFrame;
            }

            Microsoft.VisualStudio.TestPlatform.TestExecutor.UnitTestClient.CreateDefaultUI();

            // Ensure the current window is active
            Window.Current.Activate();

            //Microsoft.VisualStudio.TestPlatform.TestExecutor.UnitTestClient.Run(e.Arguments);
            var dm = new DiscoveryManager(new RequestData()
            {
                IsTelemetryOptedIn = false,
                ProtocolConfig     = new ProtocolConfig
                {
                    Version = 2
                },
                MetricsCollection = new NoOpMetricsCollection()
            });


            // Adapter output location
#if DEBUG
            var source = "entrypoint\\test.harness.uwp.exe";
#else
            var source = "test.harness.uwp.exe";
#endif

            var adapterPath = Path.Combine(Package.Current.InstalledLocation.Path, "xunit.runner.visualstudio.uwp.testadapter.dll");


            var hander = new MockTestDiscoveryEventHandler();

            var criteria = new DiscoveryCriteria(new[] { "" }, long.MaxValue, string.Empty);;
            criteria.AdapterSourceMap.Clear();
            criteria.AdapterSourceMap.Add(adapterPath, new[] { source });

            hander.OnDiscoveryCompleted += (sender, args) =>
            {
                // Run
                var em1 = new ExecutionManager(new RequestData()
                {
                    IsTelemetryOptedIn = false,
                    ProtocolConfig     = new ProtocolConfig
                    {
                        Version = 2
                    },
                    MetricsCollection = new NoOpMetricsCollection()
                });

                // Run Specific tests
                em1.Initialize(new[] { adapterPath });
                var tec1 = new TestExecutionContext();
                em1.StartTestRun(hander.TestCases, "", "", tec1, new MockTestCaseEventsHandler(), new MockRunEventsHandler());
            };



            dm.DiscoverTests(criteria, hander);


            //Run All -- Not working yet

            //var em = new ExecutionManager(new RequestData()
            //{
            //    IsTelemetryOptedIn = false,
            //    ProtocolConfig = new ProtocolConfig
            //    {
            //        Version = 2
            //    },
            //    MetricsCollection = new NoOpMetricsCollection()
            //});



            // var tec = new TestExecutionContext();
            // em.Initialize(new[] { adapterPath });
            //em.StartTestRun(criteria.AdapterSourceMap, "", "", tec, new MockTestCaseEventsHandler(), new MockRunEventsHandler());
        }
Esempio n. 29
0
        private void InitDiscovery()
        {
            if (!_initConfig.DiscoveryEnabled)
            {
                _discoveryApp = new NullDiscoveryApp();
                return;
            }

            INetworkConfig networkConfig = _configProvider.GetConfig <INetworkConfig>();

            networkConfig.MasterPort = _initConfig.DiscoveryPort;

            var privateKeyProvider      = new SameKeyGenerator(_nodeKey);
            var discoveryMessageFactory = new DiscoveryMessageFactory(networkConfig, _timestamp);
            var nodeIdResolver          = new NodeIdResolver(_ecdsa);

            IDiscoveryMsgSerializersProvider msgSerializersProvider = new DiscoveryMsgSerializersProvider(
                _messageSerializationService,
                _ecdsa,
                privateKeyProvider,
                discoveryMessageFactory,
                nodeIdResolver);

            msgSerializersProvider.RegisterDiscoverySerializers();

            var nodeDistanceCalculator = new NodeDistanceCalculator(networkConfig);

            var nodeTable = new NodeTable(
                _keyStore,
                nodeDistanceCalculator,
                networkConfig,
                _logManager);

            var evictionManager = new EvictionManager(
                nodeTable,
                _logManager);

            var nodeLifeCycleFactory = new NodeLifecycleManagerFactory(
                nodeTable,
                discoveryMessageFactory,
                evictionManager,
                _nodeStatsManager,
                networkConfig,
                _logManager);

            var discoveryStorage = new NetworkStorage(
                DiscoveryNodesDbPath,
                networkConfig,
                _logManager,
                _perfService);

            var discoveryManager = new DiscoveryManager(
                nodeLifeCycleFactory,
                nodeTable,
                discoveryStorage,
                networkConfig,
                _logManager);

            var nodesLocator = new NodesLocator(
                nodeTable,
                discoveryManager,
                _configProvider,
                _logManager);

            _discoveryApp = new DiscoveryApp(
                nodesLocator,
                discoveryManager,
                nodeTable,
                _messageSerializationService,
                _cryptoRandom,
                discoveryStorage,
                networkConfig,
                _logManager, _perfService);

            _discoveryApp.Initialize(_nodeKey.PublicKey);
        }
Esempio n. 30
0
 public void TestInit()
 {
     this.discoveryManager = new DiscoveryManager();
 }