98 lines
2.6 KiB
Plaintext
98 lines
2.6 KiB
Plaintext
/*
|
|
--------------------------------------------------------------------
|
|
I configure and load Hoth into the ColdBox cache
|
|
--------------------------------------------------------------------
|
|
Define settings in ColdBox.cfc for example:
|
|
interceptors = [
|
|
//Autowire
|
|
{
|
|
class="coldbox.system.interceptors.Autowire",
|
|
properties={}
|
|
},
|
|
//SES
|
|
{
|
|
class="coldbox.system.interceptors.SES",
|
|
properties={}
|
|
},
|
|
//HothTracker
|
|
{
|
|
class="hoth.extras.ColdBoxInterceptor",
|
|
properties={
|
|
EmailNewExceptions = true,
|
|
EmailNewExceptionsFile = true,
|
|
EmailNewExceptionsTo = "kaboom@mysite.com",
|
|
EmailNewExceptionsFrom = "server@mysite.com"
|
|
}
|
|
}
|
|
];
|
|
--------------------------------------------------------------------
|
|
*/
|
|
component
|
|
{
|
|
|
|
/* CONSTRUCTOR
|
|
------------------------------------------- */
|
|
|
|
/**
|
|
* This is the configuration method for the interceptor
|
|
*/
|
|
void function Configure()
|
|
{
|
|
// check for required settings
|
|
if ( !propertyExists( "EmailNewExceptionsTo" ) )
|
|
{
|
|
getPlugin( "logger" ).fatal( "hoth.extras.ColdBoxInterceptor.Configure", "The required 'EmailNewExceptionsTo' property has not been defined" );
|
|
throw(
|
|
type="hoth.extras.ColdBoxInterceptor"
|
|
, message="The required 'EmailNewExceptionsTo' property has not been defined"
|
|
);
|
|
}
|
|
|
|
// Use ColdBox settings if not specified
|
|
if ( !propertyExists( "applicationName" ) )
|
|
{
|
|
setProperty( "applicationName", getSetting( "AppName" ) & " (" & getSetting( "Environment" ) & ")" );
|
|
}
|
|
if ( !propertyExists( "logPath" ) )
|
|
{
|
|
setProperty( "logPath", getSetting( "ApplicationPath" ) & "logs/hoth" );
|
|
setProperty( "logPathIsRelative", false );
|
|
}
|
|
|
|
// Optional settings
|
|
if ( !propertyExists( "cacheKeyName" ) )
|
|
{
|
|
setProperty( "cacheKeyName", "hothtracker" );
|
|
}
|
|
}
|
|
|
|
/* INTERCEPTION POINTS
|
|
------------------------------------------- */
|
|
|
|
void function afterAspectsLoad( required any event, required struct interceptData )
|
|
{
|
|
var HothConfig = "";
|
|
var HothTracker = "";
|
|
var key = "";
|
|
var properties = getProperties();
|
|
|
|
HothConfig = new hoth.config.HothConfig();
|
|
|
|
for ( key in properties )
|
|
{
|
|
// use evaluate to dynamically called setters
|
|
if ( StructKeyExists( HothConfig, "set" & key ) )
|
|
{
|
|
evaluate( "HothConfig.set#key#( properties[ key ] )" );
|
|
}
|
|
}
|
|
|
|
HothTracker = new Hoth.HothTracker( HothConfig );
|
|
|
|
// store in ColdBox Cache
|
|
getColdboxOCM().set( getProperty( 'cacheKeyName' ), HothTracker, 0 );
|
|
|
|
getPlugin( "logger" ).info( "hoth.extras.ColdBoxInterceptor", "HothTracker configured and loaded in ColdBox cache using key '#getProperty( 'cacheKeyName' )#'" );
|
|
}
|
|
|
|
} |