jenkins-bot has submitted this change and it was merged.

Change subject: Add getStatsdDataFactory to MediawikiServices
......................................................................


Add getStatsdDataFactory to MediawikiServices

Change-Id: Iaf89d5d7887f766064266874ea7ba73362531ed2
---
M includes/DefaultSettings.php
M includes/MediaWikiServices.php
M includes/ServiceWiring.php
M includes/context/ContextSource.php
M includes/context/DerivativeContext.php
M includes/context/IContextSource.php
M includes/context/RequestContext.php
M tests/phpunit/includes/MediaWikiServicesTest.php
8 files changed, 40 insertions(+), 25 deletions(-)

Approvals:
  Daniel Kinzler: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/includes/DefaultSettings.php b/includes/DefaultSettings.php
index 10e6adb..f5b3caa 100644
--- a/includes/DefaultSettings.php
+++ b/includes/DefaultSettings.php
@@ -5896,7 +5896,7 @@
 /**
  * Prefix for metric names sent to $wgStatsdServer.
  *
- * @see RequestContext::getStats
+ * @see MediaWikiServices::getStatsdDataFactory
  * @see BufferingStatsdDataFactory
  * @since 1.25
  */
diff --git a/includes/MediaWikiServices.php b/includes/MediaWikiServices.php
index 7b1def9..3f4d8ed 100644
--- a/includes/MediaWikiServices.php
+++ b/includes/MediaWikiServices.php
@@ -6,6 +6,7 @@
 use Config;
 use Hooks;
 use LBFactory;
+use Liuggio\StatsdClient\Factory\StatsdDataFactory;
 use LoadBalancer;
 use MediaWiki\Services\ServiceContainer;
 use SiteLookup;
@@ -144,6 +145,13 @@
                return $this->getService( 'SiteStore' );
        }
 
+       /**
+        * @return StatsdDataFactory
+        */
+       public function getStatsdDataFactory() {
+               return $this->getService( 'StatsdDataFactory' );
+       }
+
        
///////////////////////////////////////////////////////////////////////////
        // NOTE: When adding a service getter here, don't forget to add a test
        // case for it in MediaWikiServicesTest::provideGetters() and in
diff --git a/includes/ServiceWiring.php b/includes/ServiceWiring.php
index d8709b9..7e1d4e3 100644
--- a/includes/ServiceWiring.php
+++ b/includes/ServiceWiring.php
@@ -72,6 +72,12 @@
                return $services->getConfigFactory()->makeConfig( 'main' );
        },
 
+       'StatsdDataFactory' => function( MediaWikiServices $services ) {
+               return new BufferingStatsdDataFactory(
+                       rtrim( $services->getMainConfig()->get( 
'StatsdMetricPrefix' ), '.' )
+               );
+       },
+
        
///////////////////////////////////////////////////////////////////////////
        // NOTE: When adding a service here, don't forget to add a getter 
function
        // in the MediaWikiServices class. The convenience getter should just 
call
diff --git a/includes/context/ContextSource.php 
b/includes/context/ContextSource.php
index 911ecdd..b617871 100644
--- a/includes/context/ContextSource.php
+++ b/includes/context/ContextSource.php
@@ -18,6 +18,8 @@
  * @author Happy-melon
  * @file
  */
