fix some WebGUI::Paths stuff, multi-site plackup
This commit is contained in:
parent
8c3ecce95f
commit
cd9afc78b9
5 changed files with 60 additions and 76 deletions
|
|
@ -48,7 +48,6 @@ These subroutines are available from this package:
|
|||
|
||||
=cut
|
||||
|
||||
has root => ( is => 'ro', isa => 'Str', default => '/data/WebGUI' );
|
||||
has site => ( is => 'ro', isa => 'Str', default => 'dev.localhost.localdomain.conf' );
|
||||
has config => ( is => 'rw', isa => 'WebGUI::Config' );
|
||||
|
||||
|
|
@ -75,7 +74,7 @@ sub BUILD {
|
|||
$self->config($config);
|
||||
}
|
||||
|
||||
sub psgi_app {
|
||||
sub to_app {
|
||||
my $self = shift;
|
||||
return $self->{psgi_app} ||= $self->compile_psgi_app;
|
||||
}
|
||||
|
|
@ -83,10 +82,6 @@ sub psgi_app {
|
|||
sub compile_psgi_app {
|
||||
my $self = shift;
|
||||
|
||||
# Preload all modules in the master (parent) thread before the Server does any
|
||||
# child forking. This should save a lot of memory in copy-on-write friendly environments.
|
||||
$self->preload;
|
||||
|
||||
# WebGUI is a PSGI app is a Perl code reference. Let's create one.
|
||||
# Each web request results in a call to this sub
|
||||
return sub {
|
||||
|
|
@ -143,11 +138,6 @@ sub compile_psgi_app {
|
|||
};
|
||||
}
|
||||
|
||||
|
||||
sub preload {
|
||||
WebGUI::Paths->preloadAll;
|
||||
}
|
||||
|
||||
sub handle {
|
||||
my ( $session ) = @_;
|
||||
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ sub call {
|
|||
|
||||
my $app = $self->app;
|
||||
weaken $self->{config};
|
||||
|
||||
|
||||
my $config = $self->config or die 'Mandatory config parameter missing';
|
||||
|
||||
# Logger fallback
|
||||
|
|
@ -46,7 +46,7 @@ sub call {
|
|||
}
|
||||
|
||||
my $session = try {
|
||||
$env->{'webgui.session'} = WebGUI::Session->open( $config->getWebguiRoot, $config, $env );
|
||||
$env->{'webgui.session'} = WebGUI::Session->open( $config, $env );
|
||||
} catch {
|
||||
# We don't have a logger object, so for now just warn() the error
|
||||
warn "Unable to instantiate WebGUI::Session - $_";
|
||||
|
|
|
|||
|
|
@ -201,7 +201,7 @@ Returns the list of modules to exclude from preloading as an array.
|
|||
|
||||
sub preloadExclude {
|
||||
my $class = shift;
|
||||
my @excludes = _readTextLines($class->preloadExclude);
|
||||
my @excludes = _readTextLines($class->preloadExclusions);
|
||||
return @excludes;
|
||||
}
|
||||
|
||||
|
|
@ -217,8 +217,9 @@ sub preloadAll {
|
|||
|
||||
require WebGUI::Pluggable;
|
||||
|
||||
my @exclusions = $class->preloadExclude;
|
||||
WebGUI::Pluggable::findAndLoad( 'WebGUI', {
|
||||
exclude => \( $class->preloadExclude ),
|
||||
exclude => \@exclusions,
|
||||
onLoadFail => sub { warn sprintf "Error loading %s: %s\n", @_ },
|
||||
});
|
||||
}
|
||||
|
|
@ -226,7 +227,7 @@ sub preloadAll {
|
|||
sub _readTextLines {
|
||||
my $file = shift;
|
||||
my @lines;
|
||||
open my $fh, '<', $file or croak "Cannot open $file: $!";
|
||||
open my $fh, '<', $file or return;
|
||||
while (my $line = <$fh>) {
|
||||
$line =~ s/#.*//;
|
||||
$line =~ s/^\s+//;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue