From 7446f23b3abc30d7c53f2eaa951742371c071171 Mon Sep 17 00:00:00 2001 From: Herbert Eiselt Date: Thu, 28 Feb 2019 15:23:42 +0100 Subject: UX extensions UX Maintenance client and further changes Change-Id: I7643661d17db5fc3d3f94b58cb42ed0be558c64f Issue-ID: SDNC-583 Signed-off-by: Herbert Eiselt --- .../opensymphony/xwork2/util/ClassLoaderUtil.java | 37 +++++++------ .../wt/odlux/model/bundles/ClassLoaderUtilExt.java | 21 +++++--- .../wt/odlux/model/bundles/IndexOdlBundle.java | 12 +++++ .../sdnr/wt/odlux/model/bundles/OdluxBundle.java | 51 ------------------ .../wt/odlux/model/bundles/OdluxBundleList.java | 20 ------- .../wt/odlux/model/bundles/OdluxBundleLoader.java | 7 ++- .../odlux/model/bundles/OdluxBundleLoaderImpl.java | 62 ---------------------- .../model/bundles/OdluxBundleResourceAccess.java | 18 +++++++ 8 files changed, 69 insertions(+), 159 deletions(-) create mode 100644 sdnr/wt/odlux/core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/model/bundles/IndexOdlBundle.java delete mode 100644 sdnr/wt/odlux/core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/model/bundles/OdluxBundleList.java delete mode 100644 sdnr/wt/odlux/core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/model/bundles/OdluxBundleLoaderImpl.java create mode 100644 sdnr/wt/odlux/core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/model/bundles/OdluxBundleResourceAccess.java (limited to 'sdnr/wt/odlux/core/model/src/main/java') diff --git a/sdnr/wt/odlux/core/model/src/main/java/com/opensymphony/xwork2/util/ClassLoaderUtil.java b/sdnr/wt/odlux/core/model/src/main/java/com/opensymphony/xwork2/util/ClassLoaderUtil.java index 10705b0ea..133b08494 100644 --- a/sdnr/wt/odlux/core/model/src/main/java/com/opensymphony/xwork2/util/ClassLoaderUtil.java +++ b/sdnr/wt/odlux/core/model/src/main/java/com/opensymphony/xwork2/util/ClassLoaderUtil.java @@ -1,12 +1,12 @@ /* * Copyright 2002-2003,2009 The Apache Software Foundation. - * + * * 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. @@ -27,7 +27,7 @@ import java.util.*; * * It has come out of many months of frustrating use of multiple application servers at Atlassian, * please don't change things unless you're sure they're not going to break in one server or another! - * + * * It was brought in from oscore trunk revision 147. * * @author $Author$ @@ -37,7 +37,7 @@ public class ClassLoaderUtil { //~ Methods //////////////////////////////////////////////////////////////// /** - * Load all resources with a given name, potentially aggregating all results + * Load all resources with a given name, potentially aggregating all results * from the searched classloaders. If no results are found, the resource name * is prepended by '/' and tried again. * @@ -51,9 +51,9 @@ public class ClassLoaderUtil { * @param resourceName The name of the resources to load * @param callingClass The Class object of the calling object */ - public static Iterator getResources(String resourceName, Class callingClass, boolean aggregate) throws IOException { + public static Iterator getResources(String resourceName, Class callingClass, boolean aggregate) throws IOException { - AggregateIterator iterator = new AggregateIterator(); + AggregateIterator iterator = new AggregateIterator<>(); iterator.addEnumeration(Thread.currentThread().getContextClassLoader().getResources(resourceName)); @@ -69,7 +69,7 @@ public class ClassLoaderUtil { } } - if (!iterator.hasNext() && (resourceName != null) && ((resourceName.length() == 0) || (resourceName.charAt(0) != '/'))) { + if (!iterator.hasNext() && resourceName != null && (resourceName.length() == 0 || resourceName.charAt(0) != '/')) { return getResources('/' + resourceName, callingClass, aggregate); } @@ -89,7 +89,7 @@ public class ClassLoaderUtil { * @param resourceName The name IllegalStateException("Unable to call ")of the resource to load * @param callingClass The Class object of the calling object */ - public static URL getResource(String resourceName, Class callingClass) { + public static URL getResource(String resourceName, Class callingClass) { URL url = Thread.currentThread().getContextClassLoader().getResource(resourceName); if (url == null) { @@ -104,7 +104,7 @@ public class ClassLoaderUtil { } } - if ((url == null) && (resourceName != null) && ((resourceName.length() == 0) || (resourceName.charAt(0) != '/'))) { + if (url == null && resourceName != null && (resourceName.length() == 0 || resourceName.charAt(0) != '/')) { return getResource('/' + resourceName, callingClass); } @@ -119,11 +119,11 @@ public class ClassLoaderUtil { * @param resourceName The name of the resource to load * @param callingClass The Class object of the calling object */ - public static InputStream getResourceAsStream(String resourceName, Class callingClass) { + public static InputStream getResourceAsStream(String resourceName, Class callingClass) { URL url = getResource(resourceName, callingClass); try { - return (url != null) ? url.openStream() : null; + return url != null ? url.openStream() : null; } catch (IOException e) { return null; } @@ -144,7 +144,7 @@ public class ClassLoaderUtil { * @param callingClass The Class object of the calling object * @throws ClassNotFoundException If the class cannot be found anywhere. */ - public static Class loadClass(String className, Class callingClass) throws ClassNotFoundException { + public static Class loadClass(String className, Class callingClass) throws ClassNotFoundException { try { return Thread.currentThread().getContextClassLoader().loadClass(className); } catch (ClassNotFoundException e) { @@ -166,10 +166,10 @@ public class ClassLoaderUtil { */ static class AggregateIterator implements Iterator { - LinkedList> enums = new LinkedList>(); + LinkedList> enums = new LinkedList<>(); Enumeration cur = null; E next = null; - Set loaded = new HashSet(); + Set loaded = new HashSet<>(); public AggregateIterator addEnumeration(Enumeration e) { if (e.hasMoreElements()) { @@ -184,10 +184,12 @@ public class ClassLoaderUtil { return this; } + @Override public boolean hasNext() { - return (next != null); + return next != null; } + @Override public E next() { if (next != null) { E prev = next; @@ -228,8 +230,9 @@ public class ClassLoaderUtil { } + @Override public void remove() { throw new UnsupportedOperationException(); } } -} \ No newline at end of file +} diff --git a/sdnr/wt/odlux/core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/model/bundles/ClassLoaderUtilExt.java b/sdnr/wt/odlux/core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/model/bundles/ClassLoaderUtilExt.java index 08d243666..4b58aac44 100644 --- a/sdnr/wt/odlux/core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/model/bundles/ClassLoaderUtilExt.java +++ b/sdnr/wt/odlux/core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/model/bundles/ClassLoaderUtilExt.java @@ -6,9 +6,9 @@ * ================================================================================================= * 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. See the License for the specific language governing permissions and limitations under @@ -30,15 +30,14 @@ public class ClassLoaderUtilExt { final static Logger LOG = LoggerFactory.getLogger(ClassLoaderUtilExt.class); - public static URL getResource(String resourceName, Class callingClass) { + public static URL getResource(String resourceName, Class callingClass) { Iterator urls = null; URL url = null; try { urls = getResources(resourceName, callingClass, true); } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); + LOG.debug("No resource {}",resourceName); } if (urls != null) { while (urls.hasNext()) { @@ -51,12 +50,20 @@ public class ClassLoaderUtilExt { if (url == null) { LOG.debug("res currently not found. try to find with bundle"); Bundle b = FrameworkUtil.getBundle(callingClass); - url = b.getEntry(resourceName); + if(b!=null) + { + url = b.getEntry(resourceName); + } + else { + ClassLoader loader = Thread.currentThread().getContextClassLoader(); + url = loader.getResource(resourceName); + } + } return url; } - public static Iterator getResources(String resourceName, Class callingClass, boolean aggregate) + public static Iterator getResources(String resourceName, Class callingClass, boolean aggregate) throws IOException { return ClassLoaderUtil.getResources(resourceName, callingClass, aggregate); } diff --git a/sdnr/wt/odlux/core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/model/bundles/IndexOdlBundle.java b/sdnr/wt/odlux/core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/model/bundles/IndexOdlBundle.java new file mode 100644 index 000000000..66ff5658a --- /dev/null +++ b/sdnr/wt/odlux/core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/model/bundles/IndexOdlBundle.java @@ -0,0 +1,12 @@ +/* + * Copyright (c) 2019 Red Hat, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.onap.ccsdk.features.sdnr.wt.odlux.model.bundles; + +public interface IndexOdlBundle { + +} diff --git a/sdnr/wt/odlux/core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/model/bundles/OdluxBundle.java b/sdnr/wt/odlux/core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/model/bundles/OdluxBundle.java index 448169fad..e85c88b6f 100644 --- a/sdnr/wt/odlux/core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/model/bundles/OdluxBundle.java +++ b/sdnr/wt/odlux/core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/model/bundles/OdluxBundle.java @@ -21,11 +21,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.BufferedReader; import java.io.IOException; -import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; -import java.util.ArrayList; -import java.util.List; /** * At startup of each karaf bundle, each UI module creates an instance of this class via blueprint. @@ -81,22 +78,6 @@ public class OdluxBundle { public void initialize() { LOG.info("Registering resources"); - try { - List resources = this.getResourceFiles("/odlux"); - if (resources.size() > 0) { - for (String res : resources) { - LOG.debug("found res " + res); - } - } else { - String res = "/odlux/" + this.getBundleName() + ".js"; - if (this.hasResource(res)) { - LOG.debug("found res " + res); - } else - LOG.warn("no resources found in bundle"); - } - } catch (IOException e) { - LOG.debug("problem searching for resources: " + e.getMessage()); - } if (this.loader != null) { if (this.bundleName == null) LOG.error("bundle name is missing. Bundle can not be registered with odlux"); @@ -149,36 +130,4 @@ public class OdluxBundle { return sb.toString(); } - private List getResourceFiles(String path) throws IOException { - List filenames = new ArrayList<>(); - - try { - - InputStream in = getResourceAsStream(path); - if (in != null) { - BufferedReader br = new BufferedReader(new InputStreamReader(in)); - if (br != null) { - String resource; - - while ((resource = br.readLine()) != null) { - filenames.add(resource); - } - } - } - } catch (Exception e) { - LOG.warn("problem loading res " + path); - } - - return filenames; - } - - private InputStream getResourceAsStream(String resource) { - final InputStream in = getContextClassLoader().getResourceAsStream(resource); - - return in == null ? getClass().getResourceAsStream(resource) : in; - } - - private ClassLoader getContextClassLoader() { - return Thread.currentThread().getContextClassLoader(); - } } diff --git a/sdnr/wt/odlux/core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/model/bundles/OdluxBundleList.java b/sdnr/wt/odlux/core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/model/bundles/OdluxBundleList.java deleted file mode 100644 index c2a514399..000000000 --- a/sdnr/wt/odlux/core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/model/bundles/OdluxBundleList.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.onap.ccsdk.features.sdnr.wt.odlux.model.bundles; - -import java.util.ArrayList; -import java.util.List; - -public class OdluxBundleList extends ArrayList{ - - /** - * - */ - private static final long serialVersionUID = 8365348398621906220L; - - public List getNames(){ - final List names=new ArrayList(); - for(OdluxBundle b:this) - names.add(b.getBundleName()); - return names; - } - -} diff --git a/sdnr/wt/odlux/core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/model/bundles/OdluxBundleLoader.java b/sdnr/wt/odlux/core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/model/bundles/OdluxBundleLoader.java index e288ee3ec..5c8231e9c 100644 --- a/sdnr/wt/odlux/core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/model/bundles/OdluxBundleLoader.java +++ b/sdnr/wt/odlux/core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/model/bundles/OdluxBundleLoader.java @@ -6,9 +6,9 @@ * ================================================================================================= * 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. See the License for the specific language governing permissions and limitations under @@ -22,4 +22,7 @@ public interface OdluxBundleLoader { public void addBundle(OdluxBundle bundle); public void removeBundle(OdluxBundle bundle); + + public int getNumberOfBundles(); + } diff --git a/sdnr/wt/odlux/core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/model/bundles/OdluxBundleLoaderImpl.java b/sdnr/wt/odlux/core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/model/bundles/OdluxBundleLoaderImpl.java deleted file mode 100644 index 5b15be35c..000000000 --- a/sdnr/wt/odlux/core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/model/bundles/OdluxBundleLoaderImpl.java +++ /dev/null @@ -1,62 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START======================================================================== - * ONAP : ccsdk feature sdnr wt - * ================================================================================================= - * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. - * ================================================================================================= - * 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. See the License for the specific language governing permissions and limitations under - * the License. - * ============LICENSE_END========================================================================== - ******************************************************************************/ -package org.onap.ccsdk.features.sdnr.wt.odlux.model.bundles; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class OdluxBundleLoaderImpl implements OdluxBundleLoader { - - final static Logger LOG = LoggerFactory.getLogger(OdluxBundleLoaderImpl.class); - private static OdluxBundleLoaderImpl mObj; - - public static OdluxBundleLoaderImpl getInstance() { - if (mObj == null) - mObj = new OdluxBundleLoaderImpl(); - return mObj; - } - - private final List bundles; - - public synchronized List getBundles() { - return this.bundles; - } - - public OdluxBundleLoaderImpl() { - this.bundles = Collections.synchronizedList(new ArrayList()); - mObj = this; - } - - @Override - public synchronized void addBundle(OdluxBundle bundle) { - LOG.debug("odlux bundle " + bundle.getBundleName() + " added"); - this.bundles.add(bundle); - - } - - @Override - public synchronized void removeBundle(OdluxBundle bundle) { - this.bundles.remove(bundle); - LOG.debug("odlux bundle " + bundle.getBundleName() + " removed"); - - } - -} diff --git a/sdnr/wt/odlux/core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/model/bundles/OdluxBundleResourceAccess.java b/sdnr/wt/odlux/core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/model/bundles/OdluxBundleResourceAccess.java new file mode 100644 index 000000000..e2ec04f83 --- /dev/null +++ b/sdnr/wt/odlux/core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/model/bundles/OdluxBundleResourceAccess.java @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2019 Red Hat, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.onap.ccsdk.features.sdnr.wt.odlux.model.bundles; + +import java.util.List; + +public interface OdluxBundleResourceAccess { + + boolean hasResource(String fn); + String getResourceFileContent(String fn, List bundleNames); + String getBundleName(); + +} -- cgit 1.2.3-korg