- resourcesJsFile.createNewFile();
- BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(resourcesJsFile));
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
-
- // Write resource listing to JS file
- ResourceList resourceList = super.getResourceListing(null, context, "");
- String resourceListJson = mapper.writeValueAsString(resourceList);
- resourceListJson = resourceListJson.replace("\'", "\\\'").replace("\\n", "\\\\n");
- bufferedWriter.write("function getSpec() {\n\treturn \'" + resourceListJson + "\';\n}\n\n");
-
- // Write resources/APIs to JS file and to disk
- bufferedWriter.write("function jsonFor(resource) {\n\tswitch(resource) {\n");
- for (Resource resource : resourceList.getApis()) {
- int revisionIndex = resource.getPath().indexOf('(');
- String name = resource.getPath().substring(0, revisionIndex);
- String revision = resource.getPath().substring(revisionIndex + 1, resource.getPath().length() - 1);
- ApiDeclaration apiDeclaration = super.getApiDeclaration(name, revision, null, context, "");
- String json = mapper.writeValueAsString(apiDeclaration);
- // Manually insert models because org.json.JSONObject cannot be serialized by ObjectMapper
- json = json.replace(
- "\"models\":{}", "\"models\":" + apiDeclaration.getModels().toString().replace("\\\"", "\""));
- // Escape single quotes and new lines
- json = json.replace("\'", "\\\'").replace("\\n", "\\\\n");
- bufferedWriter.write("\t\tcase \"" + name + "(" + revision + ")\": return \'" + json + "\';\n");
-
- File resourceFile = new File(resourcesDir, name + "(" + revision + ").json");
- BufferedWriter resourceFileWriter = new BufferedWriter(new FileWriter(resourceFile));
- resourceFileWriter.write(json);
- resourceFileWriter.close();
- result.add(resourceFile);
+ if (!resourcesJsFile.createNewFile()) {
+ LOG.info("File " + resourcesJsFile + " already exists.");
+ }
+
+ try (BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(resourcesJsFile))) {
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
+
+ // Write resource listing to JS file
+ ResourceList resourceList = super.getResourceListing(null, context, "");
+ String resourceListJson = mapper.writeValueAsString(resourceList);
+ resourceListJson = resourceListJson.replace("\'", "\\\'").replace("\\n", "\\\\n");
+ bufferedWriter.write("function getSpec() {\n\treturn \'" + resourceListJson + "\';\n}\n\n");
+
+ // Write resources/APIs to JS file and to disk
+ bufferedWriter.write("function jsonFor(resource) {\n\tswitch(resource) {\n");
+ for (Resource resource : resourceList.getApis()) {
+ int revisionIndex = resource.getPath().indexOf('(');
+ String name = resource.getPath().substring(0, revisionIndex);
+ String revision = resource.getPath().substring(revisionIndex + 1, resource.getPath().length() - 1);
+ ApiDeclaration apiDeclaration = super.getApiDeclaration(name, revision, null, context, "");
+ String json = mapper.writeValueAsString(apiDeclaration);
+ // Manually insert models because org.json.JSONObject cannot be serialized by ObjectMapper
+ json = json.replace(
+ "\"models\":{}", "\"models\":" + apiDeclaration.getModels().toString().replace("\\\"", "\""));
+ // Escape single quotes and new lines
+ json = json.replace("\'", "\\\'").replace("\\n", "\\\\n");
+ bufferedWriter.write("\t\tcase \"" + name + "(" + revision + ")\": return \'" + json + "\';\n");
+
+ File resourceFile = new File(resourcesDir, name + "(" + revision + ").json");
+
+ try (BufferedWriter resourceFileWriter = new BufferedWriter(new FileWriter(resourceFile))) {
+ resourceFileWriter.write(json);
+ }
+
+ result.add(resourceFile);
+ }
+ bufferedWriter.write("\t}\n\treturn \"\";\n}");