<commit_before>[fabrician.org](http://fabrician.org/)
==========================================================================
Engine Property Asset Manager Guide
==========================================================================

Introduction
--------------------------------------
The Engine Property Asset Manager allows an Enabler to set two properties on an Engine Daemon.  One property is used to indicate if other components
using the same enabler are allowed to run on the host where the property is set. For example if an OS level change was applied by the enabler and as a result of that 
no other Enablers that want to modify the OS should run on that host. The second property is whatever value you want the engines tagged with to
be used in conjunction with a Resource Preference.  

One scenario where these properties are useful are with enablers that support host configuration.  The properties allow users of this asset manager
to create resource preference rules based on the properties.  Users (via resource preference rules) can require or prohibit components from a 
host that have the properties set to specific values.  For instance, a JRuby enabler running a Puppet component can tag the engine daemon with which manifest
was applied.  You can then create a resource preference rule that only allows a component to run on an engine where that manifest was applied.  

A Server Hook that allows an Enabler to tag an Engine Daemon as having some specific property and also indicate whether other 
enablers are now allowed to use this host (for example to tag that some OS level change was applied and that as a result of this 
no other Enablers that want to modify the OS should run here.)  

This is useful now we are venturing into the world of host configuration with Enablers for Puppet as it allows us to create rules 
forcing Components to only run on hosts that have had a specific Puppet Manifest applied, but also has a general application in forcing 
or preventing co-location of components using resource preference rules based on settings within an Enabler.

To use it, you simply need to add two runtime context variables to your Enabler, one with the value of the property you are tagging 
the Daemon with and the other with true/false to indicate whether other enablers of the same type will subsequently be allowed to 
run on this host.


Supported Platforms
--------------------------------------
* Silver Fabric 5
* Linux, Windows


XML Deployment Descriptor
--------------------------------------
The following is an XML Deployment Descriptor example.

```XML
<enginedaemonproperty class="org.fabrician.assetmanager.daemonproperty.EngineProperty"><commit_msg>Updated readme.<commit_after>[fabrician.org](http://fabrician.org/)
==========================================================================
Engine Property Asset Manager Guide
==========================================================================

Introduction
--------------------------------------
The Engine Property Asset Manager allows an Enabler to set two properties on an Engine Daemon.  One property is used to indicate if other components
using the same enabler are allowed to run on the host where the property is set. For example if an OS level change was applied by the enabler and as a result of that 
no other Enablers that want to modify the OS should run on that host. The second property is whatever value you want the engines tagged with to
be used in conjunction with a Resource Preference.  

One scenario where these properties are useful are with enablers that support host configuration.  The properties allow users of this asset manager
to create resource preference rules based on the properties.  Users (via resource preference rules) can require or prohibit components from a 
host that have the properties set to specific values.  For instance, a JRuby enabler running a Puppet component can tag the engine daemon with which manifest
was applied.  You can then create a resource preference rule that only allows a component to run on an engine where that manifest was applied.  


Supported Platforms
--------------------------------------
* Silver Fabric 5
* Linux, Windows


XML Deployment Descriptor
--------------------------------------
The following is an XML Deployment Descriptor example.

```XML
<enginedaemonproperty class="org.fabrician.assetmanager.daemonproperty.EngineProperty">
{'fraction_non_alphanumeric': 0.13902658855340244, 'fraction_numerical': 0.0004506534474988734, 'mean_word_length': 3.732409381663113, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '37402', 'n_tokens_mistral': 956, 'n_tokens_neox': 907, 'n_words': 605}