class KPM::BaseInstaller

def install_killbill_server(specified_group_id = nil, specified_artifact_id = nil, specified_packaging = nil, specified_classifier = nil, specified_version = nil, specified_webapp_path = nil, bundles_dir = nil, force_download = false, verify_sha1 = true)

def install_killbill_server(specified_group_id = nil, specified_artifact_id = nil, specified_packaging = nil, specified_classifier = nil, specified_version = nil, specified_webapp_path = nil, bundles_dir = nil, force_download = false, verify_sha1 = true)
  group_id = specified_group_id || KPM::BaseArtifact::KILLBILL_GROUP_ID
  artifact_id = specified_artifact_id || KPM::BaseArtifact::KILLBILL_ARTIFACT_ID
  packaging = specified_packaging || KPM::BaseArtifact::KILLBILL_PACKAGING
  classifier = specified_classifier || KPM::BaseArtifact::KILLBILL_CLASSIFIER
  version = specified_version || LATEST_VERSION
  webapp_path = specified_webapp_path || KPM.root
  bundles_dir = Pathname.new(bundles_dir || DEFAULT_BUNDLES_DIR).expand_path
  sha1_file = "#{bundles_dir}/#{SHA1_FILENAME}"
  if version == LATEST_VERSION
    latest_stable_version = KPM::Installer.get_kb_latest_stable_version
    version = latest_stable_version unless latest_stable_version.nil?
  end
  @logger.debug("Installing Kill Bill server: group_id=#{group_id} artifact_id=#{artifact_id} packaging=#{packaging} classifier=#{classifier} version=#{version} webapp_path=#{webapp_path}")
  artifact_info = KPM::KillbillServerArtifact.pull(@logger,
                                                   group_id,
                                                   artifact_id,
                                                   packaging,
                                                   classifier,
                                                   version,
                                                   webapp_path,
                                                   sha1_file,
                                                   force_download,
                                                   verify_sha1,
                                                   @nexus_config,
                                                   @nexus_ssl_verify)
  # store trace info to be returned as JSON by the KPM::Installer.install method
  @trace_logger.add('killbill', nil,
                    artifact_info.merge('status' => (artifact_info[:skipped] ? 'UP_TO_DATE' : 'INSTALLED'),
                                        :group_id => group_id, :artifact_id => artifact_id, :packaging => packaging, :classifier => classifier))
end