Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 663216

Summary: RFE: Change CMAKE_JAR_CLASSES_PREFIX to allow for a list of prefixes . . .
Product: [Retired] Dogtag Certificate System Reporter: Matthew Harmsen <mharmsen>
Component: BuildAssignee: Andreas Schneider <asn>
Status: CLOSED CURRENTRELEASE QA Contact: Chandrasekar Kannan <ckannan>
Severity: medium Docs Contact:
Priority: high    
Version: 9.0CC: awnuk, benl, jgalipea, kwright
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-09-16 08:27:19 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 541012    

Description Matthew Harmsen 2010-12-15 00:55:51 UTC
While CMAKE_JAR_CLASSES_PREFIX should still be able to provide a single prefix, it should also be changed to allow for a list of prefixes.

As provided in https://bugzilla.redhat.com/attachment.cgi?id=467558 to "Bugzilla Bug #643206 - New CMake based build system for Dogtag", allow CMAKE_JAR_CLASSES_PREFIX to provide a list of prefixes rather than just a single prefix.

This would possibly require changes to the following CMAKE Modules:

    * pki/cmake/Modules/UseJavaClassFilelist.cmake
    * pki/cmake/Modules/UseJava.cmake

For example, CMAKE_JAR_CLASSES_PREFIX is currently utilized in "pki/base/common/src/CMakeLists.txt" to build three distinct jars:

    * certsrv.jar (containing all "com/netscape/certsrv/*.class")
    * cms.jar     (containing all "com/netscape/cms/*.class")
    * cmscore.jar (containing all "com/netscape/cmscore/*.class")

by providing individual invocations of this variable:

    * set(CMAKE_JAR_CLASSES_PREFIX com/netscape/certsrv)
    * set(CMAKE_JAR_CLASSES_PREFIX com/netscape/cms)
    * set(CMAKE_JAR_CLASSES_PREFIX com/netscape/cmscore)

While this is works correctly for this particular case, it should be possible for a user to specify something similar to the following:

    * set(CMAKE_JAR_CLASSES_PREFIX com/redhat/foo com/redhat/ack )
    * set(CMAKE_JAR_CLASSES_PREFIX com/redhat/bar)

to produce two jars from a single component:

    * foo.jar (containing all "com/redhat/foo/*.class" AND
               "com/redhat/ack.class")
    * bar.jar (containing all "com/redhat/bar/*.class")

Comment 1 Andreas Schneider 2010-12-20 16:49:26 UTC
This has been implemented!