summaryrefslogtreecommitdiffstats
path: root/Bugzilla.pm
diff options
context:
space:
mode:
authorDylan William Hardison <dylan@hardison.net>2017-03-27 15:56:14 +0200
committerDylan William Hardison <dylan@hardison.net>2017-03-27 17:18:19 +0200
commit15daaf123635c1e734dfe6e3aed60f52df0364ce (patch)
treec4823e177859f5b69a68017635bbd29491ceec90 /Bugzilla.pm
parent08c0187b591bb1bb4248382a8106a450c9b359e3 (diff)
downloadbugzilla-15daaf123635c1e734dfe6e3aed60f52df0364ce.tar.gz
bugzilla-15daaf123635c1e734dfe6e3aed60f52df0364ce.tar.xz
Bug 1350466 - Uplift bug 1342832 to bmo for performance and other reasons
Diffstat (limited to 'Bugzilla.pm')
-rw-r--r--Bugzilla.pm37
1 files changed, 3 insertions, 34 deletions
diff --git a/Bugzilla.pm b/Bugzilla.pm
index bd410364e..1f8d9d800 100644
--- a/Bugzilla.pm
+++ b/Bugzilla.pm
@@ -33,12 +33,12 @@ use Bugzilla::Flag;
use Bugzilla::Hook;
use Bugzilla::Install::Localconfig qw(read_localconfig);
use Bugzilla::Install::Util qw(init_console include_languages);
-use Bugzilla::Install::Requirements qw(load_cpan_meta check_cpan_feature);
use Bugzilla::Memcached;
use Bugzilla::Template;
use Bugzilla::Token;
use Bugzilla::User;
use Bugzilla::Util;
+use Bugzilla::CPAN;
use Bugzilla::Metrics::Collector;
use Bugzilla::Metrics::Template;
@@ -52,6 +52,8 @@ use File::Spec::Functions;
use Safe;
use Sys::Syslog qw(:DEFAULT);
+use parent qw(Bugzilla::CPAN);
+
#####################################################################
# Constants
#####################################################################
@@ -252,39 +254,6 @@ sub extensions {
return $cache->{extensions};
}
-sub feature {
- my ($class, $feature_name) = @_;
- return 0 unless CAN_HAS_FEATURE;
- return 0 unless $class->has_feature($feature_name);
-
- my $cache = $class->process_cache;
- my $feature = $cache->{cpan_meta}->feature($feature_name);
- # Bugzilla expects this will also load all the modules.. so we have to do that.
- # Later we should put a deprecation warning here, and favor calling has_feature().
-
- return 1 if $cache->{feature_loaded}{$feature_name};
- my @modules = $feature->prereqs->merged_requirements->required_modules;
- Module::Runtime::require_module($_) foreach @modules;
- $cache->{feature_loaded}{$feature_name} = 1;
- return 1;
-}
-
-sub has_feature {
- my ($class, $feature_name) = @_;
-
- return 0 unless CAN_HAS_FEATURE;
-
- my $cache = $class->process_cache;
- return $cache->{feature}->{$feature_name}
- if exists $cache->{feature}->{$feature_name};
-
- my $meta = $cache->{cpan_meta} //= load_cpan_meta();
- my $feature = eval { $meta->feature($feature_name) }
- or ThrowCodeError('invalid_feature', { feature => $feature_name });
-
- return $cache->{feature}{$feature_name} = check_cpan_feature($feature)->{ok};
-}
-
sub cgi {
return $_[0]->request_cache->{cgi} ||= new Bugzilla::CGI();
}