Partially resolve resource leak warnings in aai-common
[aai/aai-common.git] / aai-core / src / main / java / org / onap / aai / ingestModel / CreateWidgetModels.java
index 1d66a8a..14057e0 100644 (file)
@@ -75,82 +75,83 @@ public class CreateWidgetModels {
             System.exit(0);
         }
 
-        AnnotationConfigApplicationContext ctx =
-                new AnnotationConfigApplicationContext("org.onap.aai.config", "org.onap.aai.setup");
+        try (AnnotationConfigApplicationContext ctx =
+                new AnnotationConfigApplicationContext("org.onap.aai.config", "org.onap.aai.setup")) {
+            LoaderFactory loaderFactory = ctx.getBean(LoaderFactory.class);
+            Loader loader = loaderFactory.createLoaderForVersion(ModelType.MOXY, new SchemaVersion(_apiVersion));
 
-        LoaderFactory loaderFactory = ctx.getBean(LoaderFactory.class);
-        Loader loader = loaderFactory.createLoaderForVersion(ModelType.MOXY, new SchemaVersion(_apiVersion));
+            // iterate the collection of resources
 
-        // iterate the collection of resources
+            ArrayList<String> processedWidgets = new ArrayList<String>();
+            for (Entry<String, Introspector> aaiResEnt : loader.getAllObjects().entrySet()) {
+                Introspector meObject = loader.introspectorFromName("model");
+                // no need for a ModelVers DynamicEntity
 
-        ArrayList<String> processedWidgets = new ArrayList<String>();
-        for (Entry<String, Introspector> aaiResEnt : loader.getAllObjects().entrySet()) {
-            Introspector meObject = loader.introspectorFromName("model");
-            // no need for a ModelVers DynamicEntity
+                Introspector aaiRes = aaiResEnt.getValue();
 
-            Introspector aaiRes = aaiResEnt.getValue();
+                if (!(aaiRes.isContainer() || aaiRes.getName().equals("aai-internal"))) {
+                    String resource = aaiRes.getName();
 
-            if (!(aaiRes.isContainer() || aaiRes.getName().equals("aai-internal"))) {
-                String resource = aaiRes.getName();
-
-                if (processedWidgets.contains(resource)) {
-                    continue;
-                }
-
-                Set<String> introspectorProperties = aaiRes.getProperties();
-
-                if (!(introspectorProperties.contains("model-version-id")
-                        && introspectorProperties.contains("model-invariant-id"))) {
-                    System.out.println(aaiRes.getDbName() + " does not contain model properties so skipping");
-                }
-                processedWidgets.add(resource);
-
-                String widgetName = resource;
-                String filePathString = widgetJsonDir + "/" + widgetName + "-" + modelVersion + ".json";
-                File f = new File(filePathString);
-
-                String filePathString2 =
-                        widgetJsonDir + "/../widget-model-json-old/" + widgetName + "-" + modelVersion + ".json";
-                File f2 = new File(filePathString2);
+                    if (processedWidgets.contains(resource)) {
+                        continue;
+                    }
 
-                if (!f.exists() && !f.isDirectory()) {
+                    Set<String> introspectorProperties = aaiRes.getProperties();
 
-                    if (f2.exists()) {
-                        System.out.println("Using old file for " + resource + ".");
+                    if (!(introspectorProperties.contains("model-version-id")
+                            && introspectorProperties.contains("model-invariant-id"))) {
+                        System.out.println(aaiRes.getDbName() + " does not contain model properties so skipping");
+                    }
+                    processedWidgets.add(resource);
+
+                    String widgetName = resource;
+                    String filePathString = widgetJsonDir + "/" + widgetName + "-" + modelVersion + ".json";
+                    File f = new File(filePathString);
+
+                    String filePathString2 =
+                            widgetJsonDir + "/../widget-model-json-old/" + widgetName + "-" + modelVersion + ".json";
+                    File f2 = new File(filePathString2);
+
+                    if (!f.exists() && !f.isDirectory()) {
+
+                        if (f2.exists()) {
+                            System.out.println("Using old file for " + resource + ".");
+
+                            meObject = loader.unmarshal("model", new StreamSource(f2).getReader().toString());
+                            // override, some of them are wrong
+                            meObject.setValue("model-version", modelVersion);
+                        } else {
+                            System.out.println("Making new file for " + resource + ".");
+                            meObject.setValue("model-invariant-id", UUID.randomUUID().toString());
+                            meObject.setValue("model-type", "widget");
+                            Introspector mevObject = loader.introspectorFromName("model-ver");
+                            Introspector mevsObject = loader.introspectorFromName("model-vers");
+                            mevObject.setValue("model-version-id", UUID.randomUUID().toString());
+                            mevObject.setValue("model-version", modelVersion);
+                            mevObject.setValue("model-Name", widgetName);
+                            // make a list of dynamic Entities
+                            List<Object> mevsList = new ArrayList<>();
+                            // add this one, it will be the only one in the list in this case
+                            mevsList.add(mevObject.getUnderlyingObject());
+                            mevsObject.setValue("model-ver", mevsList);
+                            // Have to figure out how to add my mev object to the mevsObject,
+                            // the modelVers is a list of dynamic entities so we can just attach the array here
+                            meObject.setValue("model-vers", mevsObject.getUnderlyingObject());
+                        }
+
+                        // put it out as JSON
+
+                        PrintWriter out = new PrintWriter(f);
+                        out.println(meObject.marshal(true));
+                        out.close();
 
-                        meObject = loader.unmarshal("model", new StreamSource(f2).getReader().toString());
-                        // override, some of them are wrong
-                        meObject.setValue("model-version", modelVersion);
                     } else {
-                        System.out.println("Making new file for " + resource + ".");
-                        meObject.setValue("model-invariant-id", UUID.randomUUID().toString());
-                        meObject.setValue("model-type", "widget");
-                        Introspector mevObject = loader.introspectorFromName("model-ver");
-                        Introspector mevsObject = loader.introspectorFromName("model-vers");
-                        mevObject.setValue("model-version-id", UUID.randomUUID().toString());
-                        mevObject.setValue("model-version", modelVersion);
-                        mevObject.setValue("model-Name", widgetName);
-                        // make a list of dynamic Entities
-                        List<Object> mevsList = new ArrayList<>();
-                        // add this one, it will be the only one in the list in this case
-                        mevsList.add(mevObject.getUnderlyingObject());
-                        mevsObject.setValue("model-ver", mevsList);
-                        // Have to figure out how to add my mev object to the mevsObject,
-                        // the modelVers is a list of dynamic entities so we can just attach the array here
-                        meObject.setValue("model-vers", mevsObject.getUnderlyingObject());
+                        System.out.println("File already exists for " + resource + ".  Skipping.");
                     }
-
-                    // put it out as JSON
-
-                    PrintWriter out = new PrintWriter(f);
-                    out.println(meObject.marshal(true));
-                    out.close();
-
-                } else {
-                    System.out.println("File already exists for " + resource + ".  Skipping.");
                 }
             }
         }
+
         System.exit(0);
     }
 }