Example #1
0
        public SuperSocketService(IServiceProvider serviceProvider, IOptions <ServerOptions> serverOptions, ILoggerFactory loggerFactory, IChannelCreatorFactory channelCreatorFactory)
        {
            _serverOptions         = serverOptions;
            Name                   = serverOptions.Value.Name;
            _serviceProvider       = serviceProvider;
            _pipelineFilterFactory = GetPipelineFilterFactory();
            _serverOptions         = serverOptions;
            _loggerFactory         = loggerFactory;
            _logger                = _loggerFactory.CreateLogger("SuperSocketService");
            _channelCreatorFactory = channelCreatorFactory;
            _packageHandler        = serviceProvider.GetService <IPackageHandler <TReceivePackageInfo> >();
            _errorHandler          = serviceProvider.GetService <Func <IAppSession, PackageHandlingException <TReceivePackageInfo>, ValueTask <bool> > >();
            _sessionHandlers       = serviceProvider.GetService <SessionHandlers>();

            if (_errorHandler == null)
            {
                _errorHandler = OnSessionErrorAsync;
            }

            // initialize session factory
            _sessionFactory = serviceProvider.GetService <ISessionFactory>();

            if (_sessionFactory == null)
            {
                _sessionFactory = new DefaultSessionFactory();
            }


            InitializeMiddlewares();
        }
Example #2
0
        public SuperSocketService(IServiceProvider serviceProvider, IOptions <ServerOptions> serverOptions, IChannelCreatorFactory channelCreatorFactory)
        {
            var serverOptionsValue = IocUnity.Get <ServerOptions>();

            _serverOptions = new ServerConfigOptions <ServerOptions>(serverOptionsValue);
            //_serverOptions = serverOptions;
            Name                   = serverOptions.Value.Name;
            _serviceProvider       = serviceProvider;
            _pipelineFilterFactory = GetPipelineFilterFactory();

            _channelCreatorFactory = channelCreatorFactory;
            _packageHandler        = serviceProvider.GetService <IPackageHandler <TSessionData, TReceivePackageInfo> >();
            _errorHandler          = serviceProvider.GetService <Func <IAppSession <TSessionData>, PackageHandlingException <TReceivePackageInfo>, ValueTask <bool> > >();
            _sessionHandlers       = serviceProvider.GetService <SessionHandlers <TSessionData> >();

            if (_errorHandler == null)
            {
                _errorHandler = OnSessionErrorAsync;
            }

            // initialize session factory
            _sessionFactory = serviceProvider.GetService <ISessionFactory <TSessionData> >();

            if (_sessionFactory == null)
            {
                _sessionFactory = new DefaultSessionFactory <TSessionData>();
            }


            InitializeMiddlewares();
        }
Example #3
0
        private async Task <List <GitChange> > GetChanges(Guid repoId, IPackageHandler handler, string packageVersion, GitVersionDescriptor versionRef, IEnumerable <GitItem> items)
        {
            var changes = new List <GitChange>();

            foreach (var item in items)
            {
                var shouldUpdate = await handler.ShouldUpdate(item.Path).ConfigureAwait(false);

                if (shouldUpdate)
                {
                    var itemRef = await _gitClient.GetItemContentAsync(repoId, item.Path, includeContent : true, versionDescriptor : versionRef).ConfigureAwait(false);

                    var oldContent = await itemRef.GetContent().ConfigureAwait(false);

                    var newContent = await handler.Update(oldContent, packageVersion).ConfigureAwait(false);

                    if (!string.Equals(oldContent, newContent))
                    {
                        changes.Add(CreateChange(item.Path, newContent));
                        Log($"Item content of {item.Path} received and changed.");
                    }
                }
            }

            return(changes);
        }
 public WebSocketPackageHandler(IServiceProvider serviceProvider)
 {
     _serviceProvider            = serviceProvider;
     _websocketCommandMiddleware = serviceProvider
                                   .GetServices <IMiddleware>()
                                   .OfType <IWebSocketCommandMiddleware>()
                                   .FirstOrDefault() as IPackageHandler <WebSocketPackage>;
 }
