code: public TomcatService build() {
          // Create a temporary directory and use it if baseDir is not set.
          Path baseDir = this.baseDir;
          if (baseDir == null) {
              try {
                  baseDir = Files.createTempDirectory("tomcat-armeria.");
              } catch (IOException e) {
                  throw new TomcatServiceException("failed to create a temporary directory", e);
              }
  
              try {
                  Files.setPosixFilePermissions(baseDir, EnumSet.of(PosixFilePermission.OWNER_READ,
                                                                    PosixFilePermission.OWNER_WRITE,
                                                                    PosixFilePermission.OWNER_EXECUTE));
              } catch (UnsupportedOperationException ignored) {
                  // Windows?
              } catch (IOException e) {
                  throw new TomcatServiceException("failed to secure a temporary directory", e);
              }
          }
  
          // Use a NullRealm if no Realm was specified.
          Realm realm = this.realm;
          if (realm == null) {
              realm = new NullRealm();
          }
  
          return TomcatService.forConfig(new TomcatServiceConfig(
                  serviceName, engineName, baseDir, realm, hostname, docBase, jarRoot,
                  Collections.unmodifiableList(configurators)));
      }
docs: Returns a newly-created {@link TomcatService} based on the properties of this builder.