X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=auth%2Fauth-batch%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faaf%2Fauth%2Fbatch%2Freports%2Fbodies%2FNotifyBody.java;h=b002dd8bf1565d2195fd276f73272197038c14fc;hb=3a9d138300642c3d09c8dc4bdc3f7413abfd584a;hp=ec8d1451ca20c0e9f2bf3440831cce40173b2f76;hpb=3d1706fcbe7f95830ff6fd23cf679ee55c6d0595;p=aaf%2Fauthz.git diff --git a/auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/reports/bodies/NotifyBody.java b/auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/reports/bodies/NotifyBody.java index ec8d1451..b002dd8b 100644 --- a/auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/reports/bodies/NotifyBody.java +++ b/auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/reports/bodies/NotifyBody.java @@ -3,13 +3,14 @@ * org.onap.aaf * =========================================================================== * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * Modifications Copyright (C) 2019 IBM. * =========================================================================== * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -52,13 +53,13 @@ public abstract class NotifyBody { protected Map>> rows; protected final String env; protected final String gui_url; - + private final String name; private final String type; private String date; private int escalation; private int count; - + public NotifyBody(Access access, final String type, final String name) { rows = new TreeMap<>(); this.name = name; @@ -69,7 +70,7 @@ public abstract class NotifyBody { env = access.getProperty("CASS_ENV","DEVL"); gui_url = access.getProperty("GUI_URL", ""); } - + public void store(List row) { if(!row.isEmpty()) { if("info".equals(row.get(0))) { @@ -79,11 +80,10 @@ public abstract class NotifyBody { if(row.size()>3) { escalation = Integer.parseInt(row.get(3)); } - return; } else if(type.equals(row.get(0))) { String user = user(row); if(user!=null) { - List> lss = rows.get(user); + List> lss = rows.get(user); if(lss == null) { lss = new ArrayList<>(); rows.put(user,lss); @@ -97,25 +97,25 @@ public abstract class NotifyBody { public String name() { return name; } - + public String type() { return type; } - + public String date() { return date; } public int escalation() { return escalation; } - + public Set users() { return rows.keySet(); } - + /** * ID must be set from Row for Email lookup - * + * * @param trans * @param n * @param id @@ -123,30 +123,30 @@ public abstract class NotifyBody { * @return */ public abstract boolean body(AuthzTrans trans, StringBuilder sb, int indent, Notify n, String id); - + /** * Return "null" if user not found in row... Code will handle. * @param row * @return */ protected abstract String user(List row); - + /** * Provide a context-sensitive Subject, which includes ENV as well as details - * + * * @return */ public abstract String subject(); /** * Record the fact that a particular Notification was marked as "sent" by Emailer. - * + * * @param trans * @param approver * @param ln */ public abstract void record(AuthzTrans trans, StringBuilder query, String id, List notified, LastNotified ln); - + /** * Get Notify Body based on key of * type|name @@ -154,10 +154,10 @@ public abstract class NotifyBody { public static NotifyBody get(String key) { return bodyMap.get(key); } - + /** * Return set of loaded NotifyBodies - * + * */ public static Collection getAll() { // Note: The same Notify Body is entered several times with different keys. @@ -166,11 +166,11 @@ public abstract class NotifyBody { set.addAll(bodyMap.values()); return set; } - + /** - * @param propAccess - * @throws URISyntaxException - * + * @param propAccess + * @throws URISyntaxException + * */ public static void load(Access access) throws APIException, IOException { // class load available NotifyBodies @@ -179,57 +179,59 @@ public abstract class NotifyBody { String path = pkg.getName().replace('.', '/'); URL url = cl.getResource(path); List classNames = new ArrayList<>(); - String urlString = url.toString(); - if(urlString.startsWith("jar:file:")) { - int exclam = urlString.lastIndexOf('!'); - JarFile jf = new JarFile(urlString.substring(9,exclam)); - try { - Enumeration jfe = jf.entries(); - while(jfe.hasMoreElements()) { - String name = jfe.nextElement().getName(); - if(name.startsWith(path) && name.endsWith(".class")) { - classNames.add(name.substring(0,name.length()-6).replace('/', '.')); + String urlString; + if (url != null) { + urlString = url.toString(); + if (urlString.startsWith("jar:file:")) { + int exclam = urlString.lastIndexOf('!'); + JarFile jf = new JarFile(urlString.substring(9, exclam)); + try { + Enumeration jfe = jf.entries(); + while (jfe.hasMoreElements()) { + String name = jfe.nextElement().getName(); + if (name.startsWith(path) && name.endsWith(".class")) { + classNames.add(name.substring(0, name.length() - 6).replace('/', '.')); + } } + } finally { + jf.close(); } - } finally { - jf.close(); - } - } else { - File dir = new File(url.getFile()); - for( String f : dir.list()) { - if(f.endsWith(".class")) { - classNames.add(pkg.getName()+'.'+f.substring(0,f.length()-6)); + } else { + File dir = new File(url.getFile()); + String[] dirs = dir.list(); + if (dirs != null) { + for (String f : dirs) { + if (f.endsWith(".class")) { + classNames.add(pkg.getName() + '.' + f.substring(0, f.length() - 6)); + } + } } } - } - for(String cls : classNames) { - try { - Class c = cl.loadClass(cls); - if(c!=null) { - if(!Modifier.isAbstract(c.getModifiers())) { + for (String cls : classNames) { + try { + Class c = cl.loadClass(cls); + if ((c != null) && (!Modifier.isAbstract(c.getModifiers()))) { Constructor cst = c.getConstructor(Access.class); - NotifyBody nb = (NotifyBody)cst.newInstance(access); - if(nb!=null) { - bodyMap.put("info|"+nb.name, nb); - bodyMap.put(nb.type+'|'+nb.name, nb); - } + NotifyBody nb = (NotifyBody) cst.newInstance(access); + bodyMap.put("info|" + nb.name, nb); + bodyMap.put(nb.type + '|' + nb.name, nb); } + } catch (ClassNotFoundException | NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { + e.printStackTrace(); } - } catch (ClassNotFoundException | NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { - e.printStackTrace(); } } } protected void print(StringBuilder sb, int indent, Object ... objs) { - for(int i=0;i",current,""); } - + public synchronized void inc() { ++count; } - + public int count() { return count; }