Example #5
0
        public static IRequestHandler GetRequestHandler(IPackageHandler packageHandler)
        {
            if (IRequestHandler == null)
                return new RequestHandler(packageHandler);

            IRequestHandler.Init(packageHandler);
            return IRequestHandler;
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="DefaultPipelineProcessor{TPackageInfo}"/> class.
 /// </summary>
 /// <param name="packageHandler">The package handler.</param>
 /// <param name="receiveFilter">The initializing receive filter.</param>
 /// <param name="maxPackageLength">The max package size.</param>
 /// <param name="bufferRecycler">The buffer recycler.</param>
 public DefaultPipelineProcessor(IPackageHandler <TPackageInfo> packageHandler, IReceiveFilter <TPackageInfo> receiveFilter, int maxPackageLength = 0, IBufferRecycler bufferRecycler = null)
 {
     m_PackageHandler   = packageHandler;
     m_ReceiveFilter    = receiveFilter;
     m_BufferRecycler   = bufferRecycler ?? s_NullBufferRecycler;
     m_ReceiveCache     = new BufferList();
     m_MaxPackageLength = maxPackageLength;
 }
        public CommandSubProtocolHandler(string name, IServiceProvider serviceProvider, IOptions <CommandOptions> commandOptions, IPackageMapper <WebSocketPackage, TPackageInfo> mapper)
            : base(name)
        {
            var keyType = CommandMiddlewareExtensions.GetKeyType <TPackageInfo>();
            var commandMiddlewareType = typeof(WebSocketCommandMiddleware <,>).MakeGenericType(keyType, typeof(TPackageInfo));

            _commandMiddleware = Activator.CreateInstance(commandMiddlewareType, serviceProvider, commandOptions, mapper) as IPackageHandler <WebSocketPackage>;
        }
        private void InitializeMiddlewares()
        {
            _middlewares = _serviceProvider.GetServices <IMiddleware>().ToArray();

            if (_packageHandler == null)
            {
                _packageHandler = _middlewares.OfType <IPackageHandler <TReceivePackageInfo> >().FirstOrDefault();
            }
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="BasePackageHandler"/> class.
        /// </summary>
        /// <param name="successor">The successor</param>
        protected BasePackageHandler(IPackageHandler successor)
        {
            this.Successor = successor ?? throw new ArgumentNullException(nameof(successor));
            if (successor.Package == null)
            {
                throw new ArgumentException("successor.Package must not be null");
            }

            this.Package = this.Successor.Package;
        }
        public WebSocketPackageHandler(IServiceProvider serviceProvider)
        {
            _serviceProvider = serviceProvider;

            _websocketCommandMiddleware = serviceProvider
                                          .GetService <IWebSocketCommandMiddleware>() as IPackageHandler <WebSocketPackage>;

            _packageHandlerDelegate = serviceProvider.GetService <Func <WebSocketSession, WebSocketPackage, Task> >();
            _subProtocolSelector    = serviceProvider.GetService <ISubProtocolSelector>();
        }
Example #11
0
        public static IRequestHandler GetRequestHandler(IPackageHandler packageHandler)
        {
            if (IRequestHandler == null)
            {
                return(new RequestHandler(packageHandler));
            }

            IRequestHandler.Init(packageHandler);
            return(IRequestHandler);
        }
 /// <summary>
 ///     Initializes a new instance of the <see cref="RepositoryManager" /> class.
 /// </summary>
 /// <param name="repositoryDataAccess">The repository data access.</param>
 /// <param name="packageValidator">A validation engine to validate the package.</param>
 /// <param name="handler">A handler that creates the arelda metadata XML</param>
 /// <param name="parameterHelper">Class to read settings parameters</param>
 public RepositoryManager(IRepositoryDataAccess repositoryDataAccess, IPackageValidator packageValidator, IPackageHandler handler,
                          IParameterHelper parameterHelper, IBus bus)
 {
     this.repositoryDataAccess = repositoryDataAccess;
     this.packageValidator     = packageValidator;
     this.handler         = handler;
     this.bus             = bus;
     syncSettings         = parameterHelper.GetSetting <RepositorySyncSettings>();
     ignoredFilenameRegex = syncSettings.IgnorierteDateinamenRegex.Split('\n').Select(s => s.Trim()).ToList();
 }
Example #13
0
        public WebSocketPackageHandler(IServiceProvider serviceProvider)
        {
            _serviceProvider = serviceProvider;

            _websocketCommandMiddleware = serviceProvider
                                          .GetServices <IMiddleware>()
                                          .OfType <IWebSocketCommandMiddleware>()
                                          .FirstOrDefault() as IPackageHandler <WebSocketPackage>;

            _packageHandlerDelegate = serviceProvider.GetService <Func <WebSocketSession, WebSocketPackage, Task> >();
        }
        public WebSocketPackageHandler(IServiceProvider serviceProvider, ILoggerFactory loggerFactory, IOptions <HandshakeOptions> handshakeOptions)
        {
            _serviceProvider = serviceProvider;

            _websocketCommandMiddleware = serviceProvider
                                          .GetService <IWebSocketCommandMiddleware>() as IPackageHandler <WebSocketPackage>;

            _subProtocolHandlers    = serviceProvider.GetServices <ISubProtocolHandler>().ToDictionary(h => h.Name, StringComparer.OrdinalIgnoreCase);
            _packageHandlerDelegate = serviceProvider.GetService <Func <WebSocketSession, WebSocketPackage, ValueTask> >();
            _logger           = loggerFactory.CreateLogger <WebSocketPackageHandler>();
            _handshakeOptions = handshakeOptions.Value;
        }
        public WebSocketPackageHandler(IServiceProvider serviceProvider, ILoggerFactory loggerFactory, IOptions <HandshakeOptions> handshakeOptions)
        {
            _serviceProvider = serviceProvider;

            _websocketCommandMiddleware = serviceProvider
                                          .GetService <IWebSocketCommandMiddleware>() as IPackageHandler <WebSocketPackage>;

            _packageHandlerDelegate = serviceProvider.GetService <Func <WebSocketSession, WebSocketPackage, Task> >();
            _subProtocolSelector    = serviceProvider.GetService <ISubProtocolSelector>();
            _logger           = loggerFactory.CreateLogger <WebSocketPackageHandler>();
            _handshakeOptions = handshakeOptions.Value;
        }
        private void InitializeMiddlewares()
        {
            _middlewares = _serviceProvider.GetServices <IMiddleware>().ToArray();

            foreach (var m in _middlewares)
            {
                m.Register(this);
            }

            if (_packageHandler == null)
            {
                _packageHandler = _middlewares.OfType <IPackageHandler <TReceivePackageInfo> >().FirstOrDefault();
            }
        }
Example #17
0
        public void HandlerPackage(JSNPackageIn pkg)
        {
            if (pkg == null)
            {
                log.Error("Package can not null!");
                return;
            }

            int             code    = pkg.Code;
            IPackageHandler handler = null;

            if (m_packagesHandlers.ContainsKey(code))
            {
                handler = m_packagesHandlers[code];
            }
            else
            {
                log.ErrorFormat("Receive package's code is not exists! Code: {0}", code);
                log.Error(Marshal.ToHexDump(string.Format("Code: {0}", code), pkg.Buffer));
            }

            if (handler == null)
            {
                return;
            }

            long timeUsed = Environment.TickCount;

            try
            {
                handler.HandlePacket(m_client, pkg);
            }
            catch (Exception ex)
            {
                string ep = m_client.Socket.RemoteEndPoint;
                log.ErrorFormat("Error while processing package (handler={0}   RemoteEndPoint={1})", handler.GetType().FullName, ep);
                log.Error("Handle package error!", ex);
            }

            timeUsed = Environment.TickCount - timeUsed;

            log.InfoFormat("Package process time: {0}ms", timeUsed);

            if (timeUsed > 1000)
            {
                string source = m_client.Socket.RemoteEndPoint;
                log.WarnFormat("({0}) Handle package thread {1} {2} took {3}ms!", source, System.Threading.Thread.CurrentThread.ManagedThreadId, handler, timeUsed);
            }
        }
Example #18
0
        private void InitializeMiddlewares()
        {
            _middlewares = _serviceProvider.GetServices <IMiddleware>()
                           .OrderBy(m => m.Order)
                           .ToArray();

            foreach (var m in _middlewares)
            {
                m.Start(this);
            }

            if (_packageHandler == null)
            {
                _packageHandler = _middlewares.OfType <IPackageHandler <TSessionData, TReceivePackageInfo> >().FirstOrDefault();
            }
        }
Example #19
0
        public static void Teardown()
        {
            _iPackageHandler     = null;
            _iRequestHandler     = null;
            _iAttributionHandler = null;
            _logger = null;
            _httpMessageHandler?.Dispose();
            _httpMessageHandler             = null;
            _packageHandlerBackoffStrategy  = null;
            _sdkClickHandlerBackoffStrategy = null;

            _timerInterval      = DefaultTimerInterval;
            _timerStart         = DefaultTimerStart;
            _sessionInterval    = DefaultSessionInterval;
            _subsessionInterval = DefaultSubsessionInterval;
            _maxDelayStart      = DefaultMaxDelayStart;
            _baseUrl            = Constants.BASE_URL;
        }
Example #20
0
        public SuperSocketService(IServiceProvider serviceProvider, IOptions <ServerOptions> serverOptions, ILoggerFactory loggerFactory, IChannelCreatorFactory channelCreatorFactory)
        {
            _serverOptions         = serverOptions;
            Name                   = serverOptions.Value.Name;
            _serviceProvider       = serviceProvider;
            _pipelineFilterFactory = GetPipelineFilterFactory();
            _serverOptions         = serverOptions;
            _loggerFactory         = loggerFactory;
            _logger                = _loggerFactory.CreateLogger("SuperSocketService");
            _channelCreatorFactory = channelCreatorFactory;
            _packageHandler        = serviceProvider.GetService <IPackageHandler <TReceivePackageInfo> >();

            // initialize session factory
            _sessionFactory = serviceProvider.GetService <ISessionFactory>();

            if (_sessionFactory == null)
            {
                _sessionFactory = new DefaultSessionFactory();
            }


            InitializeMiddlewares();
        }
Example #21
0
        public async Task <List <int> > UpdateReferencesAndCreatePullRequests(IPackageHandler handler, string packageVersion)
        {
            var results         = new List <int>();
            var allRepositories = await _gitClient.GetRepositoriesAsync(_projectId).ConfigureAwait(false);

            Log($"Received repository list: {string.Join(", ", allRepositories.Select(m => m.Name))}.");

            foreach (var repo in allRepositories)
            {
                // New repositories have no branches yet -> no default branch
                if (repo.DefaultBranch != null)
                {
                    var branchName = GetBranchName(repo.DefaultBranch);
                    var pr         = await UpdateReferencesAndCreatePullRequest(repo.Name, branchName, handler, packageVersion).ConfigureAwait(false);

                    if (pr.HasValue)
                    {
                        results.Add(pr.Value);
                    }
                }
            }

            return(results);
        }
Example #22
0
 private static void RegisterPacketHandler(int code, IPackageHandler iPackageHandler)
 {
     PackageHandlers.m_packagesHandlers[code] = iPackageHandler;
 }
Example #23
0
 /// <summary>
 /// Initializes a new instance of the <see cref="NugetInstaller"/> class.
 /// </summary>
 /// <param name="successor">The successor with the same package</param>
 public NugetInstaller(IPackageHandler successor)
     : base(successor)
 {
 }
Example #24
0
 public void Init(IPackageHandler packageHandler)
 {
     PackageHandler = packageHandler;
 }
Example #25
0
        public RequestHandler(IPackageHandler packageHandler)
        {
            Logger = AdjustFactory.Logger;

            Init(packageHandler);
        }
Example #26
0
 public void Init(IPackageHandler packageHandler)
 {
     MockLogger.Test("{0} Init", prefix);
 }
Example #27
0
 /// <summary>
 /// Initializes a new instance of the <see cref="NuGetUninstaller"/> class.
 /// </summary>
 /// <param name="successor">The successor with the same package</param>
 public NuGetUninstaller(IPackageHandler successor)
     : base(successor)
 {
 }
Example #28
0
 public static void SetPackageHandler(IPackageHandler packageHandler)
 {
     IPackageHandler = packageHandler;
 }
Example #29
0
        public RequestHandler(IPackageHandler packageHandler)
        {
            Logger = AdjustFactory.Logger;

            Init(packageHandler);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="TargetsUninstaller"/> class.
 /// </summary>
 /// <param name="successor">The successor with the same package</param>
 public TargetsUninstaller(IPackageHandler successor)
     : base(successor)
 {
 }
Example #31
0
 public void Init(IPackageHandler packageHandler)
 {
     PackageHandler = packageHandler;
 }
Example #32
0
 public static void SetPackageHandler(IPackageHandler packageHandler)
 {
     IPackageHandler = packageHandler;
 }
Example #33
0
 private static void RegisterPacketHandler(int code, IPackageHandler iPackageHandler)
 {
     PackageHandlers.m_packagesHandlers[code] = iPackageHandler;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="UserInstallationHandler"/> class.
 /// </summary>
 /// <param name="successor">The successor with the same package</param>
 public UserInstallationHandler(IPackageHandler successor)
     : base(successor)
 {
 }
 public void Initialize(IPackageHandler <TPackageInfo> packageHandler, Func <IAppSession, PackageHandlingException <TPackageInfo>, ValueTask <bool> > errorHandler)
 {
     PackageHandler = packageHandler;
     ErrorHandler   = errorHandler;
 }
Example #36
0
 /// <summary>
 /// Initializes a new instance of the <see cref="BackgroundInstallationHandler"/> class.
 /// </summary>
 /// <param name="successor">The successor with the same package</param>
 public BackgroundInstallationHandler(IPackageHandler successor)
     : base(successor)
 {
 }