| /******************************************************************************* |
| * Copyright (c) 2009 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| |
| package org.eclipse.ua.tests.help.remote; |
| |
| import java.io.IOException; |
| |
| import javax.servlet.ServletException; |
| import javax.servlet.http.HttpServletRequest; |
| import javax.servlet.http.HttpServletResponse; |
| import javax.xml.transform.TransformerException; |
| |
| import org.eclipse.help.internal.index.Index; |
| import org.eclipse.help.internal.index.IndexContribution; |
| import org.eclipse.help.internal.webapp.data.UrlUtil; |
| import org.eclipse.help.internal.webapp.servlet.IndexServlet; |
| import org.eclipse.ua.tests.help.other.UserIndex; |
| import org.eclipse.ua.tests.help.other.UserIndexEntry; |
| import org.eclipse.ua.tests.help.other.UserTopic; |
| |
| public class MockIndexServlet extends IndexServlet { |
| |
| private static final long serialVersionUID = -930969620357059313L; |
| |
| @Override |
| protected void doGet(HttpServletRequest req, HttpServletResponse resp) |
| throws ServletException, IOException { |
| String locale = UrlUtil.getLocale(req, resp); |
| String response; |
| req.setCharacterEncoding("UTF-8"); //$NON-NLS-1$ |
| resp.setContentType("application/xml; charset=UTF-8"); //$NON-NLS-1$ |
| |
| IndexContribution[] contributions = getIndex(req, locale); |
| try { |
| response = serialize(contributions, locale); |
| } catch (TransformerException e) { |
| throw new ServletException(e); |
| } |
| resp.getWriter().write(response); |
| } |
| |
| private IndexContribution[] getIndex(HttpServletRequest req, String locale) { |
| int port = req.getLocalPort(); |
| UserIndex index = new UserIndex(true); |
| UserIndexEntry entry1 = new UserIndexEntry("entry1_" + locale, false); |
| UserTopic topic1 = new UserTopic("topic1_", "href.html", false); |
| index.addEntry(entry1); |
| entry1.addTopic(topic1); |
| UserIndexEntry entry2 = new UserIndexEntry("entry2_" + locale, false); |
| UserTopic topic2 = new UserTopic("topic2_" + port, "href" + port + ".html", false); |
| index.addEntry(entry2); |
| entry2.addTopic(topic2); |
| IndexContribution contribution = new IndexContribution(); |
| contribution.setId("mock.index"); |
| contribution.setIndex(new Index(index)); |
| contribution.setLocale(locale); |
| return new IndexContribution[] { contribution }; |
| } |
| |
| } |
| |
| |