code: protected String getApplicationFilename() {
          // A project doesn't build a web application artifact but getting the
          // application artifacts from dependencies. e.g. liberty-assembly type
          // project.
          if ("dependencies".equals(getInstallAppPackages())) {
              return null;
          }
  
          // project artifact has not be created yet when create-server goal is
          // called in pre-package phase
          String name = project.getBuild().getFinalName();
          if (stripVersion) {
              int versionBeginIndex = project.getBuild().getFinalName().lastIndexOf("-" + project.getVersion());
              if (versionBeginIndex != -1) {
                  name = project.getBuild().getFinalName().substring(0, versionBeginIndex);
              }
          }
  
          // liberty only supports these application types: ear, war, eba, esa
          switch (project.getPackaging()) {
          case "ear":
          case "war":
          case "eba":
          case "esa":
              name += "." + project.getPackaging();
              if (looseApplication) {
                  name += ".xml";
              }
              break;
          case "liberty-assembly":
              // assuming liberty-assembly project will also have a war file
              // output.
              File dir = getWarSourceDirectory(project);
              if (dir.exists()) {
                  name += ".war";
                  if (looseApplication) {
                      name += ".xml";
                  }
              }
              break;
          default:
              log.debug("The project artifact cannot be installed to a Liberty server because " + project.getPackaging()
                      + " is not a supported packaging type.");
              name = null;
              break;
          }
  
          return name;
      }
docs: /*
  return the filename of the project artifact to be installed by
  install-apps goal