+use Liuggio\StatsdClient\Factory\StatsdDataFactory;
+use MediaWiki\MediaWikiServices;
 
 /**
  * The simplest way of implementing IContextSource is to hold a RequestContext 
as a
@@ -165,8 +167,10 @@
        /**
         * Get the Stats object
         *
+        * @deprecated since 1.27 use a StatsdDataFactory from 
MediaWikiServices (preferably injected)
+        *
         * @since 1.25
-        * @return BufferingStatsdDataFactory
+        * @return StatsdDataFactory
         */
        public function getStats() {
                return $this->getContext()->getStats();
diff --git a/includes/context/DerivativeContext.php 
b/includes/context/DerivativeContext.php
index 1b881e4..e77a058 100644
--- a/includes/context/DerivativeContext.php
+++ b/includes/context/DerivativeContext.php
@@ -18,6 +18,8 @@
  * @author Daniel Friesen
  * @file
  */
+use Liuggio\StatsdClient\Factory\StatsdDataFactory;
+use MediaWiki\MediaWikiServices;
 
 /**
  * An IContextSource implementation which will inherit context from another 
source
@@ -68,11 +70,6 @@
        private $config;
 
        /**
-        * @var Stats
-        */
-       private $stats;
-
-       /**
         * @var Timing
         */
        private $timing;
@@ -110,14 +107,12 @@
        /**
         * Get the stats object
         *
-        * @return BufferingStatsdDataFactory
+        * @deprecated since 1.27 use a StatsdDataFactory from 
MediaWikiServices (preferably injected)
+        *
+        * @return StatsdDataFactory
         */
        public function getStats() {
-               if ( !is_null( $this->stats ) ) {
-                       return $this->stats;
-               } else {
-                       return $this->getContext()->getStats();
-               }
+               return MediaWikiServices::getInstance()->getStatsdDataFactory();
        }
 
        /**
diff --git a/includes/context/IContextSource.php 
b/includes/context/IContextSource.php
index 750389d..ccefc72 100644
--- a/includes/context/IContextSource.php
+++ b/includes/context/IContextSource.php
@@ -21,6 +21,8 @@
  * @file
  */
 
+use Liuggio\StatsdClient\Factory\StatsdDataFactory;
+
 /**
  * Interface for objects which can provide a MediaWiki context on request
  *
@@ -126,8 +128,10 @@
        /**
         * Get the stats object
         *
+        * @deprecated since 1.27 use a StatsdDataFactory from 
MediaWikiServices (preferably injected)
+        *
         * @since 1.25
-        * @return BufferingStatsdDataFactory
+        * @return StatsdDataFactory
         */
        public function getStats();
 
diff --git a/includes/context/RequestContext.php 
b/includes/context/RequestContext.php
index c8b8108..c87798e 100644
--- a/includes/context/RequestContext.php
+++ b/includes/context/RequestContext.php
@@ -22,7 +22,9 @@
  * @file
  */
 
+use Liuggio\StatsdClient\Factory\StatsdDataFactory;
 use MediaWiki\Logger\LoggerFactory;
+use MediaWiki\MediaWikiServices;
 
 /**
  * Group all the pieces relevant to the context of a request into one instance
@@ -62,11 +64,6 @@
         * @var Skin
         */
        private $skin;
-
-       /**
-        * @var \Liuggio\StatsdClient\Factory\StatsdDataFactory
-        */
-       private $stats;
 
        /**
         * @var Timing
@@ -138,14 +135,12 @@
        /**
         * Get the Stats object
         *
-        * @return BufferingStatsdDataFactory
+        * @deprecated since 1.27 use a StatsdDataFactory from 
MediaWikiServices (preferably injected)
+        *
+        * @return StatsdDataFactory
         */
        public function getStats() {
-               if ( $this->stats === null ) {
-                       $prefix = rtrim( $this->getConfig()->get( 
'StatsdMetricPrefix' ), '.' );
-                       $this->stats = new BufferingStatsdDataFactory( $prefix 
);
-               }
-               return $this->stats;
+               return MediaWikiServices::getInstance()->getStatsdDataFactory();
        }
 
        /**
diff --git a/tests/phpunit/includes/MediaWikiServicesTest.php 
b/tests/phpunit/includes/MediaWikiServicesTest.php
index 127f869..1889575 100644
--- a/tests/phpunit/includes/MediaWikiServicesTest.php
+++ b/tests/phpunit/includes/MediaWikiServicesTest.php
@@ -1,4 +1,5 @@
 <?php
+use Liuggio\StatsdClient\Factory\StatsdDataFactory;
 use MediaWiki\MediaWikiServices;
 
 /**
@@ -23,6 +24,7 @@
                        'MainConfig' => [ 'getMainConfig', Config::class ],
                        'SiteStore' => [ 'getSiteStore', SiteStore::class ],
                        'SiteLookup' => [ 'getSiteLookup', SiteLookup::class ],
+                       'StatsdDataFactory' => [ 'getStatsdDataFactory', 
StatsdDataFactory::class ],
                ];
        }
 
@@ -46,6 +48,7 @@
                        'MainConfig' => [ 'MainConfig', Config::class ],
                        'SiteStore' => [ 'SiteStore', SiteStore::class ],
                        'SiteLookup' => [ 'SiteLookup', SiteLookup::class ],
+                       'StatsdDataFactory' => [ 'StatsdDataFactory', 
StatsdDataFactory::class ],
                ];
        }
 

-- 
To view, visit https://gerrit.wikimedia.org/r/282740
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Iaf89d5d7887f766064266874ea7ba73362531ed2
Gerrit-PatchSet: 7
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Addshore <[email protected]>
Gerrit-Reviewer: Addshore <[email protected]>
Gerrit-Reviewer: Daniel Kinzler <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to