diff --git a/lib/WebGUI/Asset.pm b/lib/WebGUI/Asset.pm index 202fab508..3c81459f3 100644 --- a/lib/WebGUI/Asset.pm +++ b/lib/WebGUI/Asset.pm @@ -31,7 +31,6 @@ use WebGUI::AssetVersioning; use strict; use Tie::IxHash; use WebGUI::AdminConsole; -use WebGUI::Cache; use WebGUI::Form; use WebGUI::HTML; use WebGUI::HTMLForm; @@ -1778,8 +1777,7 @@ sub new { return undef unless $revisionDate; } - my $cache = WebGUI::Cache->new($session, ["asset",$assetId,$revisionDate]); - my $properties = $cache->get; + my $properties = $session->cache->get(["asset",$assetId,$revisionDate]); if (exists $properties->{assetId}) { # got properties from cache } @@ -2345,10 +2343,11 @@ sub publish { my $idList = $self->session->db->quoteAndJoin($assetIds); $self->session->db->write("update asset set state='published', stateChangedBy=".$self->session->db->quote($self->session->user->userId).", stateChanged=".$self->session->datetime->time()." where assetId in (".$idList.")"); - my $cache = WebGUI::Cache->new($self->session); foreach my $id (@{$assetIds}) { - # we do the purge directly cuz it's a lot faster than instantiating all these assets - $cache->deleteChunk(["asset",$id]); + my $asset = WebGUI::Asset->newByDynamicClass($self->session, $id); + if (defined $asset) { + $asset->purgeCache; + } } $self->{_properties}{state} = "published"; @@ -2378,7 +2377,7 @@ sub purgeCache { $stow->delete('assetLineage'); $stow->delete('assetClass'); $stow->delete('assetRevision'); - WebGUI::Cache->new($self->session,["asset",$self->getId,$self->get("revisionDate")])->deleteChunk(["asset",$self->getId]); + $self->session->cache->delete(["asset",$self->getId,$self->get("revisionDate")]); } diff --git a/lib/WebGUI/Asset/File.pm b/lib/WebGUI/Asset/File.pm index 5d8922056..260072765 100644 --- a/lib/WebGUI/Asset/File.pm +++ b/lib/WebGUI/Asset/File.pm @@ -17,7 +17,6 @@ package WebGUI::Asset::File; use strict; use base 'WebGUI::Asset'; use Carp; -use WebGUI::Cache; use WebGUI::Storage; use WebGUI::SQL; use WebGUI::Utility; @@ -448,7 +447,7 @@ Extends the master method to clear the view cache. sub purgeCache { my $self = shift; - WebGUI::Cache->new($self->session,"view_".$self->getId)->delete; + $self->session->cache->delete("view_".$self->getId); $self->SUPER::purgeCache; } @@ -608,7 +607,7 @@ Generate the view method for the Asset, and handle caching. sub view { my $self = shift; if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10) { - my $out = WebGUI::Cache->new($self->session,"view_".$self->getId)->get; + my $out = $self->session->cache->get("view_".$self->getId); return $out if $out; } my %var = %{$self->get}; @@ -618,7 +617,7 @@ sub view { $var{fileSize} = formatBytes($self->get("assetSize")); my $out = $self->processTemplate(\%var,undef,$self->{_viewTemplate}); if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10) { - WebGUI::Cache->new($self->session,"view_".$self->getId)->set($out,$self->get("cacheTimeout")); + $self->session->cache->set("view_".$self->getId, $out, $self->get("cacheTimeout")); } return $out; } diff --git a/lib/WebGUI/Asset/File/Image.pm b/lib/WebGUI/Asset/File/Image.pm index c4166da6c..153896865 100644 --- a/lib/WebGUI/Asset/File/Image.pm +++ b/lib/WebGUI/Asset/File/Image.pm @@ -222,8 +222,9 @@ Renders this asset. sub view { my $self = shift; + my $cache = $self->session->cache; if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10) { - my $out = WebGUI::Cache->new($self->session,"view_".$self->getId)->get; + my $out = $cache->get("view_".$self->getId); return $out if $out; } my %var = %{$self->get}; @@ -247,7 +248,7 @@ sub view { my $form = $self->session->form; my $out = $self->processTemplate(\%var,undef,$self->{_viewTemplate}); if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10) { - WebGUI::Cache->new($self->session,"view_".$self->getId)->set($out,$self->get("cacheTimeout")); + $cache->set("view_".$self->getId, $out, $self->get("cacheTimeout")); } return $out; } @@ -310,16 +311,7 @@ sub www_undo { my $previous = (@{$self->getRevisions()})[1]; # instantiate assetId if ($previous) { - # my $session = $self->session; - - # my $cache = WebGUI::Cache->new($self->session, ["asset",$self->getId,$self->getRevisionDate]); - # $cache->flush; - # my $cache = WebGUI::Cache->new($previous->session, ["asset",$previous->getId,$previous->getRevisionDate]); - # $cache->flush; - $self = $self->purgeRevision(); - # $self = undef; - # $self = WebGUI::Asset->new($previous->session, $previous->getId, ref $previous, $previous->getRevisionDate); $self = $previous; $self->generateThumbnail; } diff --git a/lib/WebGUI/Asset/File/ZipArchive.pm b/lib/WebGUI/Asset/File/ZipArchive.pm index 7a11d4838..0a4e44553 100644 --- a/lib/WebGUI/Asset/File/ZipArchive.pm +++ b/lib/WebGUI/Asset/File/ZipArchive.pm @@ -220,8 +220,9 @@ used to show the file to administrators. sub view { my $self = shift; + my $cache = $self->session->cache; if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10) { - my $out = WebGUI::Cache->new($self->session,"view_".$self->getId)->get; + my $out = $cache->get("view_".$self->getId); return $out if $out; } my %var = %{$self->get}; @@ -244,7 +245,7 @@ sub view { $var{noFileSpecified} = $i18n->get('noFileSpecified'); my $out = $self->processTemplate(\%var,undef,$self->{_viewTemplate}); if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10) { - WebGUI::Cache->new($self->session,"view_".$self->getId)->set($out,$self->get("cacheTimeout")); + $cache->set("view_".$self->getId, $out, $self->get("cacheTimeout")); } return $out; } diff --git a/lib/WebGUI/Asset/Post.pm b/lib/WebGUI/Asset/Post.pm index ad8d9e113..565301fad 100644 --- a/lib/WebGUI/Asset/Post.pm +++ b/lib/WebGUI/Asset/Post.pm @@ -16,7 +16,6 @@ use Tie::IxHash; use WebGUI::Asset; use WebGUI::Asset::Template; use WebGUI::Asset::Post::Thread; -use WebGUI::Cache; use WebGUI::Group; use WebGUI::HTML; use WebGUI::HTMLForm; @@ -1188,7 +1187,7 @@ Extend the base class to handle caching. sub purgeCache { my $self = shift; - WebGUI::Cache->new($self->session,"view_".$self->getThread->getId)->delete if ($self->getThread); + $self->session->cache->delete("view_".$self->getThread->getId) if ($self->getThread); $self->SUPER::purgeCache; } diff --git a/lib/WebGUI/Asset/Post/Thread.pm b/lib/WebGUI/Asset/Post/Thread.pm index 970a7e6d8..5388754f5 100644 --- a/lib/WebGUI/Asset/Post/Thread.pm +++ b/lib/WebGUI/Asset/Post/Thread.pm @@ -13,7 +13,6 @@ package WebGUI::Asset::Post::Thread; use strict; use WebGUI::Asset::Template; use WebGUI::Asset::Post; -use WebGUI::Cache; use WebGUI::Group; use WebGUI::International; use WebGUI::Paginator; @@ -1026,8 +1025,9 @@ sub view { my $currentPost = shift || $self; $self->markRead; $self->incrementViews unless ($self->session->form->process("func") eq 'rate'); + my $cache = $self->session->cache; if ($self->session->user->isVisitor && !$self->session->form->process("layout")) { - my $out = WebGUI::Cache->new($self->session,"view_".$self->getId)->get; + my $out = $cache->get("view_".$self->getId); return $out if $out; } $self->session->scratch->set("discussionLayout",$self->session->form->process("layout")) if ($self->session->form->process("layout")); @@ -1134,7 +1134,7 @@ sub view { my $out = $self->processTemplate($var,undef,$self->{_viewTemplate}); if ($self->session->user->isVisitor && !$self->session->form->process("layout")) { - WebGUI::Cache->new($self->session,"view_".$self->getId)->set($out,$self->getThread->getParent->get("visitorCacheTimeout")); + $cache->set("view_".$self->getId, $out, $self->getThread->getParent->get("visitorCacheTimeout")); } return $out; } diff --git a/lib/WebGUI/Asset/Shortcut.pm b/lib/WebGUI/Asset/Shortcut.pm index d6fa45878..68c0e00ed 100644 --- a/lib/WebGUI/Asset/Shortcut.pm +++ b/lib/WebGUI/Asset/Shortcut.pm @@ -481,10 +481,10 @@ expired, or if the user's profile field has changed. sub getOverrides { my $self = shift; my $session = $self->session; - my $cache = WebGUI::Cache->new($self->session,$self->_overridesCacheTag); + my $cache = $session->cache; my $u = WebGUI::User->new($self->session, $self->discernUserId); - my $overridesRef = $cache->get; + my $overridesRef = $cache->get($self->_overridesCacheTag); ##If admin mode is not on, and the cache is valid, and not expired, and the user object was not updated, ##return the cached value. if ( ! $session->var->isAdminOn @@ -532,7 +532,7 @@ sub getOverrides { } } $overrides{userLastUpdated} = $session->user->get('lastUpdated'); - $cache->set(\%overrides, 60*60); + $cache->set($self->_overridesCacheTag, \%overrides, 60*60); $overridesRef = \%overrides; return %{ $overridesRef }; } @@ -879,7 +879,7 @@ Delete any cached overrides. sub uncacheOverrides { my $self = shift; - WebGUI::Cache->new($self->session,$self->_overridesCacheTag)->delete; + $self->session->cache->delete($self->_overridesCacheTag); } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Asset/Sku/Product.pm b/lib/WebGUI/Asset/Sku/Product.pm index ae1de8152..599f47435 100644 --- a/lib/WebGUI/Asset/Sku/Product.pm +++ b/lib/WebGUI/Asset/Sku/Product.pm @@ -13,7 +13,6 @@ package WebGUI::Asset::Sku::Product; use strict; use Tie::CPHash; use Tie::IxHash; -use WebGUI::Cache; use WebGUI::HTMLForm; use WebGUI::Storage; use WebGUI::SQL; @@ -789,7 +788,7 @@ Extends the base class to handle cleaning up the cache for this asset. sub purgeCache { my $self = shift; - WebGUI::Cache->new($self->session,"view_".$self->getId)->delete; + $self->session->cache->delete("view_".$self->getId); $self->SUPER::purgeCache; } @@ -1674,8 +1673,9 @@ sub view { my $self = shift; my $error = shift; my $session = $self->session; + my $cache = $session->cache; if (!$session->var->isAdminOn && $self->get("cacheTimeout") > 10){ - my $out = WebGUI::Cache->new($self->session,"view_".$self->getId)->get; + my $out = $cache->get("view_".$self->getId); return $out if $out; } my (%data, $segment, %var, @featureloop, @benefitloop, @specificationloop, @accessoryloop, @relatedloop); @@ -1878,7 +1878,7 @@ sub view { my $out = $self->processTemplate(\%var,undef,$self->{_viewTemplate}); if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10 && $self->{_hasAddedToCart} != 1){ - WebGUI::Cache->new($self->session,"view_".$self->getId)->set($out,$self->get("cacheTimeout")); + $cache->set("view_".$self->getId, $out, $self->get("cacheTimeout")); } return $out; } diff --git a/lib/WebGUI/Asset/Snippet.pm b/lib/WebGUI/Asset/Snippet.pm index 6ff5d2c55..dd9b6e68a 100644 --- a/lib/WebGUI/Asset/Snippet.pm +++ b/lib/WebGUI/Asset/Snippet.pm @@ -250,9 +250,9 @@ Extending purgeCache to handle caching of the rendered snippet sub purgeCache { my $self = shift; - - WebGUI::Cache->new($self->session,"view__".$self->getId)->delete; - WebGUI::Cache->new($self->session,"view_1_".$self->getId)->delete; + my $self->session->cache; + $cache->delete("view__".$self->getId); + $cache->delete("view_1_".$self->getId); $self->SUPER::purgeCache(); } @@ -279,7 +279,7 @@ sub view { || $self->get("cacheTimeout") <= 10 || ($versionTag && $versionTag->getId eq $self->get("tagId")); unless ($noCache) { - my $out = WebGUI::Cache->new($session,"view_".$calledAsWebMethod."_".$self->getId)->get; + my $out = $session->cache("view_".$calledAsWebMethod."_".$self->getId); return $out if $out; } my $output = $self->get('usePacked') @@ -292,7 +292,7 @@ sub view { } WebGUI::Macro::process($session,\$output); unless ($noCache) { - WebGUI::Cache->new($session,"view_".$calledAsWebMethod."_".$self->getId)->set($output,$self->get("cacheTimeout")); + $session->cache->set("view_".$calledAsWebMethod."_".$self->getId, $output, $self->get("cacheTimeout")); } return $output; } diff --git a/lib/WebGUI/Asset/Wobject/Article.pm b/lib/WebGUI/Asset/Wobject/Article.pm index 285d4c32d..f0d5774b7 100644 --- a/lib/WebGUI/Asset/Wobject/Article.pm +++ b/lib/WebGUI/Asset/Wobject/Article.pm @@ -13,7 +13,6 @@ package WebGUI::Asset::Wobject::Article; use strict; use Tie::IxHash; use WebGUI::International; -use WebGUI::Cache; use WebGUI::Paginator; use WebGUI::Asset::Wobject; use WebGUI::Storage; @@ -319,7 +318,7 @@ See WebGUI::Asset::purgeCache() for details. sub purgeCache { my $self = shift; - WebGUI::Cache->new($self->session,"view_".$self->getId)->delete; + $self->session->cache->delete("view_".$self->getId); $self->SUPER::purgeCache; } @@ -348,9 +347,10 @@ returns the output. sub view { my $self = shift; + my $cache = $self->session->cache; if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10 && !$self->session->form->process("overrideTemplateId") && !$self->session->form->process($self->paginateVar) && !$self->session->form->process("makePrintable")) { - my $out = WebGUI::Cache->new($self->session,"view_".$self->getId)->get; + my $out = $cache->get("view_".$self->getId); return $out if $out; } my %var; @@ -414,7 +414,7 @@ sub view { my $out = $self->processTemplate(\%var,undef,$self->{_viewTemplate}); if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10 && !$self->session->form->process("overrideTemplateId") && !$self->session->form->process($self->paginateVar) && !$self->session->form->process("makePrintable")) { - WebGUI::Cache->new($self->session,"view_".$self->getId)->set($out,$self->get("cacheTimeout")); + $cache->set("view_".$self->getId, $out, $self->get("cacheTimeout")); } return $out; } diff --git a/lib/WebGUI/Asset/Wobject/Collaboration.pm b/lib/WebGUI/Asset/Wobject/Collaboration.pm index 0f3efef69..0cf10f27d 100644 --- a/lib/WebGUI/Asset/Wobject/Collaboration.pm +++ b/lib/WebGUI/Asset/Wobject/Collaboration.pm @@ -13,7 +13,6 @@ package WebGUI::Asset::Wobject::Collaboration; use strict; use Tie::IxHash; use WebGUI::Group; -use WebGUI::Cache; use WebGUI::HTML; use WebGUI::International; use WebGUI::Paginator; @@ -1404,8 +1403,9 @@ Extend the base method to delete view and visitor caches. sub purgeCache { my $self = shift; - WebGUI::Cache->new($self->session,"view_".$self->getId)->delete; - WebGUI::Cache->new($self->session,$self->_visitorCacheKey)->delete; + my $cache = $self->session->cache; + $cache->delete("view_".$self->getId); + $cache->delete($self->_visitorCacheKey); $self->next::method; } @@ -1549,8 +1549,9 @@ Render the CS, and handle local caching. sub view { my $self = shift; + my $cache = $self->session->cache; if ($self->_visitorCacheOk) { - my $out = WebGUI::Cache->new($self->session,$self->_visitorCacheKey)->get; + my $out = $cache->get($self->_visitorCacheKey); $self->session->errorHandler->debug("HIT") if $out; return $out if $out; } @@ -1561,7 +1562,7 @@ sub view { $self->prepareView unless ($self->{_viewTemplate}); my $out = $self->processTemplate($self->getViewTemplateVars,undef,$self->{_viewTemplate}); if ($self->_visitorCacheOk) { - WebGUI::Cache->new($self->session,$self->_visitorCacheKey)->set($out,$self->get("visitorCacheTimeout")); + $cache->set($self->_visitorCacheKey, $out, $self->get("visitorCacheTimeout")); } return $out; } diff --git a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm index 8f1d9f56a..b8f1424e4 100644 --- a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm +++ b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm @@ -25,7 +25,6 @@ use WebGUI::Asset::Sku::EMSBadge; use WebGUI::Asset::Sku::EMSTicket; use WebGUI::Asset::Sku::EMSRibbon; use WebGUI::Asset::Sku::EMSToken; -use WebGUI::Cache; use WebGUI::Exception; use WebGUI::FormValidator; use WebGUI::HTMLForm; diff --git a/lib/WebGUI/Asset/Wobject/Folder.pm b/lib/WebGUI/Asset/Wobject/Folder.pm index 21a50c3ea..567f301c1 100644 --- a/lib/WebGUI/Asset/Wobject/Folder.pm +++ b/lib/WebGUI/Asset/Wobject/Folder.pm @@ -16,7 +16,6 @@ package WebGUI::Asset::Wobject::Folder; use strict; use WebGUI::Asset::Wobject; -use WebGUI::Cache; use WebGUI::Utility; our @ISA = qw(WebGUI::Asset::Wobject); @@ -208,7 +207,7 @@ See WebGUI::Asset::purgeCache() for details. sub purgeCache { my $self = shift; - WebGUI::Cache->new($self->session,"view_".$self->getId)->delete; + $self->session->cache->delete("view_".$self->getId); $self->SUPER::purgeCache; } @@ -225,8 +224,9 @@ sub view { my $self = shift; # Use cached version for visitors + my $cache = $self->session->cache; if ($self->session->user->isVisitor) { - my $out = WebGUI::Cache->new($self->session,"view_".$self->getId)->get; + my $out = $cache->get("view_".$self->getId); return $out if $out; } @@ -291,8 +291,7 @@ sub view { # Update the cache if ($self->session->user->isVisitor) { - WebGUI::Cache->new($self->session,"view_".$self->getId) - ->set($out,$self->get("visitorCacheTimeout")); + $cache->set("view_".$self->getId, $out, $self->get("visitorCacheTimeout")); } return $out; diff --git a/lib/WebGUI/Asset/Wobject/HttpProxy.pm b/lib/WebGUI/Asset/Wobject/HttpProxy.pm index bb0d06273..b0b271c32 100644 --- a/lib/WebGUI/Asset/Wobject/HttpProxy.pm +++ b/lib/WebGUI/Asset/Wobject/HttpProxy.pm @@ -20,7 +20,6 @@ use WebGUI::International; use WebGUI::Storage; use WebGUI::Asset::Wobject; use WebGUI::Asset::Wobject::HttpProxy::Parse; -use WebGUI::Cache; use WebGUI::Macro; use Apache2::Upload; @@ -277,8 +276,9 @@ See WebGUI::Asset::purgeCache() for details. sub purgeCache { my $self = shift; - WebGUI::Cache->new($self->session,$self->get("proxiedUrl"),"URL")->delete; - WebGUI::Cache->new($self->session,$self->get("proxiedUrl"),"HEADER")->delete; + my $cache = $self->session->cache; + $cache->delete([$self->get("proxiedUrl"),"URL"]); + $cache->delete([$self->get("proxiedUrl"),"HEADER"]); $self->SUPER::purgeCache; } @@ -320,12 +320,11 @@ sub view { my $requestMethod = $self->session->env->get("REQUEST_METHOD") || "GET"; ### Do we have cached content to get? - my $cacheContent = WebGUI::Cache->new($self->session,$proxiedUrl,"URL"); - my $cacheHeader = WebGUI::Cache->new($self->session,$proxiedUrl,"HEADER"); + my $cache = $self->session->cache; if ($requestMethod =~ /^GET$/i) { - $var{header} = $cacheHeader->get; - $var{content} = $cacheContent->get; + $var{header} = $cache->get([$proxiedUrl,'HEADER']); + $var{content} = $cache->get([$proxiedUrl,"URL"]); } # Unless we have cached content @@ -465,8 +464,8 @@ sub view { $var{content} = sprintf $i18n->get('fetch page error'), $proxiedUrl, $proxiedUrl, $response->status_line; } unless ($self->get("cacheTimeout") <= 10) { - $cacheContent->set($var{content},$self->get("cacheTimeout")); - $cacheHeader->set($var{header},$self->get("cacheTimeout")); + $cache->set([$proxiedUrl,'URL'], $var{content}, $self->get("cacheTimeout")); + $cache->set([$proxiedUrl,'HEADER'], $var{header}, $self->get("cacheTimeout")); } } diff --git a/lib/WebGUI/Asset/Wobject/Layout.pm b/lib/WebGUI/Asset/Wobject/Layout.pm index 9ebdf7369..9efedb3e9 100644 --- a/lib/WebGUI/Asset/Wobject/Layout.pm +++ b/lib/WebGUI/Asset/Wobject/Layout.pm @@ -18,7 +18,6 @@ use strict; use WebGUI::AdSpace; use WebGUI::Asset::Wobject; use WebGUI::Utility; -use WebGUI::Cache; our @ISA = qw(WebGUI::Asset::Wobject); @@ -413,13 +412,13 @@ sub www_view { if ($session->env->sslRequest) { $cacheKey .= '_ssl'; } - my $cache = WebGUI::Cache->new($session, $cacheKey); - my $out = $cache->get if defined $cache; + my $cache = $session->cache; + my $out = $cache->get($cacheKey); unless ($out) { $self->prepareView; $session->stow->set("cacheFixOverride", 1); $out = $self->processStyle($self->view, { noHeadTags => 1 }); - $cache->set($out, 60); + $cache->set($cacheKey, $out, 60); $session->stow->delete("cacheFixOverride"); } # keep those ads rotating even though the output is cached diff --git a/lib/WebGUI/Asset/Wobject/Matrix.pm b/lib/WebGUI/Asset/Wobject/Matrix.pm index 876c0842d..147f038ee 100644 --- a/lib/WebGUI/Asset/Wobject/Matrix.pm +++ b/lib/WebGUI/Asset/Wobject/Matrix.pm @@ -505,8 +505,9 @@ sub getListings { $session->var->isAdminOn || $self->get("listingsCacheTimeout") <= 10 || ($versionTag && $versionTag->getId eq $self->get("tagId")); + my $cache = $session->cache; unless ($noCache) { - $listingsEncoded = WebGUI::Cache->new($session,"matrixListings_".$self->getId)->get; + $listingsEncoded = $cache->get("matrixListings_".$self->getId); } if ($listingsEncoded){ @@ -546,9 +547,7 @@ assetData.revisionDate } $listingsEncoded = JSON->new->encode($listings); - WebGUI::Cache->new($session,"matrixListings_".$self->getId)->set( - $listingsEncoded,$self->get("listingsCacheTimeout") - ); + $cache->set("matrixListings_".$self->getId, $listingsEncoded, $self->get("listingsCacheTimeout")); } return $listings; } @@ -687,8 +686,9 @@ sub view { $session->var->isAdminOn || $self->get("statisticsCacheTimeout") <= 10 || ($versionTag && $versionTag->getId eq $self->get("tagId")); + my $cache = $session->cache; unless ($noCache) { - $varStatisticsEncoded = WebGUI::Cache->new($session,"matrixStatistics_".$self->getId)->get; + $varStatisticsEncoded = $cache->get("matrixStatistics_".$self->getId); } if ($varStatisticsEncoded){ @@ -837,9 +837,7 @@ sub view { [$self->getId]); $varStatisticsEncoded = JSON->new->encode($varStatistics); - WebGUI::Cache->new($session,"matrixStatistics_".$self->getId)->set( - $varStatisticsEncoded,$self->get("statisticsCacheTimeout") - ); + $cache->set("matrixStatistics_".$self->getId, $varStatisticsEncoded, $self->get("statisticsCacheTimeout")); } foreach my $statistic (keys %{$varStatistics}) { diff --git a/lib/WebGUI/Asset/Wobject/MessageBoard.pm b/lib/WebGUI/Asset/Wobject/MessageBoard.pm index 7061ce22e..a640113d4 100644 --- a/lib/WebGUI/Asset/Wobject/MessageBoard.pm +++ b/lib/WebGUI/Asset/Wobject/MessageBoard.pm @@ -12,7 +12,6 @@ package WebGUI::Asset::Wobject::MessageBoard; use strict; use Tie::IxHash; -use WebGUI::Cache; use WebGUI::Asset::Wobject; use WebGUI::International; use WebGUI::SQL; @@ -91,7 +90,7 @@ See WebGUI::Asset::purgeCache() for details. sub purgeCache { my $self = shift; - WebGUI::Cache->new($self->session,"view_".$self->getId)->delete; + $self->session->cache->delete("view_".$self->getId); $self->SUPER::purgeCache; } @@ -105,8 +104,9 @@ See WebGUI::Asset::view() for details. sub view { my $self = shift; + my $cache = $self->session->cache; if ($self->session->user->isVisitor) { - my $out = WebGUI::Cache->new($self->session,"view_".$self->getId)->get; + my $out = $cache->get("view_".$self->getId); return $out if $out; } my %var; @@ -171,7 +171,7 @@ sub view { my $out = $self->processTemplate(\%var,undef,$self->{_viewTemplate}); if ($self->session->user->isVisitor) { - WebGUI::Cache->new($self->session,"view_".$self->getId)->set($out,$self->get("visitorCacheTimeout")); + $cache->set("view_".$self->getId, $out, $self->get("visitorCacheTimeout")); } return $out; } diff --git a/lib/WebGUI/Asset/Wobject/MultiSearch.pm b/lib/WebGUI/Asset/Wobject/MultiSearch.pm index 15e9a7d8c..046f07b40 100644 --- a/lib/WebGUI/Asset/Wobject/MultiSearch.pm +++ b/lib/WebGUI/Asset/Wobject/MultiSearch.pm @@ -24,7 +24,6 @@ use Tie::IxHash; use JSON; use WebGUI::International; use WebGUI::SQL; -use WebGUI::Cache; use WebGUI::Asset::Wobject; use WebGUI::Utility; @@ -114,7 +113,7 @@ See WebGUI::Asset::purgeCache() for details. sub purgeCache { my $self = shift; - WebGUI::Cache->new($self->session,"view_".$self->getId)->delete; + $self->session->cache->delete("view_".$self->getId); $self->SUPER::purgeCache; } @@ -129,8 +128,9 @@ to be displayed within the page style sub view { my $self = shift; + my $cache = $self->session->cache; if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10) { - my $out = WebGUI::Cache->new($self->session,"view_".$self->getId)->get; + my $out = $cache->get("view_".$self->getId); return $out if $out; } my $i18n = WebGUI::International->new($self->session, 'Asset_MultiSearch'); @@ -143,7 +143,7 @@ sub view { my $out = $self->processTemplate(\%var,undef,$self->{_viewTemplate}); if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10) { - WebGUI::Cache->new($self->session,"view_".$self->getId)->set($out,$self->get("cacheTimeout")); + $cache->set("view_".$self->getId, $out, $self->get("cacheTimeout")); } return $out; } diff --git a/lib/WebGUI/Asset/Wobject/SQLReport.pm b/lib/WebGUI/Asset/Wobject/SQLReport.pm index 73e0528a6..1e65e7c8f 100644 --- a/lib/WebGUI/Asset/Wobject/SQLReport.pm +++ b/lib/WebGUI/Asset/Wobject/SQLReport.pm @@ -18,7 +18,6 @@ use WebGUI::Paginator; use WebGUI::SQL; use WebGUI::Utility; use WebGUI::Asset::Wobject; -use WebGUI::Cache; use WebGUI::Text qw(:csv); our @ISA = qw(WebGUI::Asset::Wobject); @@ -518,7 +517,7 @@ See WebGUI::Asset::purgeCache() for details. sub purgeCache { my $self = shift; - WebGUI::Cache->new($self->session,"view_".$self->getId)->delete; + $self->session->cache->delete("view_".$self->getId); $self->SUPER::purgeCache; } @@ -533,8 +532,9 @@ if the user is not in Admin Mode. sub view { my $self = shift; + my $cache = $self->session->cache; if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10) { - my $out = WebGUI::Cache->new($self->session,"view_".$self->getId)->get; + my $out = $cache->get("view_".$self->getId); return $out if $out; } # Initiate an empty debug loop @@ -560,7 +560,7 @@ sub view { my $out = $self->processTemplate($var,undef,$self->{_viewTemplate}); if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10) { - WebGUI::Cache->new($self->session,"view_".$self->getId)->set($out,$self->get("cacheTimeout")); + $cache->set("view_".$self->getId, $out, $self->get("cacheTimeout")); } return $out; } diff --git a/lib/WebGUI/Asset/Wobject/Survey.pm b/lib/WebGUI/Asset/Wobject/Survey.pm index 58022db24..48294ed87 100644 --- a/lib/WebGUI/Asset/Wobject/Survey.pm +++ b/lib/WebGUI/Asset/Wobject/Survey.pm @@ -1378,7 +1378,6 @@ See WebGUI::Asset::purgeCache() for details. sub purgeCache { my $self = shift; - WebGUI::Cache->new( $self->session, 'view_' . $self->getId )->delete; return $self->SUPER::purgeCache; } diff --git a/lib/WebGUI/Asset/Wobject/SyndicatedContent.pm b/lib/WebGUI/Asset/Wobject/SyndicatedContent.pm index aaaff5316..a1722c820 100644 --- a/lib/WebGUI/Asset/Wobject/SyndicatedContent.pm +++ b/lib/WebGUI/Asset/Wobject/SyndicatedContent.pm @@ -13,7 +13,6 @@ package WebGUI::Asset::Wobject::SyndicatedContent; use strict; use HTML::Entities; use Tie::IxHash; -use WebGUI::Cache; use WebGUI::Exception; use WebGUI::HTML; use WebGUI::International; @@ -136,16 +135,16 @@ sub generateFeed { # build one feed out of many my $newlyCached = 0; + my $cache = $self->session->cache; foreach my $url (split(/\s+/, $self->get('rssUrl'))) { $log->info("Processing FEED: ".$url); $url =~ s/^feed:/http:/; if ($self->get('processMacroInRssUrl')) { WebGUI::Macro::process($self->session, \$url); } - my $cache = WebGUI::Cache->new($self->session, $url, "RSS"); - my $value = $cache->get; + my $value = $cache->get($url); unless ($value) { - $value = $cache->setByHTTP($url, $self->get("cacheTimeout")); + $value = $cache->setByHttp($url, $url, $self->get("cacheTimeout")); $newlyCached = 1; } # if the content can be downgraded, it is either valid latin1 or didn't have @@ -328,7 +327,7 @@ See WebGUI::Asset::purgeCache() for details. sub purgeCache { my $self = shift; - WebGUI::Cache->new($self->session,"view_".$self->getId)->delete; + $self->session->cache->delete("view_".$self->getId); $self->next::method; } @@ -345,8 +344,8 @@ sub view { my $session = $self->session; # try the cached version - my $cache = WebGUI::Cache->new($session,"view_".$self->getId); - my $out = $cache->get; + my $cache = $session->cache; + my $out = $cache->get("view_".$self->getId); return $out if ($out ne "" && !$session->var->isAdminOn); #return $out if $out; @@ -354,7 +353,7 @@ sub view { my $feed = $self->generateFeed; $out = $self->processTemplate($self->getTemplateVariables($feed),undef,$self->{_viewTemplate}); if (!$session->var->isAdminOn && $self->get("cacheTimeout") > 10) { - $cache->set($out,$self->get("cacheTimeout")); + $cache->set("view_".$self->getId, $out, $self->get("cacheTimeout")); } return $out; } diff --git a/lib/WebGUI/Asset/Wobject/Thingy.pm b/lib/WebGUI/Asset/Wobject/Thingy.pm index a75e09679..4ccff1dca 100644 --- a/lib/WebGUI/Asset/Wobject/Thingy.pm +++ b/lib/WebGUI/Asset/Wobject/Thingy.pm @@ -2662,7 +2662,7 @@ sub www_export { push(@fieldLabels,@metaDataFields) } - $query = WebGUI::Cache->new($self->session,"query_".$thingId)->get; + $query = $session->cache->get("query_".$thingId); $sth = $session->db->read($query); ### Loop through the returned structure and put it through Text::CSV @@ -3307,7 +3307,7 @@ sequenceNumber'); } # store query in cache for thirty minutes - WebGUI::Cache->new($self->session,"query_".$thingId)->set($query,30*60); + $self->session->cache->set("query_".$thingId, $query, 30*60); $paginatePage = $self->session->form->param('pn') || 1; $currentUrl = $self->session->url->append($currentUrl, "orderBy=".$orderBy) if $orderBy; diff --git a/lib/WebGUI/AssetLineage.pm b/lib/WebGUI/AssetLineage.pm index 3a948c69d..98aedb717 100644 --- a/lib/WebGUI/AssetLineage.pm +++ b/lib/WebGUI/AssetLineage.pm @@ -147,9 +147,8 @@ sub cascadeLineage { "UPDATE asset SET lineage=CONCAT(?,SUBSTRING(lineage,?)) WHERE lineage LIKE ?", [$newLineage, length($oldLineage) + 1, $oldLineage . '%'] ); - my $cache = WebGUI::Cache->new($self->session); if ($records > 20) { - $cache->flush; + $self->session->cache->flush; } else { my $descendants = $self->session->db->read("SELECT assetId FROM asset WHERE lineage LIKE ?", [$newLineage . '%']); diff --git a/lib/WebGUI/AssetTrash.pm b/lib/WebGUI/AssetTrash.pm index 03e2e94ee..6590bc591 100644 --- a/lib/WebGUI/AssetTrash.pm +++ b/lib/WebGUI/AssetTrash.pm @@ -191,7 +191,6 @@ sub purge { # clean up cache $outputSub->($i18n->get('Clearing cache')); - WebGUI::Cache->new($session)->deleteChunk(["asset",$self->getId]); $self->purgeCache; # delete stuff out of the asset tables diff --git a/lib/WebGUI/Group.pm b/lib/WebGUI/Group.pm index c7b594861..1024b87b0 100644 --- a/lib/WebGUI/Group.pm +++ b/lib/WebGUI/Group.pm @@ -127,7 +127,7 @@ not be added to any group. Groups may not be added to themselves. sub addGroups { my $self = shift; my $groups = shift; - WebGUI::Cache->new($self->session, $self->getId)->delete; + $self->session->cache->delete($self->getId); GROUP: foreach my $gid (@{$groups}) { next if ($gid eq '1'); next if ($gid eq $self->getId); @@ -232,12 +232,14 @@ sub clearCaches { my $self = shift; ##Clear my cache and the cache of all groups above me. my $groups = $self->getAllGroupsFor(); + my $cache = $self->session->cache; foreach my $group ( $self->getId, @{ $groups } ) { - WebGUI::Cache->new($self->session, $group)->delete; + $cache->delete($group); } - $self->session->stow->delete("groupObj"); - $self->session->stow->delete("isInGroup"); - $self->session->stow->delete("gotGroupsInGroup"); + my $stow = $self->session->stow; + $stow->delete("groupObj"); + $stow->delete("isInGroup"); + $stow->delete("gotGroupsInGroup"); } #------------------------------------------------------------------- @@ -560,8 +562,8 @@ sub getAllUsers { my $withoutExpired = shift; my $loopCount = shift; my $expireTime = 0; - my $cache = WebGUI::Cache->new($self->session, $self->getId); - my $value = $cache->get; + my $cache = $self->session->cache; + my $value = $cache->get($self->getId); return $value if defined $value; my @users = (); push @users, @@ -586,7 +588,7 @@ sub getAllUsers { } my %users = map { $_ => 1 } @users; @users = keys %users; - $cache->set(\@users, $self->groupCacheTimeout); + $cache->set($self->getId, \@users, $self->groupCacheTimeout); return \@users; } diff --git a/lib/WebGUI/Operation/Cache.pm b/lib/WebGUI/Operation/Cache.pm index 042a83993..d41952a83 100644 --- a/lib/WebGUI/Operation/Cache.pm +++ b/lib/WebGUI/Operation/Cache.pm @@ -12,7 +12,6 @@ package WebGUI::Operation::Cache; use strict; use WebGUI::AdminConsole; -use WebGUI::Cache; use WebGUI::International; use WebGUI::Form; @@ -93,7 +92,7 @@ sub www_flushCache { return $session->privilege->adminOnly unless canView($session); # Flush the cache - WebGUI::Cache->new($session)->flush; + $session->cache->flush; return www_manageCache($session); } @@ -110,20 +109,15 @@ provides an option to clear the cache. sub www_manageCache { my $session = shift; return $session->privilege->adminOnly unless canView($session); - my $cache = WebGUI::Cache->new($session); my $flushURL = $session->url->page('op=flushCache'); my $i18n = WebGUI::International->new($session); - my $output - = '
| '.$i18n->get('cache type').': | '.ref($cache).' |
| '.$i18n->get('cache statistics').': | '.$cache->stats.' |
| ' - . WebGUI::Form::button($session, { + my $output = + WebGUI::Form::formHeader($session); + .WebGUI::Form::button($session, { value => $i18n->get("clear cache"), extras => qq{onclick="document.location.href='$flushURL';"}, }) - . ' |