Consultor Eletrônico



Kbase P145597: Webclient does not automatically download modules that contain interfaces when that interface is "re
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   5/5/2009
Status: Unverified

SYMPTOM(s):

Webclient does not automatically download modules that contain interfaces when that interface is "referenced"

FACT(s) (Environment):

2 modules/components setup in the Webclient deployment, module1 and module2
Module2 was setup in the Webclient assembler with Download mode = As needed.
Class class1 in module1 implements an interface interface1 from module2.
Windows
OpenEdge 10.x

CAUSE:

This is expected behavior. Dependencies are not checked on include files as those would be eliminated in the compiled r-code. Furthermore WebClient does not include the full compiler, so it will not be doing this operation itself.
Interfaces are different in that they need to be compiled and deployed (like classes/procedures) but are never explicitly loaded using ABL syntax.
The same holds true for static class members - these too will cause r-code to be loaded simply by being referenced rather than by being explicitly instantiated.

FIX:


Do not implement the interface as an as-needed component. This specific logic split between components is not consistent. This choice is similar
to putting a widely used utility program into an as-needed component. The component would need to be downloaded anyway.
For any program/class/interface referenced by programs in multiple as-needed modules, it might make more sense to include it in the at-startup component