http://git-wip-us.apache.org/repos/asf/zeppelin/blob/0d746fa2/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 735a79b..65740ff 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,13 +16,17 @@ */ 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; -/** Notebook websocket. */ +import java.io.IOException; + +import javax.servlet.http.HttpServletRequest; + +/** + * Notebook websocket. + */ public class NotebookSocket extends WebSocketAdapter { private Session connection; private NotebookSocketListener listener; @@ -30,7 +34,8 @@ 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/0d746fa2/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 39963d9..3c2edd3 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/0d746fa2/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 bc4f30f..7033929 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,15 +16,17 @@ */ 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; -/** Responsible to create the WebSockets for the NotebookServer. */ +import static org.apache.zeppelin.conf.ZeppelinConfiguration.ConfVars.ZEPPELIN_ALLOWED_ORIGINS; + +/** + * Responsible to create the WebSockets for the NotebookServer. + */ public class NotebookWebSocketCreator implements WebSocketCreator { private static final Logger LOG = LoggerFactory.getLogger(NotebookWebSocketCreator.class); @@ -33,17 +35,15 @@ 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/0d746fa2/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 b5e5e6d..2e080ea 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,18 +16,21 @@ */ package org.apache.zeppelin.types; -import java.util.List; import org.apache.zeppelin.interpreter.InterpreterInfo; -/** InterpreterSetting information for binding. */ +import java.util.List; + +/** + * 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/0d746fa2/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 2d3fd89..e345dd6 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/0d746fa2/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 53518e4..63f8580 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,9 +17,12 @@ 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/0d746fa2/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 2d522af..ce87e5e 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,15 +17,19 @@ 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/0d746fa2/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 08ec1a1..3ea2f75 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,22 +16,25 @@ */ 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; -/** Utils for interpreter bindings. */ +import java.util.LinkedList; +import java.util.List; + +/** + * 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/0d746fa2/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 37edc36..134aa61 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,28 +18,6 @@ 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; @@ -60,7 +38,32 @@ import org.apache.zeppelin.server.ZeppelinServer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -/** Tools for securing Zeppelin. */ +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. + */ public class SecurityUtils { private static final String ANONYMOUS = "anonymous"; private static final HashSet<String> EMPTY_HASHSET = Sets.newHashSet(); @@ -68,6 +71,7 @@ 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; } @@ -85,10 +89,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); } /** @@ -106,8 +110,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 { @@ -137,8 +141,10 @@ 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; @@ -146,9 +152,9 @@ public class SecurityUtils { return org.apache.shiro.SecurityUtils.getSubject().isAuthenticated(); } + /** * Get candidated users based on searchText - * * @param searchText * @param numUsersToFetch * @return @@ -165,12 +171,14 @@ 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)); } @@ -217,7 +225,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<>(); @@ -233,11 +241,10 @@ 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()); } @@ -263,7 +270,9 @@ 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"); @@ -277,8 +286,9 @@ public class SecurityUtils { return userList; } - /** - * * Get user roles from shiro.ini. + + /*** + * Get user roles from shiro.ini. * * @param r * @return @@ -296,7 +306,9 @@ 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(); @@ -311,8 +323,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) { @@ -327,7 +339,9 @@ 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); @@ -342,17 +356,9 @@ 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) { @@ -374,8 +380,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 @@ -387,15 +393,16 @@ 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(); @@ -406,7 +413,9 @@ 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/0d746fa2/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 18ce914..de21aa8 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/0d746fa2/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 b62927c..cfbdc31 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/0d746fa2/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 3f534de..5bff693 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,21 +24,23 @@ 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 @@ -56,9 +58,8 @@ 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 @@ -71,7 +72,8 @@ 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 @@ -105,18 +107,14 @@ 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); } @@ -135,7 +133,8 @@ 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/0d746fa2/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 036046f..f328407 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,10 +30,11 @@ 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. * - * <p>Contains main() function so the test can be executed manually. + * Contains main() function so the test can be executed manually. * - * <p>Set in MacOS to run in IDE(A): $ launchctl setenv PAM_USER user $ launchctl setenv PAM_PASS - * xxxxx + * 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/0d746fa2/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 8d0676c..7a58a41 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,10 +22,16 @@ import static org.junit.Assert.assertThat; import com.google.common.io.Files; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; -import java.io.File; -import java.util.Map; + 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.zeppelin.conf.ZeppelinConfiguration; import org.apache.zeppelin.interpreter.ManagedInterpreterGroup; import org.apache.zeppelin.interpreter.recovery.FileSystemRecoveryStorage; @@ -36,9 +42,6 @@ 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(); @@ -46,13 +49,11 @@ 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()); } @@ -71,9 +72,8 @@ 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,20 +102,17 @@ 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(); @@ -141,16 +138,15 @@ 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/0d746fa2/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 ef2cc51..689b7af 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,15 +19,7 @@ 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; @@ -43,16 +35,27 @@ 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); @@ -63,47 +66,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 = @@ -152,27 +155,23 @@ 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(".."); @@ -180,19 +179,20 @@ 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_CONF_DIR.getVarName(), confDir.getAbsolutePath()); - System.setProperty( - ZeppelinConfiguration.ConfVars.ZEPPELIN_INTERPRETER_GROUP_DEFAULT.getVarName(), "spark"); + 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,13 +223,14 @@ 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) { @@ -246,11 +247,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); } @@ -271,8 +272,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()); @@ -288,7 +289,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) { @@ -300,11 +301,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()) { @@ -323,9 +324,8 @@ 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,19 +461,13 @@ 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()); } }; @@ -534,9 +528,7 @@ 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 "); } @@ -561,7 +553,9 @@ 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/0d746fa2/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 3164ecb..bd489b5 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,13 +22,15 @@ 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(); @@ -45,40 +47,34 @@ 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/0d746fa2/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 b6a5a63..6f8edfd 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,22 +23,25 @@ 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(); @@ -59,27 +62,25 @@ 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 @@ -91,9 +92,8 @@ 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,9 +106,8 @@ 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); @@ -117,9 +116,8 @@ 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); @@ -132,9 +130,8 @@ 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); @@ -146,9 +143,8 @@ 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); @@ -160,9 +156,8 @@ 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")); } @@ -175,9 +170,8 @@ 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); @@ -186,9 +180,8 @@ 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); } @@ -197,13 +190,12 @@ 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]"; @@ -213,9 +205,8 @@ 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/0d746fa2/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 cb5a221..0b3bc23 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,18 +16,11 @@ */ 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; @@ -46,7 +39,17 @@ import org.junit.FixMethodOrder; import org.junit.Test; import org.junit.runners.MethodSorters; -/** Zeppelin interpreter rest api tests. */ +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. + */ @FixMethodOrder(MethodSorters.NAME_ASCENDING) public class InterpreterRestApiTest extends AbstractTestRestApi { private Gson gson = new Gson(); @@ -75,12 +78,8 @@ 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(); } @@ -109,13 +108,12 @@ 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(); @@ -165,40 +163,30 @@ 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(); @@ -211,8 +199,9 @@ 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; @@ -263,9 +252,7 @@ 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 @@ -287,8 +274,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); } @@ -313,9 +300,7 @@ 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; @@ -357,10 +342,8 @@ 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/0d746fa2/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 43def61..d0253a8 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,8 +17,7 @@ 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; @@ -29,14 +28,17 @@ 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); @@ -53,35 +55,28 @@ 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/0d746fa2/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 ed66473..34b85ae 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,13 +23,10 @@ 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; @@ -37,7 +34,15 @@ import org.junit.FixMethodOrder; import org.junit.Test; import org.junit.runners.MethodSorters; -/** NotebookRepo rest api test. */ +import java.io.IOException; +import java.util.List; +import java.util.Map; + +import org.apache.zeppelin.user.AuthenticationInfo; + +/** + * NotebookRepo rest api test. + */ @FixMethodOrder(MethodSorters.NAME_ASCENDING) public class NotebookRepoRestApiTest extends AbstractTestRestApi { Gson gson = new Gson(); @@ -52,28 +57,27 @@ 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(); @@ -85,9 +89,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(); @@ -97,10 +101,8 @@ 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; } @@ -111,35 +113,26 @@ 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); } }
