[Pki-devel] [PATCH] 316 Fixed dependency issue on PublisherProcessor.

Andrew Wnuk awnuk at redhat.com
Wed Sep 25 21:13:09 UTC 2013


On 09/25/2013 07:52 AM, Endi Sukma Dewata wrote:
> On 9/24/2013 11:58 AM, Andrew Wnuk wrote:
>> Endi,
>>
>> According to
>> http://pki.fedoraproject.org/wiki/PKI_Interface_Design_%28Legacy%29 you
>> moved PublisherProcessor from private to public area.
>> Could you provide more details why is this necessary?
>>
>> Andrew
>
> Andrew,
>
> I'm trying to remove the circular dependencies between the packages so 
> eventually they will be able to be built separately in this order:
>
> 1. certsrv
> 2. cmscore
> 3. cms
>
> Currently they appear to be compiled separately (see javac invocations 
> in base/common/src/CMakeLists.txt), but it actually only works because 
> they are all stored in the same source folder. Once you separate the 
> packages into different folders the build will fail due to these 
> 'hidden' dependencies.
>
> The main reason for separation is because certsrv is distributed on 
> the client machine but the cms and cmscore are not, so we need to make 
> sure certsrv can be built independently. About cms and cmscore, I 
> think they actually can be merged into the same package, but for now 
> they will remain separate for historical reasons. But still, I think 
> we should remove any circular dependency between them, otherwise there 
> really is no technical reason to keep them separate because one will 
> not work without the other.
>
> Originally I thought the build order should be certsrv, cms, then 
> cmscore (because usually private implementation is build last), but 
> after some discussions it appears that cmscore contains utilities used 
> by cms, so the order should be certsrv, cmscore, and cms. Is this the 
> correct order?
>
> Since originally PublisherProcessor was in cmscore and it depends on 
> other classes in cms package (FileBasedPublisher, LdapCertSubjMap, 
> etc.), there are several ways to fix the dependency:
>
> 1. Move PublisherProcessor into cms package. This is the simplest 
> solution, which this patch is trying to do.
> 2. Move the classes used by PublisherProcessor from cms into cmscore, 
> but there are quite a few of them, I'm not sure if it makes sense.
> 3. Create interfaces of those classes in certsrv and modify 
> PublisherProcessor to use the interfaces. This makes the code more 
> complicated than necessary.
>
> Let me know what you think. Thanks.
>

Endi,

Would you mind if we would discuss this on Monday's meeting to make sure 
that we have a consensus?

Andrew




More information about the Pki-devel mailing list