<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net"
				 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
				 xmlns:quartz="http://www.opensymphony.com/quartz/JobSchedulingData"
				 xsi:schemaLocation="http://www.springframework.net http://www.springframework.net/xsd/spring-objects.xsd" >


  <object id="baseController" abstract="true" scope="request" singleton="false">
    <property name="Properties" ref="deploymentVars" />
    <property name="UserService" ref="userService" />
    <property name="PageService" ref="pageService" />
    <property name="FacilityService" ref="facilityService" />
    <property name="EncryptionUtility" ref="encryptionUtility" />
    <property name="BaseUri" value="${app.base.url}" />
    <property name="DocValidTypes" value="${document.valid.ext}" />
    <property name="ErrorOnSave" value="${report.facility.error.save.message}"/>
  </object>

  <object name="Account" type="Sleis.Controllers.AccountController" parent="baseController" init-method="Init" scope="request" singleton="false">
    <property name="PasswordresetConfirmationMessage" value="${user.password.reset.confirm}" />
    <property name="EnterNewPasswordMessage" value="${user.password.enter.new}" />
    <property name="InvalidCredentialMessage" value="${user.password.invalid.error}" />
    <property name="InvalidUserProfileMessage" value="${user.profile.invalid.message}"/>
  </object>

  <object name="Agency" type="Sleis.Controllers.AgencyController" parent="baseController" init-method="Init" scope="request" singleton="false">
    <property name="ReportService" ref="reportService" />
    <property name="HomeService" ref="homeService" />
    <property name="CersService" ref="cersService" />
  </object>

  <object name="ControlDevice" type="Sleis.Controllers.ControlDeviceController" parent="baseController" init-method="Init" scope="request" singleton="false">
    <property name="ControlDeviceService" ref="controlDeviceService" />
    <property name ="ErrorOnSave" value="${report.facility.error.save.message}" />
    <property name="PageKey" value="/ControlDevice"/>
    <property name="Validator" ref="controlDeviceValidator" />
  </object>

  <object name="Errors" type="Sleis.Controllers.ErrorsController" parent="baseController" init-method="Init" scope="request" singleton="false">
  </object>

  <object name="Document" type="Sleis.Controllers.DocumentController" parent="baseController" init-method="Init" scope="request" singleton="false">
    <property name="DocumentService" ref="documentService" />
    <property name="AgreementQuestions">
      <list element-type="string">
        <value>I am the owner of the account used to perform the electronic submission and signature.</value>
        <value>I have the authority to submit the data on behalf of the facility I am representing.</value>
        <value>I agree that providing the account credentials to sign the submission document constitutes an electronic signature equivalent to my written signature.</value>
        <value>I have reviewed the electronic report being submitted in its entirety, and agree to the validity and accuracy of the information contained within it to the best of my knowledge.</value>
      </list>
    </property>
    <property name="AgreementQuestionsErrorMessage" value="${user.questions.message.undefined}" />
    <property name="DocumentSignErrorMessage" value="${document.sign.authentication.error.message}" />
    <property name="AdditionalLegalTextMessage" value="${document.sign.additional.message}"/>
  </object>

  <object name="EmissionUnit" type="Sleis.Controllers.EmissionUnitController" parent="baseController" init-method="Init" scope="request" singleton="false">
    <property name="EmissionUnitService" ref="emissionUnitService" />
    <property name="ReportService" ref="reportService" />
    <property name="ControlDeviceService" ref="controlDeviceService"/>

    <property name="PageKey" value="/EmissionUnit"/>
    <property name="Validator" ref="emissionUnitValidator" />
  </object>

  <object name="Export" type="Sleis.Controllers.ExportController" parent="baseController" init-method="Init" scope="request" singleton="false">
    <property name="ExportService" ref="exportService"/>
  </object>

  <object name="Facility" type="Sleis.Controllers.FacilityController" parent="baseController" init-method="Init" scope="request" singleton="false">
    <property name="FacilityService" ref="facilityService" />
    <property name="ReportService" ref="reportService" />
    <property name="MissingSecurityQuestionMessage" value="${user.questions.message}" />
    <property name="RequiredNumberOfQuestions" value="${user.questions.number}" />
    <property name="VersionOfSubmissionSent" value="${emission.report.submission.sent}" />
    <property name="NoSubmissionSent" value="${no.emission.report.submission.sent}" />
    <property name="PageKey" value="/Facility"/>
    <property name="Validator" ref="addFacilityValidator" />
  </object>

  <object name="Feedback" type="Sleis.Controllers.FeedbackController" parent="baseController" init-method="Init" scope="request" singleton="false">
    <property name="EmailUtility" ref="emailUtility" />
    <property name="FeedbackMessageKey" value="${email.feedback.key}" />
    <property name="FeedbackToAddress" value="${email.feedback.to}" />
    <property name="ConfirmationMessage" value="${email.feedback.confirm}" />
  </object>

  <object name="File" type="Sleis.Controllers.FileController" parent="baseController" init-method="Init" scope="request" singleton="false">
    <property name="FileUrls" value="${form.url.fileName}" />
    <!-- TODO: Remove the following line once delimiter key/property deployed throughout code -->    
    <property name="Delimiter" value="${form.url.delimiter}" />
    <property name="FilePath" value="${form.url.path}" />
  </object>

  <object name="Lookup" type="Sleis.Controllers.LookupController" parent="baseController" init-method="Init" scope="request" singleton="false"/>

  <object name="NewsItem" type="Sleis.Controllers.NewsItemController" parent="baseController" init-method="Init" scope="request" singleton="false">
    <property name="NewsService" ref="newsService" />
  </object>

  <object name="Page" type="Sleis.Controllers.PageController" parent="baseController" init-method="Init" scope="request" singleton="false" />

  <object name="ProcessEmission" type="Sleis.Controllers.ProcessEmissionController" parent="baseController" init-method="Init" scope="request" singleton="false">
    <property name="UnitProcessService" ref="unitProcessService" />
    <property name="ProcessEmissionService" ref="processEmissionService" />
    <property name="ReportService" ref="reportService" />
    <property name="Validator" ref="processEmissionValidator"/>
    <property name="ImportValidator" ref ="importValidator" />
    <property name="PageKey" value="/ProcessEmission"/>
  </object>

  <object name="Public" type="Sleis.Controllers.PublicController" parent="baseController" init-method="Init" scope="request" singleton="false">
    <property name="HomeService" ref="homeService" />
  </object>

  <object name="ReleasePoint" type="Sleis.Controllers.ReleasePointController" parent="baseController" init-method="Init" scope="request" singleton="false">
    <property name="ReleasePointService" ref="releasePointService" />
    <property name="ReportService" ref="reportService" />
    <!--<property name="PageKey" value="/ReleasePoint"/>-->
    <!-- commented out so we will have to declare each page individually-->
    <property name="Validator" ref="releasePointValidator" />
  </object>

  <object name="Report" type="Sleis.Controllers.ReportController" parent="baseController" init-method="Init" scope="request" singleton="false">
    <property name="ReportService" ref="reportService" />
    <property name="DocumentService" ref="documentService" />
    <property name="ValidationService" ref="validationService" />
    <property name ="EnableUTMCorordinate" value="${report.facility.enableUTMCoordinate}" />
    <property name ="ErrorOnReportFacilitySaveText" value="${report.facility.error.save.message}" />
    <property name="Validator" ref="facilityValidator" />
  </object>

  <object name="ReportAttachment" type="Sleis.Controllers.ReportAttachmentController" parent="baseController" init-method="Init" scope="request" singleton="false">
    <property name="ReportAttachmentService" ref="reportAttachmentService" />
    <property name="UploadFileMaxSixe" value="${document.valid.maxsize}" />
  </object>

  <object name="Search" type="Sleis.Controllers.SearchController" parent="baseController" init-method="Init" scope="request" singleton="false">

  </object>

  <object name="UnitProcess" type="Sleis.Controllers.UnitProcessController" parent="baseController" init-method="Init" scope="request" singleton="false">
    <property name="UnitProcessService" ref="unitProcessService" />
    <property name="ReportService" ref="reportService" />
    <property name="ReleasePointService" ref="releasePointService"/>
    <property name="PageKey" value="/UnitProcess"/>
    <property name="Validator" ref="unitProcessValidator" />
    <property name="EmissionUnitService" ref="emissionUnitService"/>
    <property name="ControlDeviceService" ref="controlDeviceService"/>
  </object>

  <object name="User" type="Sleis.Controllers.UserController" parent="baseController" init-method="Init" scope="request" singleton="false">
    <property name="UserCreateConfirmationMessage" value="${user.create.confirm}" />
    <property name="ProfileUpdatedConfirmationMessage" value="${user.profile.confirm}" />
    <property name="YourProfileUpdatedConfirmationMessage" value="${user.profile.confirm.rolechange}" />
    <property name="LastFacilityAdministratorErrorMessage" value="${user.profile.error.rolechange}" />
    <property name="SecurityQuestionAnswerMinLength" value="${user.questions.answer.minlength}"/>
  </object>

  <object name="Validation" type="Sleis.Controllers.ValidationController" parent="baseController" init-method="Init" scope="request" singleton="false">
    <property name="ValidationService" ref="validationService" />
    <property name="ReportService" ref ="reportService" />
  </object>
  
</objects>