You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by tb...@apache.org on 2015/06/30 19:55:55 UTC

ambari git commit: AMBARI-12223 - Views: Don't cache URL stream provider in view context (tbeerbower)

Repository: ambari
Updated Branches:
  refs/heads/trunk bf5fe282b -> c74443d9f


AMBARI-12223 - Views: Don't cache URL stream provider in view context (tbeerbower)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/c74443d9
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/c74443d9
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/c74443d9

Branch: refs/heads/trunk
Commit: c74443d9fb593bd0fecc3d64f92b334f7687f6b1
Parents: bf5fe28
Author: tbeerbower <tb...@hortonworks.com>
Authored: Tue Jun 30 13:54:16 2015 -0400
Committer: tbeerbower <tb...@hortonworks.com>
Committed: Tue Jun 30 13:55:41 2015 -0400

----------------------------------------------------------------------
 .../controller/internal/URLStreamProvider.java  |  2 +-
 .../ambari/server/view/ViewContextImpl.java     | 30 +++-----------------
 .../ambari/server/view/ViewContextImplTest.java |  4 +++
 3 files changed, 9 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/c74443d9/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/URLStreamProvider.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/URLStreamProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/URLStreamProvider.java
index bc11646..4e60b5f 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/URLStreamProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/URLStreamProvider.java
@@ -185,7 +185,7 @@ public class URLStreamProvider implements StreamProvider {
         headers = new HashMap<String, List<String>>(headers);
 
         List<String> cookieList = headers.get(COOKIE);
-        String       cookies    = cookieList.isEmpty() ? null : cookieList.get(0);
+        String       cookies    = cookieList == null || cookieList.isEmpty() ? null : cookieList.get(0);
 
         headers.put(COOKIE, Collections.singletonList(appendCookie(cookies, appCookie)));
       }

http://git-wip-us.apache.org/repos/asf/ambari/blob/c74443d9/ambari-server/src/main/java/org/apache/ambari/server/view/ViewContextImpl.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/view/ViewContextImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/view/ViewContextImpl.java
index 8788346..a22c514 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/view/ViewContextImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/view/ViewContextImpl.java
@@ -87,16 +87,6 @@ public class ViewContextImpl implements ViewContext, ViewController {
   private final ViewRegistry viewRegistry;
 
   /**
-   * The URL stream provider.
-   */
-  private ViewURLStreamProvider streamProvider;
-
-  /**
-   * The Ambari stream provider.
-   */
-  private ViewAmbariStreamProvider ambariStreamProvider;
-
-  /**
    * The data store.
    */
   private DataStore dataStore = null;
@@ -259,22 +249,17 @@ public class ViewContextImpl implements ViewContext, ViewController {
 
   @Override
   public org.apache.ambari.view.URLStreamProvider getURLStreamProvider() {
-    ensureURLStreamProvider();
-    return streamProvider;
+    return viewRegistry.createURLStreamProvider(this);
   }
 
   @Override
   public URLConnectionProvider getURLConnectionProvider() {
-    ensureURLStreamProvider();
-    return streamProvider;
+    return viewRegistry.createURLStreamProvider(this);
   }
 
   @Override
   public synchronized AmbariStreamProvider getAmbariStreamProvider() {
-    if (ambariStreamProvider == null) {
-      ambariStreamProvider = viewRegistry.createAmbariStreamProvider();
-    }
-    return ambariStreamProvider;
+    return viewRegistry.createAmbariStreamProvider();
   }
 
   @Override
@@ -309,7 +294,6 @@ public class ViewContextImpl implements ViewContext, ViewController {
 
   @Override
   public HttpImpersonatorImpl getHttpImpersonator() {
-    ensureURLStreamProvider();
     return new HttpImpersonatorImpl(this);
   }
 
@@ -355,14 +339,8 @@ public class ViewContextImpl implements ViewContext, ViewController {
     viewRegistry.unregisterListener(listener, viewName, viewVersion);
   }
 
-  // ----- helper methods ----------------------------------------------------
 
-  // ensure that the URL stream provider has been created
-  private synchronized void ensureURLStreamProvider() {
-    if (streamProvider == null) {
-      streamProvider = viewRegistry.createURLStreamProvider(this);
-    }
-  }
+  // ----- helper methods ----------------------------------------------------
 
   // check for an associated instance
   private void checkInstance() {

http://git-wip-us.apache.org/repos/asf/ambari/blob/c74443d9/ambari-server/src/test/java/org/apache/ambari/server/view/ViewContextImplTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/view/ViewContextImplTest.java b/ambari-server/src/test/java/org/apache/ambari/server/view/ViewContextImplTest.java
index e111811..7e2d9b5 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/view/ViewContextImplTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/view/ViewContextImplTest.java
@@ -181,6 +181,7 @@ public class ViewContextImplTest {
     ViewInstanceEntity viewInstanceDefinition = new ViewInstanceEntity(viewDefinition, instanceConfig);
     ViewRegistry viewRegistry = createNiceMock(ViewRegistry.class);
     ViewURLStreamProvider urlStreamProvider = createNiceMock(ViewURLStreamProvider.class);
+    ViewURLStreamProvider urlStreamProvider2 = createNiceMock(ViewURLStreamProvider.class);
 
     ResourceProvider provider = createNiceMock(ResourceProvider.class);
     Resource.Type type = new Resource.Type("MY_VIEW/myType");
@@ -190,10 +191,13 @@ public class ViewContextImplTest {
     ViewContextImpl viewContext = new ViewContextImpl(viewInstanceDefinition, viewRegistry);
 
     expect(viewRegistry.createURLStreamProvider(viewContext)).andReturn(urlStreamProvider);
+    expect(viewRegistry.createURLStreamProvider(viewContext)).andReturn(urlStreamProvider2);
 
     replay(viewRegistry);
 
     Assert.assertEquals(urlStreamProvider, viewContext.getURLStreamProvider());
+    // make sure the the provider is not cached
+    Assert.assertEquals(urlStreamProvider2, viewContext.getURLStreamProvider());
 
     verify(viewRegistry);
   }