xiejun
2024-11-01 80b6cbfc9c861469146318d0b3dd5f8b8b525b8a
Source/BladeX-Tool/blade-core-auto/src/main/java/org/springblade/core/auto/factories/FactoriesFiles.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,80 @@
/*
 *      Copyright (c) 2018-2028, DreamLu All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: DreamLu å¢æ˜¥æ¢¦ (596392912@qq.com)
 */
package org.springblade.core.auto.factories;
import org.springblade.core.auto.common.MultiSetMap;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.Set;
import java.util.StringJoiner;
/**
 * spring boot è‡ªåŠ¨åŒ–é…ç½®å·¥å…·ç±»
 *
 * @author L.cm
 */
class FactoriesFiles {
   private static final Charset UTF_8 = StandardCharsets.UTF_8;
   /**
    * å†™å‡º spring.factories æ–‡ä»¶
    * @param factories factories ä¿¡æ¯
    * @param output è¾“出流
    * @throws IOException å¼‚常信息
    */
   static void writeFactoriesFile(MultiSetMap<String, String> factories,
                           OutputStream output) throws IOException {
      BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(output, UTF_8));
      Set<String> keySet = factories.keySet();
      for (String key : keySet) {
         Set<String> values = factories.get(key);
         if (values == null || values.isEmpty()) {
            continue;
         }
         writer.write(key);
         writer.write("=\\\n  ");
         StringJoiner joiner = new StringJoiner(",\\\n  ");
         for (String value : values) {
            joiner.add(value);
         }
         writer.write(joiner.toString());
         writer.newLine();
      }
      writer.flush();
      output.close();
   }
   /**
    * å†™å‡º spring-devtools.properties
    * @param projectName é¡¹ç›®å
    * @param output è¾“出流
    * @throws IOException å¼‚常信息
    */
   static void writeDevToolsFile(String projectName,
                          OutputStream output) throws IOException {
      BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(output, UTF_8));
      String format = "restart.include.%s=/%s[\\\\w-]+\\.jar";
      writer.write(String.format(format, projectName, projectName));
      writer.flush();
      output.close();
   }
}