project BLF > class ComponentPool > method Main


Internal usage


BLF
method Activate.MainBlock
method ApplicationControl.Main
method Connect.MainBlock
method Housekeeping.MainBlock
method Startup.MainBlock
method TApplication.Main
method TSODImport.ImportSODData


program code (program1/componentpool.p)

subscribe procedure this-procedure to "ComponentPoolIsRunning" anywhere run-procedure "ComponentPoolIsRunning".

/* These widget pools will contain ALL dynamic objects of the business code. */
create widget-pool "non-persistent" persistent no-error.
create widget-pool "persistent" persistent no-error.
create widget-pool "queryobjects" persistent no-error.

/* ====================================================================================== */
/*  Ensure that the program libraries that are located in the "lib" subdirectories   */
/*  are put in the propath.                                                               */
/* ====================================================================================== */

assign vcPropath = propath
       vcPropath = replace(vcPropath,";":U,",":U).
if opsys = "UNIX":U
then assign vcPropath = replace(vcPropath,":":U,",":U).

do viCount = 1 to num-entries(vcPropath):
    assign vcEntry = entry(viCount,vcPropath).       
    
    if vcEntry matches "*lib":U then do:
    
        file-info:filename = vcEntry.
        
        if file-info:file-type <> ?
        and index(file-info:file-type, "D":U) > 0 then do:
        
            input from os-dir(vcEntry).
            repeat on stop undo, leave:
                import vcFile vcFullFile.
                if vcFullFile matches "*.pl":U and
                    Not can-do(vcPropath,vcFullFile)
                then propath = propath + ",":U + vcFullFile.
            end.
            input close.
        end.
    end.
end.

/* start QRA */
/* cannot use QraConfig:IsEnabled before the bootstrap has been run */
if search("com/qad/qra/core/GlobalServiceLocator.r") <> ?
then run com/qad/qra/core/Bootstrap.p ("finBootstrap.xml").
else do:
    /* ================================================================= */
    /* Register the domain for client-principal authentication.          */
    /* hard-coded for now but this will change.                          */
    /* ================================================================= */
    security-policy:register-domain
        ("MFG":U,
         "QADiSthEbesTcoMpanyiNtHewOrld":U,
         "MFG/PRO Authentication":U,
         "INTERNAL") no-error.
    security-policy:lock-registration no-error.
end.

/* start persistence layer and database connections */
<M-24 run StartPersistenceInPool
   (input  ? (ihClass), 
    output vhFcComponent (ohPersistence), 
    output viReturnStatus (oiReturnStatus)) in ComponentPool>

/* start CustomizationController */
<M-1 run Main
   (output viReturnStatus (oiReturnStatus)) in CustomizationController>
assign vhCustomizationController = vhFcComponent.