http://git-wip-us.apache.org/repos/asf/zeppelin/blob/55f6c91c/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookSocket.java ---------------------------------------------------------------------- diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookSocket.java b/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookSocket.java index 65740ff..735a79b 100644 --- a/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookSocket.java +++ b/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookSocket.java @@ -16,17 +16,13 @@ */ package org.apache.zeppelin.socket; +import java.io.IOException; +import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang.StringUtils; import org.eclipse.jetty.websocket.api.Session; import org.eclipse.jetty.websocket.api.WebSocketAdapter; -import java.io.IOException; - -import javax.servlet.http.HttpServletRequest; - -/** - * Notebook websocket. - */ +/** Notebook websocket. */ public class NotebookSocket extends WebSocketAdapter { private Session connection; private NotebookSocketListener listener; @@ -34,8 +30,7 @@ public class NotebookSocket extends WebSocketAdapter { private String protocol; private String user; - public NotebookSocket(HttpServletRequest req, String protocol, - NotebookSocketListener listener) { + public NotebookSocket(HttpServletRequest req, String protocol, NotebookSocketListener listener) { this.listener = listener; this.request = req; this.protocol = protocol;
http://git-wip-us.apache.org/repos/asf/zeppelin/blob/55f6c91c/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookSocketListener.java ---------------------------------------------------------------------- diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookSocketListener.java b/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookSocketListener.java index 3c2edd3..39963d9 100644 --- a/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookSocketListener.java +++ b/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookSocketListener.java @@ -16,11 +16,11 @@ */ package org.apache.zeppelin.socket; -/** - * NoteboookSocket listener. - */ +/** NoteboookSocket listener. */ public interface NotebookSocketListener { void onClose(NotebookSocket socket, int code, String message); + void onOpen(NotebookSocket socket); + void onMessage(NotebookSocket socket, String message); } http://git-wip-us.apache.org/repos/asf/zeppelin/blob/55f6c91c/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookWebSocketCreator.java ---------------------------------------------------------------------- diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookWebSocketCreator.java b/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookWebSocketCreator.java index 7033929..bc4f30f 100644 --- a/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookWebSocketCreator.java +++ b/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookWebSocketCreator.java @@ -16,17 +16,15 @@ */ package org.apache.zeppelin.socket; +import static org.apache.zeppelin.conf.ZeppelinConfiguration.ConfVars.ZEPPELIN_ALLOWED_ORIGINS; + import org.eclipse.jetty.websocket.servlet.ServletUpgradeRequest; import org.eclipse.jetty.websocket.servlet.ServletUpgradeResponse; import org.eclipse.jetty.websocket.servlet.WebSocketCreator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import static org.apache.zeppelin.conf.ZeppelinConfiguration.ConfVars.ZEPPELIN_ALLOWED_ORIGINS; - -/** - * Responsible to create the WebSockets for the NotebookServer. - */ +/** Responsible to create the WebSockets for the NotebookServer. */ public class NotebookWebSocketCreator implements WebSocketCreator { private static final Logger LOG = LoggerFactory.getLogger(NotebookWebSocketCreator.class); @@ -35,15 +33,17 @@ public class NotebookWebSocketCreator implements WebSocketCreator { public NotebookWebSocketCreator(NotebookServer notebookServer) { this.notebookServer = notebookServer; } + public Object createWebSocket(ServletUpgradeRequest request, ServletUpgradeResponse response) { String origin = request.getHeader("Origin"); if (notebookServer.checkOrigin(request.getHttpServletRequest(), origin)) { return new NotebookSocket(request.getHttpServletRequest(), "", notebookServer); } else { - LOG.error("Websocket request is not allowed by {} settings. Origin: {}", - ZEPPELIN_ALLOWED_ORIGINS, origin); + LOG.error( + "Websocket request is not allowed by {} settings. Origin: {}", + ZEPPELIN_ALLOWED_ORIGINS, + origin); return null; } } - } http://git-wip-us.apache.org/repos/asf/zeppelin/blob/55f6c91c/zeppelin-server/src/main/java/org/apache/zeppelin/types/InterpreterSettingsList.java ---------------------------------------------------------------------- diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/types/InterpreterSettingsList.java b/zeppelin-server/src/main/java/org/apache/zeppelin/types/InterpreterSettingsList.java index 2e080ea..b5e5e6d 100644 --- a/zeppelin-server/src/main/java/org/apache/zeppelin/types/InterpreterSettingsList.java +++ b/zeppelin-server/src/main/java/org/apache/zeppelin/types/InterpreterSettingsList.java @@ -16,21 +16,18 @@ */ package org.apache.zeppelin.types; -import org.apache.zeppelin.interpreter.InterpreterInfo; - import java.util.List; +import org.apache.zeppelin.interpreter.InterpreterInfo; -/** - * InterpreterSetting information for binding. - */ +/** InterpreterSetting information for binding. */ public class InterpreterSettingsList { private String id; private String name; private List<InterpreterInfo> interpreters; private boolean selected; - public InterpreterSettingsList(String id, String name, - List<InterpreterInfo> interpreters, boolean selected) { + public InterpreterSettingsList( + String id, String name, List<InterpreterInfo> interpreters, boolean selected) { this.id = id; this.name = name; this.interpreters = interpreters; http://git-wip-us.apache.org/repos/asf/zeppelin/blob/55f6c91c/zeppelin-server/src/main/java/org/apache/zeppelin/utils/AnyOfRolesUserAuthorizationFilter.java ---------------------------------------------------------------------- diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/utils/AnyOfRolesUserAuthorizationFilter.java b/zeppelin-server/src/main/java/org/apache/zeppelin/utils/AnyOfRolesUserAuthorizationFilter.java index e345dd6..2d3fd89 100644 --- a/zeppelin-server/src/main/java/org/apache/zeppelin/utils/AnyOfRolesUserAuthorizationFilter.java +++ b/zeppelin-server/src/main/java/org/apache/zeppelin/utils/AnyOfRolesUserAuthorizationFilter.java @@ -24,19 +24,19 @@ import org.apache.shiro.web.filter.authz.RolesAuthorizationFilter; /** * Allows access if current user has at least one role of the specified list. - * <p> - * Basically, it's the same as {@link RolesAuthorizationFilter} but using {@literal OR} instead + * + * <p>Basically, it's the same as {@link RolesAuthorizationFilter} but using {@literal OR} instead * of {@literal AND} on the specified roles or user. */ public class AnyOfRolesUserAuthorizationFilter extends RolesAuthorizationFilter { @Override - public boolean isAccessAllowed(ServletRequest request, ServletResponse response, - Object mappedValue) throws IOException { + public boolean isAccessAllowed( + ServletRequest request, ServletResponse response, Object mappedValue) throws IOException { final Subject subject = getSubject(request, response); final String[] rolesArray = (String[]) mappedValue; if (rolesArray == null || rolesArray.length == 0) { - //no roles specified, so nothing to check - allow access. + // no roles specified, so nothing to check - allow access. return true; } http://git-wip-us.apache.org/repos/asf/zeppelin/blob/55f6c91c/zeppelin-server/src/main/java/org/apache/zeppelin/utils/CommandLineUtils.java ---------------------------------------------------------------------- diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/utils/CommandLineUtils.java b/zeppelin-server/src/main/java/org/apache/zeppelin/utils/CommandLineUtils.java index 63f8580..53518e4 100644 --- a/zeppelin-server/src/main/java/org/apache/zeppelin/utils/CommandLineUtils.java +++ b/zeppelin-server/src/main/java/org/apache/zeppelin/utils/CommandLineUtils.java @@ -17,12 +17,9 @@ package org.apache.zeppelin.utils; import java.util.Locale; - import org.apache.zeppelin.util.Util; -/** - * CommandLine Support Class. - */ +/** CommandLine Support Class. */ public class CommandLineUtils { public static void main(String[] args) { if (args.length == 0) { http://git-wip-us.apache.org/repos/asf/zeppelin/blob/55f6c91c/zeppelin-server/src/main/java/org/apache/zeppelin/utils/ExceptionUtils.java ---------------------------------------------------------------------- diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/utils/ExceptionUtils.java b/zeppelin-server/src/main/java/org/apache/zeppelin/utils/ExceptionUtils.java index ce87e5e..2d522af 100644 --- a/zeppelin-server/src/main/java/org/apache/zeppelin/utils/ExceptionUtils.java +++ b/zeppelin-server/src/main/java/org/apache/zeppelin/utils/ExceptionUtils.java @@ -17,19 +17,15 @@ package org.apache.zeppelin.utils; import javax.ws.rs.core.Response.Status; - import org.apache.zeppelin.server.JsonResponse; -/** - * Utility method for exception in rest api. - * - */ +/** Utility method for exception in rest api. */ public class ExceptionUtils { public static javax.ws.rs.core.Response jsonResponse(Status status) { return new JsonResponse<>(status).build(); } - + public static javax.ws.rs.core.Response jsonResponseContent(Status status, String message) { return new JsonResponse<>(status, message).build(); } http://git-wip-us.apache.org/repos/asf/zeppelin/blob/55f6c91c/zeppelin-server/src/main/java/org/apache/zeppelin/utils/InterpreterBindingUtils.java ---------------------------------------------------------------------- diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/utils/InterpreterBindingUtils.java b/zeppelin-server/src/main/java/org/apache/zeppelin/utils/InterpreterBindingUtils.java index 3ea2f75..08ec1a1 100644 --- a/zeppelin-server/src/main/java/org/apache/zeppelin/utils/InterpreterBindingUtils.java +++ b/zeppelin-server/src/main/java/org/apache/zeppelin/utils/InterpreterBindingUtils.java @@ -16,25 +16,22 @@ */ package org.apache.zeppelin.utils; +import java.util.LinkedList; +import java.util.List; import org.apache.zeppelin.interpreter.InterpreterSetting; import org.apache.zeppelin.notebook.Notebook; import org.apache.zeppelin.types.InterpreterSettingsList; -import java.util.LinkedList; -import java.util.List; - -/** - * Utils for interpreter bindings. - */ +/** Utils for interpreter bindings. */ public class InterpreterBindingUtils { - public static List<InterpreterSettingsList> getInterpreterBindings(Notebook notebook, - String noteId) { + public static List<InterpreterSettingsList> getInterpreterBindings( + Notebook notebook, String noteId) { List<InterpreterSettingsList> settingList = new LinkedList<>(); - List<InterpreterSetting> selectedSettings = - notebook.getBindedInterpreterSettings(noteId); + List<InterpreterSetting> selectedSettings = notebook.getBindedInterpreterSettings(noteId); for (InterpreterSetting setting : selectedSettings) { - settingList.add(new InterpreterSettingsList(setting.getId(), setting.getName(), - setting.getInterpreterInfos(), true)); + settingList.add( + new InterpreterSettingsList( + setting.getId(), setting.getName(), setting.getInterpreterInfos(), true)); } return settingList; http://git-wip-us.apache.org/repos/asf/zeppelin/blob/55f6c91c/zeppelin-server/src/main/java/org/apache/zeppelin/utils/SecurityUtils.java ---------------------------------------------------------------------- diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/utils/SecurityUtils.java b/zeppelin-server/src/main/java/org/apache/zeppelin/utils/SecurityUtils.java index 134aa61..37edc36 100644 --- a/zeppelin-server/src/main/java/org/apache/zeppelin/utils/SecurityUtils.java +++ b/zeppelin-server/src/main/java/org/apache/zeppelin/utils/SecurityUtils.java @@ -18,6 +18,28 @@ package org.apache.zeppelin.utils; import com.google.common.collect.Lists; import com.google.common.collect.Sets; +import java.net.InetAddress; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.UnknownHostException; +import java.security.Principal; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.naming.NamingEnumeration; +import javax.naming.NamingException; +import javax.naming.directory.Attributes; +import javax.naming.directory.SearchControls; +import javax.naming.directory.SearchResult; +import javax.naming.ldap.LdapContext; +import javax.sql.DataSource; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.reflect.FieldUtils; import org.apache.shiro.authz.AuthorizationInfo; @@ -38,32 +60,7 @@ import org.apache.zeppelin.server.ZeppelinServer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.naming.NamingEnumeration; -import javax.naming.NamingException; -import javax.naming.directory.Attributes; -import javax.naming.directory.SearchControls; -import javax.naming.directory.SearchResult; -import javax.naming.ldap.LdapContext; -import javax.sql.DataSource; -import java.net.InetAddress; -import java.net.URI; -import java.net.URISyntaxException; -import java.net.UnknownHostException; -import java.security.Principal; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -/** - * Tools for securing Zeppelin. - */ +/** Tools for securing Zeppelin. */ public class SecurityUtils { private static final String ANONYMOUS = "anonymous"; private static final HashSet<String> EMPTY_HASHSET = Sets.newHashSet(); @@ -71,7 +68,6 @@ public class SecurityUtils { private static final Logger LOGGER = LoggerFactory.getLogger(SecurityUtils.class); private static Collection<Realm> realms; - public static void setIsEnabled(boolean value) { isEnabled = value; } @@ -89,10 +85,10 @@ public class SecurityUtils { sourceUriHost = sourceUriHost.toLowerCase(); String currentHost = InetAddress.getLocalHost().getHostName().toLowerCase(); - return conf.getAllowedOrigins().contains("*") || - currentHost.equals(sourceUriHost) || - "localhost".equals(sourceUriHost) || - conf.getAllowedOrigins().contains(sourceHost); + return conf.getAllowedOrigins().contains("*") + || currentHost.equals(sourceUriHost) + || "localhost".equals(sourceUriHost) + || conf.getAllowedOrigins().contains(sourceHost); } /** @@ -110,8 +106,8 @@ public class SecurityUtils { if (subject.isAuthenticated()) { principal = extractPrincipal(subject); if (ZeppelinServer.notebook.getConf().isUsernameForceLowerCase()) { - LOGGER.debug("Converting principal name " + principal - + " to lower case:" + principal.toLowerCase()); + LOGGER.debug( + "Converting principal name " + principal + " to lower case:" + principal.toLowerCase()); principal = principal.toLowerCase(); } } else { @@ -141,10 +137,8 @@ public class SecurityUtils { Collection<Realm> realms = defaultWebSecurityManager.getRealms(); return realms; } - - /** - * Checked if shiro enabled or not. - */ + + /** Checked if shiro enabled or not. */ public static boolean isAuthenticated() { if (!isEnabled) { return false; @@ -152,9 +146,9 @@ public class SecurityUtils { return org.apache.shiro.SecurityUtils.getSubject().isAuthenticated(); } - /** * Get candidated users based on searchText + * * @param searchText * @param numUsersToFetch * @return @@ -171,14 +165,12 @@ public class SecurityUtils { if (name.equals("org.apache.shiro.realm.text.IniRealm")) { usersList.addAll(SecurityUtils.getUserList((IniRealm) realm)); } else if (name.equals("org.apache.zeppelin.realm.LdapGroupRealm")) { - usersList.addAll(getUserList((JndiLdapRealm) realm, searchText, - numUsersToFetch)); + usersList.addAll(getUserList((JndiLdapRealm) realm, searchText, numUsersToFetch)); } else if (name.equals("org.apache.zeppelin.realm.LdapRealm")) { - usersList.addAll(getUserList((LdapRealm) realm, searchText, - numUsersToFetch)); + usersList.addAll(getUserList((LdapRealm) realm, searchText, numUsersToFetch)); } else if (name.equals("org.apache.zeppelin.realm.ActiveDirectoryGroupRealm")) { - usersList.addAll(getUserList((ActiveDirectoryGroupRealm) realm, - searchText, numUsersToFetch)); + usersList.addAll( + getUserList((ActiveDirectoryGroupRealm) realm, searchText, numUsersToFetch)); } else if (name.equals("org.apache.shiro.realm.jdbc.JdbcRealm")) { usersList.addAll(getUserList((JdbcRealm) realm)); } @@ -225,7 +217,7 @@ public class SecurityUtils { */ public static HashSet<String> getAssociatedRoles() { if (!isEnabled) { - return Sets.newHashSet(); + return Sets.newHashSet(); } Subject subject = org.apache.shiro.SecurityUtils.getSubject(); HashSet<String> roles = new HashSet<>(); @@ -241,10 +233,11 @@ public class SecurityUtils { break; } else if (name.equals("org.apache.zeppelin.realm.LdapRealm")) { try { - AuthorizationInfo auth = ((LdapRealm) realm).queryForAuthorizationInfo( - new SimplePrincipalCollection(subject.getPrincipal(), realm.getName()), - ((LdapRealm) realm).getContextFactory() - ); + AuthorizationInfo auth = + ((LdapRealm) realm) + .queryForAuthorizationInfo( + new SimplePrincipalCollection(subject.getPrincipal(), realm.getName()), + ((LdapRealm) realm).getContextFactory()); if (auth != null) { roles = new HashSet<>(auth.getRoles()); } @@ -270,9 +263,7 @@ public class SecurityUtils { return roles; } - /** - * Function to extract users from shiro.ini. - */ + /** Function to extract users from shiro.ini. */ private static List<String> getUserList(IniRealm r) { List<String> userList = new ArrayList<>(); Map getIniUser = r.getIni().get("users"); @@ -286,9 +277,8 @@ public class SecurityUtils { return userList; } - - /*** - * Get user roles from shiro.ini. + /** + * * Get user roles from shiro.ini. * * @param r * @return @@ -306,9 +296,7 @@ public class SecurityUtils { return roleList; } - /** - * Function to extract users from LDAP. - */ + /** Function to extract users from LDAP. */ private static List<String> getUserList(JndiLdapRealm r, String searchText, int numUsersToFetch) { List<String> userList = new ArrayList<>(); String userDnTemplate = r.getUserDnTemplate(); @@ -323,8 +311,8 @@ public class SecurityUtils { constraints.setSearchScope(SearchControls.SUBTREE_SCOPE); String[] attrIDs = {userDnPrefix}; constraints.setReturningAttributes(attrIDs); - NamingEnumeration result = ctx.search(userDnSuffix, "(" + userDnPrefix + "=*" + searchText + - "*)", constraints); + NamingEnumeration result = + ctx.search(userDnSuffix, "(" + userDnPrefix + "=*" + searchText + "*)", constraints); while (result.hasMore()) { Attributes attrs = ((SearchResult) result.next()).getAttributes(); if (attrs.get(userDnPrefix) != null) { @@ -339,9 +327,7 @@ public class SecurityUtils { return userList; } - /** - * Function to extract users from Zeppelin LdapRealm. - */ + /** Function to extract users from Zeppelin LdapRealm. */ private static List<String> getUserList(LdapRealm r, String searchText, int numUsersToFetch) { List<String> userList = new ArrayList<>(); LOGGER.debug("SearchText: " + searchText); @@ -356,9 +342,17 @@ public class SecurityUtils { constraints.setCountLimit(numUsersToFetch); String[] attrIDs = {userAttribute}; constraints.setReturningAttributes(attrIDs); - NamingEnumeration result = ctx.search(userSearchRealm, "(&(objectclass=" + - userObjectClass + ")(" - + userAttribute + "=*" + searchText + "*))", constraints); + NamingEnumeration result = + ctx.search( + userSearchRealm, + "(&(objectclass=" + + userObjectClass + + ")(" + + userAttribute + + "=*" + + searchText + + "*))", + constraints); while (result.hasMore()) { Attributes attrs = ((SearchResult) result.next()).getAttributes(); if (attrs.get(userAttribute) != null) { @@ -380,8 +374,8 @@ public class SecurityUtils { return userList; } - /*** - * Get user roles from shiro.ini for Zeppelin LdapRealm. + /** + * * Get user roles from shiro.ini for Zeppelin LdapRealm. * * @param r * @return @@ -393,16 +387,15 @@ public class SecurityUtils { Iterator it = roles.entrySet().iterator(); while (it.hasNext()) { Map.Entry pair = (Map.Entry) it.next(); - LOGGER.debug("RoleKeyValue: " + pair.getKey() + - " = " + pair.getValue()); + LOGGER.debug("RoleKeyValue: " + pair.getKey() + " = " + pair.getValue()); roleList.add((String) pair.getKey()); } } return roleList; } - private static List<String> getUserList(ActiveDirectoryGroupRealm r, String searchText, - int numUsersToFetch) { + private static List<String> getUserList( + ActiveDirectoryGroupRealm r, String searchText, int numUsersToFetch) { List<String> userList = new ArrayList<>(); try { LdapContext ctx = r.getLdapContextFactory().getSystemLdapContext(); @@ -413,9 +406,7 @@ public class SecurityUtils { return userList; } - /** - * Function to extract users from JDBCs. - */ + /** Function to extract users from JDBCs. */ private static List<String> getUserList(JdbcRealm obj) { List<String> userlist = new ArrayList<>(); Connection con = null; http://git-wip-us.apache.org/repos/asf/zeppelin/blob/55f6c91c/zeppelin-server/src/test/java/org/apache/zeppelin/configuration/RequestHeaderSizeTest.java ---------------------------------------------------------------------- diff --git a/zeppelin-server/src/test/java/org/apache/zeppelin/configuration/RequestHeaderSizeTest.java b/zeppelin-server/src/test/java/org/apache/zeppelin/configuration/RequestHeaderSizeTest.java index de21aa8..18ce914 100644 --- a/zeppelin-server/src/test/java/org/apache/zeppelin/configuration/RequestHeaderSizeTest.java +++ b/zeppelin-server/src/test/java/org/apache/zeppelin/configuration/RequestHeaderSizeTest.java @@ -22,21 +22,21 @@ import static org.hamcrest.MatcherAssert.assertThat; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.lang.RandomStringUtils; +import org.apache.zeppelin.conf.ZeppelinConfiguration; +import org.apache.zeppelin.rest.AbstractTestRestApi; import org.eclipse.jetty.http.HttpStatus; import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.apache.zeppelin.conf.ZeppelinConfiguration; -import org.apache.zeppelin.rest.AbstractTestRestApi; - public class RequestHeaderSizeTest extends AbstractTestRestApi { private static final int REQUEST_HEADER_MAX_SIZE = 20000; @Before public void startZeppelin() throws Exception { - System.setProperty(ZeppelinConfiguration.ConfVars.ZEPPELIN_SERVER_JETTY_REQUEST_HEADER_SIZE - .getVarName(), String.valueOf(REQUEST_HEADER_MAX_SIZE)); + System.setProperty( + ZeppelinConfiguration.ConfVars.ZEPPELIN_SERVER_JETTY_REQUEST_HEADER_SIZE.getVarName(), + String.valueOf(REQUEST_HEADER_MAX_SIZE)); startUp(RequestHeaderSizeTest.class.getSimpleName()); } http://git-wip-us.apache.org/repos/asf/zeppelin/blob/55f6c91c/zeppelin-server/src/test/java/org/apache/zeppelin/display/AngularObjectBuilder.java ---------------------------------------------------------------------- diff --git a/zeppelin-server/src/test/java/org/apache/zeppelin/display/AngularObjectBuilder.java b/zeppelin-server/src/test/java/org/apache/zeppelin/display/AngularObjectBuilder.java index cfbdc31..b62927c 100644 --- a/zeppelin-server/src/test/java/org/apache/zeppelin/display/AngularObjectBuilder.java +++ b/zeppelin-server/src/test/java/org/apache/zeppelin/display/AngularObjectBuilder.java @@ -17,8 +17,8 @@ package org.apache.zeppelin.display; public class AngularObjectBuilder { - public static <T> AngularObject<T> build(String varName, T value, String noteId, - String paragraphId) { + public static <T> AngularObject<T> build( + String varName, T value, String noteId, String paragraphId) { return new AngularObject<>(varName, value, noteId, paragraphId, null); } } http://git-wip-us.apache.org/repos/asf/zeppelin/blob/55f6c91c/zeppelin-server/src/test/java/org/apache/zeppelin/realm/LdapRealmTest.java ---------------------------------------------------------------------- diff --git a/zeppelin-server/src/test/java/org/apache/zeppelin/realm/LdapRealmTest.java b/zeppelin-server/src/test/java/org/apache/zeppelin/realm/LdapRealmTest.java index 5bff693..3f534de 100644 --- a/zeppelin-server/src/test/java/org/apache/zeppelin/realm/LdapRealmTest.java +++ b/zeppelin-server/src/test/java/org/apache/zeppelin/realm/LdapRealmTest.java @@ -24,23 +24,21 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import org.apache.shiro.realm.ldap.LdapContextFactory; -import org.apache.shiro.session.Session; -import org.apache.shiro.subject.SimplePrincipalCollection; -import org.junit.Test; - import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.Set; - import javax.naming.NamingEnumeration; import javax.naming.NamingException; import javax.naming.directory.BasicAttributes; import javax.naming.directory.SearchControls; import javax.naming.directory.SearchResult; import javax.naming.ldap.LdapContext; +import org.apache.shiro.realm.ldap.LdapContextFactory; +import org.apache.shiro.session.Session; +import org.apache.shiro.subject.SimplePrincipalCollection; +import org.junit.Test; public class LdapRealmTest { @Test @@ -58,8 +56,9 @@ public class LdapRealmTest { @Test public void testExpandTemplate() { - assertEquals("uid=foo,cn=users,dc=ods,dc=foo", - LdapRealm.expandTemplate("uid={0},cn=users,dc=ods,dc=foo", "foo")); + assertEquals( + "uid=foo,cn=users,dc=ods,dc=foo", + LdapRealm.expandTemplate("uid={0},cn=users,dc=ods,dc=foo", "foo")); } @Test @@ -72,8 +71,7 @@ public class LdapRealmTest { // using a template realm.setUserSearchAttributeName(null); realm.setMemberAttributeValueTemplate("cn={0},ou=people,dc=hadoop,dc=apache"); - assertEquals("cn=foo,ou=people,dc=hadoop,dc=apache", - realm.getUserDnForSearch("foo")); + assertEquals("cn=foo,ou=people,dc=hadoop,dc=apache", realm.getUserDnForSearch("foo")); } @Test @@ -107,14 +105,18 @@ public class LdapRealmTest { NamingEnumeration<SearchResult> results = enumerationOf(group1, group2, group3); when(ldapCtx.search(any(String.class), any(String.class), any(SearchControls.class))) - .thenReturn(results); + .thenReturn(results); - Set<String> roles = realm.rolesFor( + Set<String> roles = + realm.rolesFor( new SimplePrincipalCollection("principal", "ldapRealm"), - "principal", ldapCtx, ldapContextFactory, session); + "principal", + ldapCtx, + ldapContextFactory, + session); - verify(ldapCtx).search("cn=groups,dc=apache", "(objectclass=posixGroup)", - realm.getGroupSearchControls()); + verify(ldapCtx) + .search("cn=groups,dc=apache", "(objectclass=posixGroup)", realm.getGroupSearchControls()); assertEquals(new HashSet(Arrays.asList("group-one", "zeppelin-role")), roles); } @@ -133,8 +135,7 @@ public class LdapRealmTest { } @Override - public void close() throws NamingException { - } + public void close() throws NamingException {} @Override public boolean hasMoreElements() { http://git-wip-us.apache.org/repos/asf/zeppelin/blob/55f6c91c/zeppelin-server/src/test/java/org/apache/zeppelin/realm/PamRealmTest.java ---------------------------------------------------------------------- diff --git a/zeppelin-server/src/test/java/org/apache/zeppelin/realm/PamRealmTest.java b/zeppelin-server/src/test/java/org/apache/zeppelin/realm/PamRealmTest.java index f328407..036046f 100644 --- a/zeppelin-server/src/test/java/org/apache/zeppelin/realm/PamRealmTest.java +++ b/zeppelin-server/src/test/java/org/apache/zeppelin/realm/PamRealmTest.java @@ -30,11 +30,10 @@ import org.junit.Test; * They should contain username and password of an valid system user to make the test pass. The * service needs to be configured under /etc/pam.d/sshd to resolve and authenticate the system user. * - * Contains main() function so the test can be executed manually. + * <p>Contains main() function so the test can be executed manually. * - * Set in MacOS to run in IDE(A): - * $ launchctl setenv PAM_USER user - * $ launchctl setenv PAM_PASS xxxxx + * <p>Set in MacOS to run in IDE(A): $ launchctl setenv PAM_USER user $ launchctl setenv PAM_PASS + * xxxxx */ public class PamRealmTest { http://git-wip-us.apache.org/repos/asf/zeppelin/blob/55f6c91c/zeppelin-server/src/test/java/org/apache/zeppelin/recovery/RecoveryTest.java ---------------------------------------------------------------------- diff --git a/zeppelin-server/src/test/java/org/apache/zeppelin/recovery/RecoveryTest.java b/zeppelin-server/src/test/java/org/apache/zeppelin/recovery/RecoveryTest.java index 7a58a41..8d0676c 100644 --- a/zeppelin-server/src/test/java/org/apache/zeppelin/recovery/RecoveryTest.java +++ b/zeppelin-server/src/test/java/org/apache/zeppelin/recovery/RecoveryTest.java @@ -22,16 +22,10 @@ import static org.junit.Assert.assertThat; import com.google.common.io.Files; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; - -import org.apache.commons.httpclient.methods.PostMethod; -import org.apache.commons.io.FileUtils; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; - import java.io.File; import java.util.Map; - +import org.apache.commons.httpclient.methods.PostMethod; +import org.apache.commons.io.FileUtils; import org.apache.zeppelin.conf.ZeppelinConfiguration; import org.apache.zeppelin.interpreter.ManagedInterpreterGroup; import org.apache.zeppelin.interpreter.recovery.FileSystemRecoveryStorage; @@ -42,6 +36,9 @@ import org.apache.zeppelin.rest.AbstractTestRestApi; import org.apache.zeppelin.scheduler.Job; import org.apache.zeppelin.server.ZeppelinServer; import org.apache.zeppelin.user.AuthenticationInfo; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; public class RecoveryTest extends AbstractTestRestApi { private Gson gson = new Gson(); @@ -49,11 +46,13 @@ public class RecoveryTest extends AbstractTestRestApi { @BeforeClass public static void init() throws Exception { - System.setProperty(ZeppelinConfiguration.ConfVars.ZEPPELIN_RECOVERY_STORAGE_CLASS.getVarName(), + System.setProperty( + ZeppelinConfiguration.ConfVars.ZEPPELIN_RECOVERY_STORAGE_CLASS.getVarName(), FileSystemRecoveryStorage.class.getName()); recoveryDir = Files.createTempDir(); - System.setProperty(ZeppelinConfiguration.ConfVars.ZEPPELIN_RECOVERY_DIR.getVarName(), - recoveryDir.getAbsolutePath()); + System.setProperty( + ZeppelinConfiguration.ConfVars.ZEPPELIN_RECOVERY_DIR.getVarName(), + recoveryDir.getAbsolutePath()); startUp(RecoveryTest.class.getSimpleName()); } @@ -72,8 +71,9 @@ public class RecoveryTest extends AbstractTestRestApi { p1.setText("%python user='abc'"); PostMethod post = httpPost("/notebook/job/" + note1.getId(), ""); assertThat(post, isAllowed()); - Map<String, Object> resp = gson.fromJson(post.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() {}.getType()); + Map<String, Object> resp = + gson.fromJson( + post.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); assertEquals(resp.get("status"), "OK"); post.releaseConnection(); assertEquals(Job.Status.FINISHED, p1.getStatus()); @@ -102,17 +102,20 @@ public class RecoveryTest extends AbstractTestRestApi { p1.setText("%python user='abc'"); PostMethod post = httpPost("/notebook/job/" + note1.getId(), ""); assertThat(post, isAllowed()); - Map<String, Object> resp = gson.fromJson(post.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() {}.getType()); + Map<String, Object> resp = + gson.fromJson( + post.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); assertEquals(resp.get("status"), "OK"); post.releaseConnection(); assertEquals(Job.Status.FINISHED, p1.getStatus()); // restart the python interpreter - ZeppelinServer.notebook.getInterpreterSettingManager().restart( - ((ManagedInterpreterGroup) p1.getBindedInterpreter().getInterpreterGroup()) - .getInterpreterSetting().getId() - ); + ZeppelinServer.notebook + .getInterpreterSettingManager() + .restart( + ((ManagedInterpreterGroup) p1.getBindedInterpreter().getInterpreterGroup()) + .getInterpreterSetting() + .getId()); // shutdown zeppelin and restart it shutDown(); @@ -138,15 +141,16 @@ public class RecoveryTest extends AbstractTestRestApi { p1.setText("%python user='abc'"); PostMethod post = httpPost("/notebook/job/" + note1.getId(), ""); assertThat(post, isAllowed()); - Map<String, Object> resp = gson.fromJson(post.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() {}.getType()); + Map<String, Object> resp = + gson.fromJson( + post.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); assertEquals(resp.get("status"), "OK"); post.releaseConnection(); assertEquals(Job.Status.FINISHED, p1.getStatus()); // shutdown zeppelin and restart it shutDown(); - StopInterpreter.main(new String[]{}); + StopInterpreter.main(new String[] {}); startUp(RecoveryTest.class.getSimpleName()); http://git-wip-us.apache.org/repos/asf/zeppelin/blob/55f6c91c/zeppelin-server/src/test/java/org/apache/zeppelin/rest/AbstractTestRestApi.java ---------------------------------------------------------------------- diff --git a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/AbstractTestRestApi.java b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/AbstractTestRestApi.java index 689b7af..ef2cc51 100644 --- a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/AbstractTestRestApi.java +++ b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/AbstractTestRestApi.java @@ -19,7 +19,15 @@ package org.apache.zeppelin.rest; import com.google.gson.JsonElement; import com.google.gson.JsonParseException; import com.google.gson.JsonParser; - +import java.io.File; +import java.io.IOException; +import java.lang.ref.WeakReference; +import java.net.InetAddress; +import java.net.UnknownHostException; +import java.util.List; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.regex.Pattern; import org.apache.commons.exec.CommandLine; import org.apache.commons.exec.DefaultExecutor; import org.apache.commons.exec.PumpStreamHandler; @@ -35,27 +43,16 @@ import org.apache.commons.httpclient.methods.PutMethod; import org.apache.commons.httpclient.methods.RequestEntity; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.zeppelin.conf.ZeppelinConfiguration; +import org.apache.zeppelin.interpreter.InterpreterSetting; import org.apache.zeppelin.plugin.PluginManager; +import org.apache.zeppelin.server.ZeppelinServer; import org.hamcrest.Description; import org.hamcrest.Matcher; import org.hamcrest.TypeSafeMatcher; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.File; -import java.io.IOException; -import java.lang.ref.WeakReference; -import java.net.InetAddress; -import java.net.UnknownHostException; -import java.util.List; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.regex.Pattern; - -import org.apache.zeppelin.conf.ZeppelinConfiguration; -import org.apache.zeppelin.interpreter.InterpreterSetting; -import org.apache.zeppelin.server.ZeppelinServer; - public abstract class AbstractTestRestApi { protected static final Logger LOG = LoggerFactory.getLogger(AbstractTestRestApi.class); @@ -66,47 +63,47 @@ public abstract class AbstractTestRestApi { private static File shiroIni = null; private static String zeppelinShiro = - "[users]\n" + - "admin = password1, admin\n" + - "user1 = password2, role1, role2\n" + - "user2 = password3, role3\n" + - "user3 = password4, role2\n" + - "[main]\n" + - "sessionManager = org.apache.shiro.web.session.mgt.DefaultWebSessionManager\n" + - "securityManager.sessionManager = $sessionManager\n" + - "securityManager.sessionManager.globalSessionTimeout = 86400000\n" + - "shiro.loginUrl = /api/login\n" + - "[roles]\n" + - "role1 = *\n" + - "role2 = *\n" + - "role3 = *\n" + - "admin = *\n" + - "[urls]\n" + - "/api/version = anon\n" + - "/** = authc"; + "[users]\n" + + "admin = password1, admin\n" + + "user1 = password2, role1, role2\n" + + "user2 = password3, role3\n" + + "user3 = password4, role2\n" + + "[main]\n" + + "sessionManager = org.apache.shiro.web.session.mgt.DefaultWebSessionManager\n" + + "securityManager.sessionManager = $sessionManager\n" + + "securityManager.sessionManager.globalSessionTimeout = 86400000\n" + + "shiro.loginUrl = /api/login\n" + + "[roles]\n" + + "role1 = *\n" + + "role2 = *\n" + + "role3 = *\n" + + "admin = *\n" + + "[urls]\n" + + "/api/version = anon\n" + + "/** = authc"; private static String zeppelinShiroKnox = - "[users]\n" + - "admin = password1, admin\n" + - "user1 = password2, role1, role2\n" + - "[main]\n" + - "knoxJwtRealm = org.apache.zeppelin.realm.jwt.KnoxJwtRealm\n" + - "knoxJwtRealm.providerUrl = https://domain.example.com/\n" + - "knoxJwtRealm.login = gateway/knoxsso/knoxauth/login.html\n" + - "knoxJwtRealm.logout = gateway/knoxssout/api/v1/webssout\n" + - "knoxJwtRealm.redirectParam = originalUrl\n" + - "knoxJwtRealm.cookieName = hadoop-jwt\n" + - "knoxJwtRealm.publicKeyPath = knox-sso.pem\n" + - "authc = org.apache.zeppelin.realm.jwt.KnoxAuthenticationFilter\n" + - "sessionManager = org.apache.shiro.web.session.mgt.DefaultWebSessionManager\n" + - "securityManager.sessionManager = $sessionManager\n" + - "securityManager.sessionManager.globalSessionTimeout = 86400000\n" + - "shiro.loginUrl = /api/login\n" + - "[roles]\n" + - "admin = *\n" + - "[urls]\n" + - "/api/version = anon\n" + - "/** = authc"; + "[users]\n" + + "admin = password1, admin\n" + + "user1 = password2, role1, role2\n" + + "[main]\n" + + "knoxJwtRealm = org.apache.zeppelin.realm.jwt.KnoxJwtRealm\n" + + "knoxJwtRealm.providerUrl = https://domain.example.com/\n" + + "knoxJwtRealm.login = gateway/knoxsso/knoxauth/login.html\n" + + "knoxJwtRealm.logout = gateway/knoxssout/api/v1/webssout\n" + + "knoxJwtRealm.redirectParam = originalUrl\n" + + "knoxJwtRealm.cookieName = hadoop-jwt\n" + + "knoxJwtRealm.publicKeyPath = knox-sso.pem\n" + + "authc = org.apache.zeppelin.realm.jwt.KnoxAuthenticationFilter\n" + + "sessionManager = org.apache.shiro.web.session.mgt.DefaultWebSessionManager\n" + + "securityManager.sessionManager = $sessionManager\n" + + "securityManager.sessionManager.globalSessionTimeout = 86400000\n" + + "shiro.loginUrl = /api/login\n" + + "[roles]\n" + + "admin = *\n" + + "[urls]\n" + + "/api/version = anon\n" + + "/** = authc"; private static File knoxSsoPem = null; private static String knoxSsoPemCertificate = @@ -155,23 +152,27 @@ public abstract class AbstractTestRestApi { } static ExecutorService executor; - protected static final Runnable SERVER = new Runnable() { - @Override - public void run() { - try { - ZeppelinServer.main(new String[]{""}); - } catch (Exception e) { - LOG.error("Exception in WebDriverManager while getWebDriver ", e); - throw new RuntimeException(e); - } - } - }; + protected static final Runnable SERVER = + new Runnable() { + @Override + public void run() { + try { + ZeppelinServer.main(new String[] {""}); + } catch (Exception e) { + LOG.error("Exception in WebDriverManager while getWebDriver ", e); + throw new RuntimeException(e); + } + } + }; private static void start(boolean withAuth, String testClassName, boolean withKnox) - throws Exception { - LOG.info("Starting ZeppelinServer withAuth: {}, testClassName: {}, withKnox: {}", - withAuth, testClassName, withKnox); - + throws Exception { + LOG.info( + "Starting ZeppelinServer withAuth: {}, testClassName: {}, withKnox: {}", + withAuth, + testClassName, + withKnox); + if (!WAS_RUNNING) { // copy the resources files to a temp folder zeppelinHome = new File(".."); @@ -179,20 +180,19 @@ public abstract class AbstractTestRestApi { confDir = new File(zeppelinHome, "conf_" + testClassName); confDir.mkdirs(); - System.setProperty(ZeppelinConfiguration.ConfVars.ZEPPELIN_HOME.getVarName(), + System.setProperty( + ZeppelinConfiguration.ConfVars.ZEPPELIN_HOME.getVarName(), zeppelinHome.getAbsolutePath()); - System.setProperty(ZeppelinConfiguration.ConfVars.ZEPPELIN_WAR.getVarName(), + System.setProperty( + ZeppelinConfiguration.ConfVars.ZEPPELIN_WAR.getVarName(), new File("../zeppelin-web/dist").getAbsolutePath()); - System.setProperty(ZeppelinConfiguration.ConfVars.ZEPPELIN_CONF_DIR.getVarName(), - confDir.getAbsolutePath()); System.setProperty( - ZeppelinConfiguration.ConfVars.ZEPPELIN_INTERPRETER_GROUP_DEFAULT.getVarName(), - "spark"); + ZeppelinConfiguration.ConfVars.ZEPPELIN_CONF_DIR.getVarName(), confDir.getAbsolutePath()); + System.setProperty( + ZeppelinConfiguration.ConfVars.ZEPPELIN_INTERPRETER_GROUP_DEFAULT.getVarName(), "spark"); notebookDir = new File(zeppelinHome.getAbsolutePath() + "/notebook_" + testClassName); System.setProperty( - ZeppelinConfiguration.ConfVars.ZEPPELIN_NOTEBOOK_DIR.getVarName(), - notebookDir.getPath() - ); + ZeppelinConfiguration.ConfVars.ZEPPELIN_NOTEBOOK_DIR.getVarName(), notebookDir.getPath()); // some test profile does not build zeppelin-web. // to prevent zeppelin starting up fail, create zeppelin-web/dist directory @@ -204,8 +204,8 @@ public abstract class AbstractTestRestApi { if (withAuth) { isRunningWithAuth = true; // Set Anonymous session to false. - System.setProperty(ZeppelinConfiguration.ConfVars.ZEPPELIN_ANONYMOUS_ALLOWED.getVarName(), - "false"); + System.setProperty( + ZeppelinConfiguration.ConfVars.ZEPPELIN_ANONYMOUS_ALLOWED.getVarName(), "false"); // Create a shiro env test. shiroIni = new File(confDir, "shiro.ini"); @@ -213,8 +213,8 @@ public abstract class AbstractTestRestApi { shiroIni.createNewFile(); } if (withKnox) { - FileUtils.writeStringToFile(shiroIni, - zeppelinShiroKnox.replaceAll("knox-sso.pem", confDir + "/knox-sso.pem")); + FileUtils.writeStringToFile( + shiroIni, zeppelinShiroKnox.replaceAll("knox-sso.pem", confDir + "/knox-sso.pem")); knoxSsoPem = new File(confDir, "knox-sso.pem"); if (!knoxSsoPem.exists()) { knoxSsoPem.createNewFile(); @@ -223,14 +223,13 @@ public abstract class AbstractTestRestApi { } else { FileUtils.writeStringToFile(shiroIni, zeppelinShiro); } - } executor = Executors.newSingleThreadExecutor(); executor.submit(SERVER); long s = System.currentTimeMillis(); boolean started = false; - while (System.currentTimeMillis() - s < 1000 * 60 * 3) { // 3 minutes + while (System.currentTimeMillis() - s < 1000 * 60 * 3) { // 3 minutes Thread.sleep(2000); started = checkIfServerIsRunning(); if (started == true) { @@ -247,11 +246,11 @@ public abstract class AbstractTestRestApi { protected static void startUpWithKnoxEnable(String testClassName) throws Exception { start(true, testClassName, true); } - + protected static void startUpWithAuthenticationEnable(String testClassName) throws Exception { start(true, testClassName, false); } - + protected static void startUp(String testClassName) throws Exception { start(false, testClassName, false); } @@ -272,8 +271,8 @@ public abstract class AbstractTestRestApi { protected static void shutDown(final boolean deleteConfDir) throws Exception { if (!WAS_RUNNING && ZeppelinServer.notebook != null) { // restart interpreter to stop all interpreter processes - List<InterpreterSetting> settingList = ZeppelinServer.notebook.getInterpreterSettingManager() - .get(); + List<InterpreterSetting> settingList = + ZeppelinServer.notebook.getInterpreterSettingManager().get(); if (!ZeppelinServer.notebook.getConf().isRecoveryEnabled()) { for (InterpreterSetting setting : settingList) { ZeppelinServer.notebook.getInterpreterSettingManager().restart(setting.getId()); @@ -289,7 +288,7 @@ public abstract class AbstractTestRestApi { long s = System.currentTimeMillis(); boolean started = true; - while (System.currentTimeMillis() - s < 1000 * 60 * 3) { // 3 minutes + while (System.currentTimeMillis() - s < 1000 * 60 * 3) { // 3 minutes Thread.sleep(2000); started = checkIfServerIsRunning(); if (started == false) { @@ -301,11 +300,11 @@ public abstract class AbstractTestRestApi { } LOG.info("Test Zeppelin terminated."); - + if (isRunningWithAuth) { isRunningWithAuth = false; - System - .clearProperty(ZeppelinConfiguration.ConfVars.ZEPPELIN_ANONYMOUS_ALLOWED.getVarName()); + System.clearProperty( + ZeppelinConfiguration.ConfVars.ZEPPELIN_ANONYMOUS_ALLOWED.getVarName()); } if (deleteConfDir && !ZeppelinServer.notebook.getConf().isRecoveryEnabled()) { @@ -324,8 +323,9 @@ public abstract class AbstractTestRestApi { request = httpGet("/version"); isRunning = request.getStatusCode() == 200; } catch (IOException e) { - LOG.error("AbstractTestRestApi.checkIfServerIsRunning() fails .. ZeppelinServer is not " + - "running"); + LOG.error( + "AbstractTestRestApi.checkIfServerIsRunning() fails .. ZeppelinServer is not " + + "running"); isRunning = false; } finally { if (request != null) { @@ -338,13 +338,13 @@ public abstract class AbstractTestRestApi { protected static GetMethod httpGet(String path) throws IOException { return httpGet(path, StringUtils.EMPTY, StringUtils.EMPTY); } - + protected static GetMethod httpGet(String path, String user, String pwd) throws IOException { return httpGet(path, user, pwd, StringUtils.EMPTY); } protected static GetMethod httpGet(String path, String user, String pwd, String cookies) - throws IOException { + throws IOException { LOG.info("Connecting to {}", URL + path); HttpClient httpClient = new HttpClient(); GetMethod getMethod = new GetMethod(URL + path); @@ -365,7 +365,7 @@ public abstract class AbstractTestRestApi { } protected static DeleteMethod httpDelete(String path, String user, String pwd) - throws IOException { + throws IOException { LOG.info("Connecting to {}", URL + path); HttpClient httpClient = new HttpClient(); DeleteMethod deleteMethod = new DeleteMethod(URL + path); @@ -383,7 +383,7 @@ public abstract class AbstractTestRestApi { } protected static PostMethod httpPost(String path, String request, String user, String pwd) - throws IOException { + throws IOException { LOG.info("Connecting to {}", URL + path); HttpClient httpClient = new HttpClient(); PostMethod postMethod = new PostMethod(URL + path); @@ -402,7 +402,7 @@ public abstract class AbstractTestRestApi { } protected static PutMethod httpPut(String path, String body, String user, String pwd) - throws IOException { + throws IOException { LOG.info("Connecting to {}", URL + path); HttpClient httpClient = new HttpClient(); PutMethod putMethod = new PutMethod(URL + path); @@ -448,7 +448,7 @@ public abstract class AbstractTestRestApi { } return true; } - + protected Matcher<HttpMethodBase> responsesWith(final int expectedStatusCode) { return new TypeSafeMatcher<HttpMethodBase>() { WeakReference<HttpMethodBase> method; @@ -461,13 +461,19 @@ public abstract class AbstractTestRestApi { @Override public void describeTo(Description description) { - description.appendText("HTTP response ").appendValue(expectedStatusCode) - .appendText(" from ").appendText(method.get().getPath()); + description + .appendText("HTTP response ") + .appendValue(expectedStatusCode) + .appendText(" from ") + .appendText(method.get().getPath()); } @Override protected void describeMismatchSafely(HttpMethodBase item, Description description) { - description.appendText("got ").appendValue(item.getStatusCode()).appendText(" ") + description + .appendText("got ") + .appendValue(item.getStatusCode()) + .appendText(" ") .appendText(item.getStatusText()); } }; @@ -528,7 +534,9 @@ public abstract class AbstractTestRestApi { @Override public void describeTo(Description description) { - description.appendText("response in JSON format with \"").appendText(memberName) + description + .appendText("response in JSON format with \"") + .appendText(memberName) .appendText("\" beeing a root element "); } @@ -553,9 +561,7 @@ public abstract class AbstractTestRestApi { } } - /** - * Status code matcher. - */ + /** Status code matcher. */ protected Matcher<? super HttpMethodBase> isForbidden() { return responsesWith(403); } http://git-wip-us.apache.org/repos/asf/zeppelin/blob/55f6c91c/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ConfigurationsRestApiTest.java ---------------------------------------------------------------------- diff --git a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ConfigurationsRestApiTest.java b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ConfigurationsRestApiTest.java index bd489b5..3164ecb 100644 --- a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ConfigurationsRestApiTest.java +++ b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ConfigurationsRestApiTest.java @@ -22,15 +22,13 @@ import com.google.common.base.Predicate; import com.google.common.collect.Iterators; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; - +import java.io.IOException; +import java.util.Map; import org.apache.commons.httpclient.methods.GetMethod; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; -import java.io.IOException; -import java.util.Map; - public class ConfigurationsRestApiTest extends AbstractTestRestApi { Gson gson = new Gson(); @@ -47,34 +45,40 @@ public class ConfigurationsRestApiTest extends AbstractTestRestApi { @Test public void testGetAll() throws IOException { GetMethod get = httpGet("/configurations/all"); - Map<String, Object> resp = gson.fromJson(get.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>(){}.getType()); + Map<String, Object> resp = + gson.fromJson( + get.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); Map<String, String> body = (Map<String, String>) resp.get("body"); assertTrue(body.size() > 0); // it shouldn't have key/value pair which key contains "password" - assertTrue(Iterators.all(body.keySet().iterator(), new Predicate<String>() { - @Override - public boolean apply(String key) { - return !key.contains("password"); - } - } - )); + assertTrue( + Iterators.all( + body.keySet().iterator(), + new Predicate<String>() { + @Override + public boolean apply(String key) { + return !key.contains("password"); + } + })); } @Test public void testGetViaPrefix() throws IOException { final String prefix = "zeppelin.server"; GetMethod get = httpGet("/configurations/prefix/" + prefix); - Map<String, Object> resp = gson.fromJson(get.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>(){}.getType()); + Map<String, Object> resp = + gson.fromJson( + get.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); Map<String, String> body = (Map<String, String>) resp.get("body"); assertTrue(body.size() > 0); - assertTrue(Iterators.all(body.keySet().iterator(), new Predicate<String>() { - @Override - public boolean apply(String key) { - return !key.contains("password") && key.startsWith(prefix); - } - } - )); + assertTrue( + Iterators.all( + body.keySet().iterator(), + new Predicate<String>() { + @Override + public boolean apply(String key) { + return !key.contains("password") && key.startsWith(prefix); + } + })); } } http://git-wip-us.apache.org/repos/asf/zeppelin/blob/55f6c91c/zeppelin-server/src/test/java/org/apache/zeppelin/rest/HeliumRestApiTest.java ---------------------------------------------------------------------- diff --git a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/HeliumRestApiTest.java b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/HeliumRestApiTest.java index 6f8edfd..b6a5a63 100644 --- a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/HeliumRestApiTest.java +++ b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/HeliumRestApiTest.java @@ -23,25 +23,22 @@ import static org.junit.Assert.assertTrue; import com.google.gson.Gson; import com.google.gson.internal.StringMap; import com.google.gson.reflect.TypeToken; - -import org.apache.commons.httpclient.methods.GetMethod; -import org.apache.commons.httpclient.methods.PostMethod; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; - import java.io.IOException; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; - +import org.apache.commons.httpclient.methods.GetMethod; +import org.apache.commons.httpclient.methods.PostMethod; import org.apache.zeppelin.helium.HeliumPackage; import org.apache.zeppelin.helium.HeliumRegistry; import org.apache.zeppelin.helium.HeliumType; import org.apache.zeppelin.server.ZeppelinServer; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; public class HeliumRestApiTest extends AbstractTestRestApi { Gson gson = new Gson(); @@ -62,25 +59,27 @@ public class HeliumRestApiTest extends AbstractTestRestApi { ZeppelinServer.helium.clear(); ZeppelinServer.helium.addRegistry(registry); - registry.add(new HeliumPackage( - HeliumType.APPLICATION, - "name1", - "desc1", - "artifact1", - "className1", - new String[][]{}, - "", - "")); - - registry.add(new HeliumPackage( - HeliumType.APPLICATION, - "name2", - "desc2", - "artifact2", - "className2", - new String[][]{}, - "", - "")); + registry.add( + new HeliumPackage( + HeliumType.APPLICATION, + "name1", + "desc1", + "artifact1", + "className1", + new String[][] {}, + "", + "")); + + registry.add( + new HeliumPackage( + HeliumType.APPLICATION, + "name2", + "desc2", + "artifact2", + "className2", + new String[][] {}, + "", + "")); } @After @@ -92,8 +91,9 @@ public class HeliumRestApiTest extends AbstractTestRestApi { public void testGetAllPackageInfo() throws IOException { GetMethod get = httpGet("/helium/package"); assertThat(get, isAllowed()); - Map<String, Object> resp = gson.fromJson(get.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() { }.getType()); + Map<String, Object> resp = + gson.fromJson( + get.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); Map<String, Set<String>> body = (Map<String, Set<String>>) resp.get("body"); assertEquals(body.size(), 2); @@ -106,8 +106,9 @@ public class HeliumRestApiTest extends AbstractTestRestApi { // No enabled packages initially GetMethod get1 = httpGet("/helium/enabledPackage"); assertThat(get1, isAllowed()); - Map<String, Object> resp1 = gson.fromJson(get1.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() { }.getType()); + Map<String, Object> resp1 = + gson.fromJson( + get1.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); List<StringMap<Object>> body1 = (List<StringMap<Object>>) resp1.get("body"); assertEquals(body1.size(), 0); @@ -116,8 +117,9 @@ public class HeliumRestApiTest extends AbstractTestRestApi { GetMethod get2 = httpGet("/helium/enabledPackage"); assertThat(get2, isAllowed()); - Map<String, Object> resp2 = gson.fromJson(get2.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() { }.getType()); + Map<String, Object> resp2 = + gson.fromJson( + get2.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); List<StringMap<Object>> body2 = (List<StringMap<Object>>) resp2.get("body"); assertEquals(body2.size(), 1); @@ -130,8 +132,9 @@ public class HeliumRestApiTest extends AbstractTestRestApi { String packageName = "name1"; GetMethod get = httpGet("/helium/package/" + packageName); assertThat(get, isAllowed()); - Map<String, Object> resp = gson.fromJson(get.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() { }.getType()); + Map<String, Object> resp = + gson.fromJson( + get.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); List<StringMap<Object>> body = (List<StringMap<Object>>) resp.get("body"); assertEquals(body.size(), 1); @@ -143,8 +146,9 @@ public class HeliumRestApiTest extends AbstractTestRestApi { public void testGetAllPackageConfigs() throws IOException { GetMethod get = httpGet("/helium/config/"); assertThat(get, isAllowed()); - Map<String, Object> resp = gson.fromJson(get.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() { }.getType()); + Map<String, Object> resp = + gson.fromJson( + get.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); StringMap<Object> body = (StringMap<Object>) resp.get("body"); // ToDo: Apply config with POST command and check update assertEquals(body.size(), 0); @@ -156,8 +160,9 @@ public class HeliumRestApiTest extends AbstractTestRestApi { String artifact = "artifact1"; GetMethod get = httpGet("/helium/config/" + packageName + "/" + artifact); assertThat(get, isAllowed()); - Map<String, Object> resp = gson.fromJson(get.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() { }.getType()); + Map<String, Object> resp = + gson.fromJson( + get.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); StringMap<Object> body = (StringMap<Object>) resp.get("body"); assertTrue(body.containsKey("confPersisted")); } @@ -170,8 +175,9 @@ public class HeliumRestApiTest extends AbstractTestRestApi { post1.releaseConnection(); GetMethod get1 = httpGet("/helium/package/" + packageName); - Map<String, Object> resp1 = gson.fromJson(get1.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() { }.getType()); + Map<String, Object> resp1 = + gson.fromJson( + get1.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); List<StringMap<Object>> body1 = (List<StringMap<Object>>) resp1.get("body"); assertEquals(body1.get(0).get("enabled"), true); @@ -180,8 +186,9 @@ public class HeliumRestApiTest extends AbstractTestRestApi { post2.releaseConnection(); GetMethod get2 = httpGet("/helium/package/" + packageName); - Map<String, Object> resp2 = gson.fromJson(get2.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() { }.getType()); + Map<String, Object> resp2 = + gson.fromJson( + get2.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); List<StringMap<Object>> body2 = (List<StringMap<Object>>) resp2.get("body"); assertEquals(body2.get(0).get("enabled"), false); } @@ -190,12 +197,13 @@ public class HeliumRestApiTest extends AbstractTestRestApi { public void testVisualizationPackageOrder() throws IOException { GetMethod get1 = httpGet("/helium/order/visualization"); assertThat(get1, isAllowed()); - Map<String, Object> resp1 = gson.fromJson(get1.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() { }.getType()); + Map<String, Object> resp1 = + gson.fromJson( + get1.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); List<Object> body1 = (List<Object>) resp1.get("body"); assertEquals(body1.size(), 0); - //We assume allPackages list has been refreshed before sorting + // We assume allPackages list has been refreshed before sorting ZeppelinServer.helium.getAllPackageInfo(); String postRequestJson = "[name2, name1]"; @@ -205,8 +213,9 @@ public class HeliumRestApiTest extends AbstractTestRestApi { GetMethod get2 = httpGet("/helium/order/visualization"); assertThat(get2, isAllowed()); - Map<String, Object> resp2 = gson.fromJson(get2.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() { }.getType()); + Map<String, Object> resp2 = + gson.fromJson( + get2.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); List<Object> body2 = (List<Object>) resp2.get("body"); assertEquals(body2.size(), 2); assertEquals(body2.get(0), "name2"); http://git-wip-us.apache.org/repos/asf/zeppelin/blob/55f6c91c/zeppelin-server/src/test/java/org/apache/zeppelin/rest/InterpreterRestApiTest.java ---------------------------------------------------------------------- diff --git a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/InterpreterRestApiTest.java b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/InterpreterRestApiTest.java index 0b3bc23..cb5a221 100644 --- a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/InterpreterRestApiTest.java +++ b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/InterpreterRestApiTest.java @@ -16,11 +16,18 @@ */ package org.apache.zeppelin.rest; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.Assert.assertEquals; + import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.reflect.TypeToken; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; import org.apache.commons.httpclient.methods.DeleteMethod; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.PostMethod; @@ -39,17 +46,7 @@ import org.junit.FixMethodOrder; import org.junit.Test; import org.junit.runners.MethodSorters; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import static org.hamcrest.MatcherAssert.assertThat; -import static org.junit.Assert.assertEquals; - -/** - * Zeppelin interpreter rest api tests. - */ +/** Zeppelin interpreter rest api tests. */ @FixMethodOrder(MethodSorters.NAME_ASCENDING) public class InterpreterRestApiTest extends AbstractTestRestApi { private Gson gson = new Gson(); @@ -78,8 +75,12 @@ public class InterpreterRestApiTest extends AbstractTestRestApi { // then assertThat(get, isAllowed()); - assertEquals(ZeppelinServer.notebook.getInterpreterSettingManager() - .getInterpreterSettingTemplates().size(), body.entrySet().size()); + assertEquals( + ZeppelinServer.notebook + .getInterpreterSettingManager() + .getInterpreterSettingTemplates() + .size(), + body.entrySet().size()); get.releaseConnection(); } @@ -108,12 +109,13 @@ public class InterpreterRestApiTest extends AbstractTestRestApi { @Test public void testSettingsCRUD() throws IOException { // when: call create setting API - String rawRequest = "{\"name\":\"md3\",\"group\":\"md\"," + - "\"properties\":{\"propname\": {\"value\": \"propvalue\", \"name\": \"propname\", " + - "\"type\": \"textarea\"}}," + - "\"interpreterGroup\":[{\"class\":\"org.apache.zeppelin.markdown.Markdown\"," + - "\"name\":\"md\"}],\"dependencies\":[]," + - "\"option\": { \"remote\": true, \"session\": false }}"; + String rawRequest = + "{\"name\":\"md3\",\"group\":\"md\"," + + "\"properties\":{\"propname\": {\"value\": \"propvalue\", \"name\": \"propname\", " + + "\"type\": \"textarea\"}}," + + "\"interpreterGroup\":[{\"class\":\"org.apache.zeppelin.markdown.Markdown\"," + + "\"name\":\"md\"}],\"dependencies\":[]," + + "\"option\": { \"remote\": true, \"session\": false }}"; JsonObject jsonRequest = gson.fromJson(rawRequest, JsonElement.class).getAsJsonObject(); PostMethod post = httpPost("/interpreter/setting/", jsonRequest.toString()); String postResponse = post.getResponseBodyAsString(); @@ -163,30 +165,40 @@ public class InterpreterRestApiTest extends AbstractTestRestApi { String md1Dep = "org.apache.drill.exec:drill-jdbc:jar:1.7.0"; String md2Dep = "org.apache.drill.exec:drill-jdbc:jar:1.6.0"; - String reqBody1 = "{\"name\":\"" + md1Name + "\",\"group\":\"md\"," + - "\"properties\":{\"propname\": {\"value\": \"propvalue\", \"name\": \"propname\", " + - "\"type\": \"textarea\"}}," + - "\"interpreterGroup\":[{\"class\":\"org.apache.zeppelin.markdown.Markdown\"," + - "\"name\":\"md\"}]," + - "\"dependencies\":[ {\n" + - " \"groupArtifactVersion\": \"" + md1Dep + "\",\n" + - " \"exclusions\":[]\n" + - " }]," + - "\"option\": { \"remote\": true, \"session\": false }}"; + String reqBody1 = + "{\"name\":\"" + + md1Name + + "\",\"group\":\"md\"," + + "\"properties\":{\"propname\": {\"value\": \"propvalue\", \"name\": \"propname\", " + + "\"type\": \"textarea\"}}," + + "\"interpreterGroup\":[{\"class\":\"org.apache.zeppelin.markdown.Markdown\"," + + "\"name\":\"md\"}]," + + "\"dependencies\":[ {\n" + + " \"groupArtifactVersion\": \"" + + md1Dep + + "\",\n" + + " \"exclusions\":[]\n" + + " }]," + + "\"option\": { \"remote\": true, \"session\": false }}"; PostMethod post = httpPost("/interpreter/setting", reqBody1); assertThat("test create method:", post, isAllowed()); post.releaseConnection(); - String reqBody2 = "{\"name\":\"" + md2Name + "\",\"group\":\"md\"," + - "\"properties\": {\"propname\": {\"value\": \"propvalue\", \"name\": \"propname\", " + - "\"type\": \"textarea\"}}," + - "\"interpreterGroup\":[{\"class\":\"org.apache.zeppelin.markdown.Markdown\"," + - "\"name\":\"md\"}]," + - "\"dependencies\":[ {\n" + - " \"groupArtifactVersion\": \"" + md2Dep + "\",\n" + - " \"exclusions\":[]\n" + - " }]," + - "\"option\": { \"remote\": true, \"session\": false }}"; + String reqBody2 = + "{\"name\":\"" + + md2Name + + "\",\"group\":\"md\"," + + "\"properties\": {\"propname\": {\"value\": \"propvalue\", \"name\": \"propname\", " + + "\"type\": \"textarea\"}}," + + "\"interpreterGroup\":[{\"class\":\"org.apache.zeppelin.markdown.Markdown\"," + + "\"name\":\"md\"}]," + + "\"dependencies\":[ {\n" + + " \"groupArtifactVersion\": \"" + + md2Dep + + "\",\n" + + " \"exclusions\":[]\n" + + " }]," + + "\"option\": { \"remote\": true, \"session\": false }}"; post = httpPost("/interpreter/setting", reqBody2); assertThat("test create method:", post, isAllowed()); post.releaseConnection(); @@ -199,9 +211,8 @@ public class InterpreterRestApiTest extends AbstractTestRestApi { // 2. Parsing to List<InterpreterSettings> JsonObject responseJson = gson.fromJson(rawResponse, JsonElement.class).getAsJsonObject(); JsonArray bodyArr = responseJson.getAsJsonArray("body"); - List<InterpreterSetting> settings = new Gson().fromJson(bodyArr, - new TypeToken<ArrayList<InterpreterSetting>>() { - }.getType()); + List<InterpreterSetting> settings = + new Gson().fromJson(bodyArr, new TypeToken<ArrayList<InterpreterSetting>>() {}.getType()); // 3. Filter interpreters out we have just created InterpreterSetting md1 = null; @@ -252,7 +263,9 @@ public class InterpreterRestApiTest extends AbstractTestRestApi { assertEquals(p.getReturn().message().get(0).getData(), getSimulatedMarkdownResult("markdown")); // when: restart interpreter - for (InterpreterSetting setting : ZeppelinServer.notebook.getInterpreterSettingManager() + for (InterpreterSetting setting : + ZeppelinServer.notebook + .getInterpreterSettingManager() .getInterpreterSettings(note.getId())) { if (setting.getName().equals("md")) { // call restart interpreter API @@ -274,8 +287,8 @@ public class InterpreterRestApiTest extends AbstractTestRestApi { } // then - assertEquals(p.getReturn().message().get(0).getData(), - getSimulatedMarkdownResult("markdown restarted")); + assertEquals( + p.getReturn().message().get(0).getData(), getSimulatedMarkdownResult("markdown restarted")); ZeppelinServer.notebook.removeNote(note.getId(), anonymous); } @@ -300,7 +313,9 @@ public class InterpreterRestApiTest extends AbstractTestRestApi { // when: get md interpreter InterpreterSetting mdIntpSetting = null; - for (InterpreterSetting setting : ZeppelinServer.notebook.getInterpreterSettingManager() + for (InterpreterSetting setting : + ZeppelinServer.notebook + .getInterpreterSettingManager() .getInterpreterSettings(note.getId())) { if (setting.getName().equals("md")) { mdIntpSetting = setting; @@ -342,8 +357,10 @@ public class InterpreterRestApiTest extends AbstractTestRestApi { public void testAddDeleteRepository() throws IOException { // Call create repository API String repoId = "securecentral"; - String jsonRequest = "{\"id\":\"" + repoId + - "\",\"url\":\"https://repo1.maven.org/maven2\",\"snapshot\":\"false\"}"; + String jsonRequest = + "{\"id\":\"" + + repoId + + "\",\"url\":\"https://repo1.maven.org/maven2\",\"snapshot\":\"false\"}"; PostMethod post = httpPost("/interpreter/repository/", jsonRequest); assertThat("Test create method:", post, isAllowed()); http://git-wip-us.apache.org/repos/asf/zeppelin/blob/55f6c91c/zeppelin-server/src/test/java/org/apache/zeppelin/rest/KnoxRestApiTest.java ---------------------------------------------------------------------- diff --git a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/KnoxRestApiTest.java b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/KnoxRestApiTest.java index d0253a8..43def61 100644 --- a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/KnoxRestApiTest.java +++ b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/KnoxRestApiTest.java @@ -17,7 +17,8 @@ package org.apache.zeppelin.rest; import com.google.gson.Gson; - +import java.io.IOException; +import java.util.Map; import org.apache.commons.httpclient.methods.GetMethod; import org.hamcrest.CoreMatchers; import org.junit.AfterClass; @@ -28,17 +29,14 @@ import org.junit.rules.ErrorCollector; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.IOException; -import java.util.Map; - public class KnoxRestApiTest extends AbstractTestRestApi { - private final String knoxCookie = "hadoop-jwt=eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsImlzcyI" + - "6IktOT1hTU08iLCJleHAiOjE1MTM3NDU1MDd9.E2cWQo2sq75h0G_9fc9nWkL0SFMI5x_-Z0Zzr0NzQ86X4jfx" + - "liWYjr0M17Bm9GfPHRRR66s7YuYXa6DLbB4fHE0cyOoQnkfJFpU_vr1xhy0_0URc5v-Gb829b9rxuQfjKe-37h" + - "qbUdkwww2q6QQETVMvzp0rQKprUClZujyDvh0;"; + private final String knoxCookie = + "hadoop-jwt=eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsImlzcyI" + + "6IktOT1hTU08iLCJleHAiOjE1MTM3NDU1MDd9.E2cWQo2sq75h0G_9fc9nWkL0SFMI5x_-Z0Zzr0NzQ86X4jfx" + + "liWYjr0M17Bm9GfPHRRR66s7YuYXa6DLbB4fHE0cyOoQnkfJFpU_vr1xhy0_0URc5v-Gb829b9rxuQfjKe-37h" + + "qbUdkwww2q6QQETVMvzp0rQKprUClZujyDvh0;"; - @Rule - public ErrorCollector collector = new ErrorCollector(); + @Rule public ErrorCollector collector = new ErrorCollector(); private static final Logger LOG = LoggerFactory.getLogger(KnoxRestApiTest.class); @@ -55,28 +53,35 @@ public class KnoxRestApiTest extends AbstractTestRestApi { } @Before - public void setUp() { - } + public void setUp() {} // @Test public void testThatOtherUserCanAccessNoteIfPermissionNotSet() throws IOException { GetMethod loginWithoutCookie = httpGet("/api/security/ticket"); Map result = gson.fromJson(loginWithoutCookie.getResponseBodyAsString(), Map.class); - collector.checkThat("Path is redirected to /login", loginWithoutCookie.getPath(), + collector.checkThat( + "Path is redirected to /login", + loginWithoutCookie.getPath(), CoreMatchers.containsString("login")); - collector.checkThat("Path is redirected to /login", loginWithoutCookie.getPath(), + collector.checkThat( + "Path is redirected to /login", + loginWithoutCookie.getPath(), CoreMatchers.containsString("login")); - collector.checkThat("response contains redirect URL", - ((Map) result.get("body")).get("redirectURL").toString(), CoreMatchers.equalTo( + collector.checkThat( + "response contains redirect URL", + ((Map) result.get("body")).get("redirectURL").toString(), + CoreMatchers.equalTo( "https://domain.example.com/gateway/knoxsso/knoxauth/login.html?originalUrl=")); GetMethod loginWithCookie = httpGet("/api/security/ticket", "", "", knoxCookie); result = gson.fromJson(loginWithCookie.getResponseBodyAsString(), Map.class); - collector.checkThat("User logged in as admin", - ((Map) result.get("body")).get("principal").toString(), CoreMatchers.equalTo("admin")); + collector.checkThat( + "User logged in as admin", + ((Map) result.get("body")).get("principal").toString(), + CoreMatchers.equalTo("admin")); System.out.println(result); } http://git-wip-us.apache.org/repos/asf/zeppelin/blob/55f6c91c/zeppelin-server/src/test/java/org/apache/zeppelin/rest/NotebookRepoRestApiTest.java ---------------------------------------------------------------------- diff --git a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/NotebookRepoRestApiTest.java b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/NotebookRepoRestApiTest.java index 34b85ae..ed66473 100644 --- a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/NotebookRepoRestApiTest.java +++ b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/NotebookRepoRestApiTest.java @@ -23,10 +23,13 @@ import static org.junit.Assert.assertThat; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; - +import java.io.IOException; +import java.util.List; +import java.util.Map; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.PutMethod; import org.apache.commons.lang.StringUtils; +import org.apache.zeppelin.user.AuthenticationInfo; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; @@ -34,15 +37,7 @@ import org.junit.FixMethodOrder; import org.junit.Test; import org.junit.runners.MethodSorters; -import java.io.IOException; -import java.util.List; -import java.util.Map; - -import org.apache.zeppelin.user.AuthenticationInfo; - -/** - * NotebookRepo rest api test. - */ +/** NotebookRepo rest api test. */ @FixMethodOrder(MethodSorters.NAME_ASCENDING) public class NotebookRepoRestApiTest extends AbstractTestRestApi { Gson gson = new Gson(); @@ -57,27 +52,28 @@ public class NotebookRepoRestApiTest extends AbstractTestRestApi { public static void destroy() throws Exception { AbstractTestRestApi.shutDown(); } - + @Before public void setUp() { anonymous = new AuthenticationInfo("anonymous"); } - + private List<Map<String, Object>> getListOfReposotiry() throws IOException { GetMethod get = httpGet("/notebook-repositories"); - Map<String, Object> responce = gson.fromJson(get.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() {}.getType()); + Map<String, Object> responce = + gson.fromJson( + get.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); get.releaseConnection(); return (List<Map<String, Object>>) responce.get("body"); } - + private void updateNotebookRepoWithNewSetting(String payload) throws IOException { PutMethod put = httpPut("/notebook-repositories", payload); int status = put.getStatusCode(); put.releaseConnection(); assertThat(status, is(200)); } - + @Test public void thatCanGetNotebookRepositoiesSettings() throws IOException { List<Map<String, Object>> listOfRepositories = getListOfReposotiry(); @@ -89,9 +85,9 @@ public class NotebookRepoRestApiTest extends AbstractTestRestApi { GetMethod get = httpGet("/notebook-repositories/reload"); int status = get.getStatusCode(); get.releaseConnection(); - assertThat(status, is(200)); + assertThat(status, is(200)); } - + @Test public void setNewDirectoryForLocalDirectory() throws IOException { List<Map<String, Object>> listOfRepositories = getListOfReposotiry(); @@ -101,8 +97,10 @@ public class NotebookRepoRestApiTest extends AbstractTestRestApi { for (int i = 0; i < listOfRepositories.size(); i++) { if (listOfRepositories.get(i).get("name").equals("VFSNotebookRepo")) { localVfs = - (String) ((List<Map<String, Object>>) listOfRepositories.get(i).get("settings")) - .get(0).get("selected"); + (String) + ((List<Map<String, Object>>) listOfRepositories.get(i).get("settings")) + .get(0) + .get("selected"); className = (String) listOfRepositories.get(i).get("className"); break; } @@ -113,26 +111,35 @@ public class NotebookRepoRestApiTest extends AbstractTestRestApi { return; } - String payload = "{ \"name\": \"" + className + "\", \"settings\" : " + - "{ \"Notebook Path\" : \"/tmp/newDir\" } }"; + String payload = + "{ \"name\": \"" + + className + + "\", \"settings\" : " + + "{ \"Notebook Path\" : \"/tmp/newDir\" } }"; updateNotebookRepoWithNewSetting(payload); - + // Verify listOfRepositories = getListOfReposotiry(); String updatedPath = StringUtils.EMPTY; for (int i = 0; i < listOfRepositories.size(); i++) { if (listOfRepositories.get(i).get("name").equals("VFSNotebookRepo")) { updatedPath = - (String) ((List<Map<String, Object>>) listOfRepositories.get(i).get("settings")) - .get(0).get("selected"); + (String) + ((List<Map<String, Object>>) listOfRepositories.get(i).get("settings")) + .get(0) + .get("selected"); break; } } assertThat(updatedPath, anyOf(is("/tmp/newDir"), is("/tmp/newDir/"))); - + // go back to normal - payload = "{ \"name\": \"" + className + "\", \"settings\" : { \"Notebook Path\" : \"" + - localVfs + "\" } }"; + payload = + "{ \"name\": \"" + + className + + "\", \"settings\" : { \"Notebook Path\" : \"" + + localVfs + + "\" } }"; updateNotebookRepoWithNewSetting(payload); } }