
com.appslandia.plum.defaults.DefaultDebugController Maven / Gradle / Ivy
// The MIT License (MIT)
// Copyright © 2015 AppsLandia. All rights reserved.
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package com.appslandia.plum.defaults;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.nio.charset.StandardCharsets;
import java.util.TreeSet;
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.BeanManager;
import javax.inject.Inject;
import javax.servlet.FilterRegistration;
import javax.servlet.ServletRegistration;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.appslandia.common.base.DeployEnv;
import com.appslandia.common.base.TextBuilder;
import com.appslandia.common.base.ToStringBuilder;
import com.appslandia.common.cdi.AnyLiteral;
import com.appslandia.common.utils.CollectionUtils;
import com.appslandia.common.utils.MimeTypes;
import com.appslandia.plum.base.ActionResult;
import com.appslandia.plum.base.AppConfig;
import com.appslandia.plum.base.Controller;
import com.appslandia.plum.base.HttpGet;
import com.appslandia.plum.results.TextResult;
/**
*
* @author Loc Ha
*
*/
@ApplicationScoped
@Controller("debug")
public class DefaultDebugController {
@Inject
protected BeanManager beanManager;
@Inject
protected AppConfig appConfig;
@HttpGet
public ActionResult deployEnv() {
return new TextResult(DeployEnv.getCurrent().getName(), MimeTypes.TEXT_PLAIN);
}
@HttpGet
public ActionResult isEnableDebug() {
return new TextResult(Boolean.toString(this.appConfig.isEnableDebug()), MimeTypes.TEXT_PLAIN);
}
@HttpGet
public ActionResult beanInfo() {
TextBuilder sb = new TextBuilder();
TreeSet> sortedBeans = new TreeSet<>((b1, b2) -> b1.getBeanClass().getName().compareTo(b2.getBeanClass().getName()));
sortedBeans.addAll(this.beanManager.getBeans(Object.class, AnyLiteral.IMPL));
for (Bean> bean : sortedBeans) {
sb.append(bean.getBeanClass()).append(", scope=").append(bean.getScope().getSimpleName()).append(", qualifiers=")
.append(CollectionUtils.toElements(bean.getQualifiers()));
sb.appendln();
}
return new TextResult(sb.toString(), MimeTypes.TEXT_PLAIN);
}
@HttpGet
public void servletInfo(HttpServletRequest request, HttpServletResponse response) throws Exception {
response.setContentType(MimeTypes.TEXT_PLAIN);
response.setCharacterEncoding(StandardCharsets.UTF_8.name());
PrintWriter out = response.getWriter();
for (ServletRegistration registration : request.getServletContext().getServletRegistrations().values()) {
out.append("servletName=").append(registration.getName()).append(", servletClass=").append(registration.getClassName()).append(", urlPatterns=")
.append(CollectionUtils.toElements(registration.getMappings()));
out.println();
}
out.println();
for (FilterRegistration registration : request.getServletContext().getFilterRegistrations().values()) {
out.append("filterName=").append(registration.getName()).append(", filterClass=").append(registration.getClassName()).append(", urlPatterns=")
.append(CollectionUtils.toElements(registration.getUrlPatternMappings())).append(", servletNames=")
.append(CollectionUtils.toElements(registration.getServletNameMappings()));
out.println();
}
out.flush();
}
@HttpGet
public void hostInfo(HttpServletRequest request, HttpServletResponse response) throws Exception {
response.setContentType(MimeTypes.TEXT_PLAIN);
response.setCharacterEncoding(StandardCharsets.UTF_8.name());
PrintWriter out = response.getWriter();
try {
out.append("InetAddress.getLocalHost(): ").append(InetAddress.getLocalHost().toString());
out.println();
} catch (Exception ex) {
out.append("InetAddress.getLocalHost(): ").append(ex.getMessage());
out.println();
}
out.println();
out.append("request.getServerName(): ").append(request.getServerName());
out.println();
out.append("request.getServerPort(): ").append(String.valueOf(request.getServerPort()));
out.println();
out.append("request.getLocalName(): ").append(request.getLocalName());
out.println();
out.append("request.getLocalPort(): ").append(String.valueOf(request.getLocalPort()));
out.println();
out.append("request.getRemoteHost(): ").append(request.getRemoteHost());
out.println();
out.append("request.getRemotePort(): ").append(String.valueOf(request.getRemotePort()));
out.println();
out.append("request.getRemoteAddr(): ").append(request.getRemoteAddr());
out.println();
out.println();
out.append("request.getHeaders(): ").append(new ToStringBuilder().toStringHeaders(request));
out.flush();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy