Patent Document ID: 9558017
Application ID: 14218555
Patent Flag: 1

Claim One:
1. A computer system including instructions recorded on a non-transitory computer-readable medium and executable by at least one processor, the system comprising: a conflict resolution manager configured to cause the at least one processor to manage software component dependencies for applications using declarative constraint definitions, the conflict resolution manager including, a component analyzer configured to analyze and detect direct and transitive software component dependencies on one or more libraries; a constraint checker configured to enable specification of constraint definitions in a declarative language, and to identify and check software component dependencies for one or more libraries that violate the constraint definitions including accessing at least one database with stored vulnerability data and comparing the one or more libraries to the vulnerability data to identify, in a manifest file, one or more violations of the constraint definitions; an optimizer configured to implement an algorithm for, analyzing applications and resolving software component dependencies on the one or more libraries that violate the constraint definition, wherein resolving software component dependencies includes, generating a plurality of dependency expressions using the declarative language, iteratively determining a subset of the plurality of dependency expressions that satisfy the constraint definitions, and rewriting the manifest file to omit one or more libraries that violate the subset of the plurality of dependency expressions, the manifest file being rewritten in response to determining at least one software component violates at least one constraint declared in the manifest file, wherein rewriting the manifest file further includes determining a plurality of libraries that are unused by the at least one software component and removing the plurality of libraries that are unused from the manifest file; and a storage handler configured to access a database and store information related to the constraint definitions, the software component dependencies, and the algorithm for analyzing applications and resolving software component dependencies.