/** * Return a short name for this exporter. * Used for tracing of remote invocations. * <p>Default is the unqualified class name (without package). * Can be overridden in subclasses. * @see #getProxyForService * @see RemoteInvocationTraceInterceptor * @see org.springframework.util.ClassUtils#getShortName */ protected String getExporterName() { return ClassUtils.getShortName(getClass()); }
protected final Object getProxy() { if (this.proxy == null) { throw new IllegalStateException(ClassUtils.getShortName(getClass()) + " has not been initialized"); } return this.proxy; }
private String getEntityName(Class<?> entityClass) { String shortName = ClassUtils.getShortName(entityClass); int lastDot = shortName.lastIndexOf('.'); if (lastDot != -1) { return shortName.substring(lastDot + 1); } else { return shortName; } }
@Override public String toString() { return ClassUtils.getShortName(getClass()) + ": advice [" + this.advice + "]; interfaces " + ClassUtils.classNamesToString(this.interfaces); }
/** * Get the class name without the qualified package name. * @param clazz the class to get the short name for * @return the class name of the class without the package name */ public static String getShortName(Class<?> clazz) { return getShortName(getQualifiedName(clazz)); }
@ExceptionHandler public String handleException(IllegalStateException ex) { return "NotCalledTestExceptionResolver: " + ClassUtils.getShortName(ex.getClass()); } }
@ExceptionHandler({IllegalStateException.class, IllegalAccessException.class}) public String handleException(Exception ex) { return "SecondControllerAdvice: " + ClassUtils.getShortName(ex.getClass()); } }
@ExceptionHandler({IllegalStateException.class, IllegalAccessException.class}) public String handleException(Exception ex) { return "AnotherTestExceptionResolver: " + ClassUtils.getShortName(ex.getClass()); } }
@ExceptionHandler public String handle2(IllegalArgumentException ex) { return ClassUtils.getShortName(ex.getClass()); } }
@ExceptionHandler @ResponseBody public String handleException(IllegalArgumentException ex) { return ClassUtils.getShortName(ex.getClass()); } }
@ExceptionHandler public void handleException(Exception ex, Model model) { model.addAttribute("exceptionClassName", ClassUtils.getShortName(ex.getClass())); } }
@ExceptionHandler public void handleException(Exception ex, Writer writer) throws IOException { writer.write(ClassUtils.getShortName(ex.getClass())); } }
@MessageExceptionHandler public String handle2(IllegalArgumentException ex) { return ClassUtils.getShortName(ex.getClass()); } }
@ExceptionHandler public String handleException(Exception ex, RedirectAttributes redirectAttributes) { redirectAttributes.addFlashAttribute("exceptionClassName", ClassUtils.getShortName(ex.getClass())); return "redirect:/"; } }
@Test public void testGetShortName() { String className = ClassUtils.getShortName(getClass()); assertEquals("Class name did not match", "ClassUtilsTests", className); }
@Test public void testClasspathPathName() throws Exception { PropertyEditor pathEditor = new PathEditor(); pathEditor.setAsText("classpath:" + ClassUtils.classPackageAsResourcePath(getClass()) + "/" + ClassUtils.getShortName(getClass()) + ".class"); Object value = pathEditor.getValue(); assertTrue(value instanceof Path); Path path = (Path) value; assertTrue(path.toFile().exists()); }
@Test public void testClasspathURL() throws Exception { PropertyEditor urlEditor = new URLEditor(); urlEditor.setAsText("classpath:" + ClassUtils.classPackageAsResourcePath(getClass()) + "/" + ClassUtils.getShortName(getClass()) + ".class"); Object value = urlEditor.getValue(); assertTrue(value instanceof URL); URL url = (URL) value; assertEquals(url.toExternalForm(), urlEditor.getAsText()); assertTrue(!url.getProtocol().startsWith("classpath")); }
@Test public void naming() throws MalformedObjectNameException { JmxTestBean bean = new JmxTestBean(); IdentityNamingStrategy strategy = new IdentityNamingStrategy(); ObjectName objectName = strategy.getObjectName(bean, "null"); assertEquals("Domain is incorrect", bean.getClass().getPackage().getName(), objectName.getDomain()); assertEquals("Type property is incorrect", ClassUtils.getShortName(bean.getClass()), objectName.getKeyProperty(IdentityNamingStrategy.TYPE_KEY)); assertEquals("HashCode property is incorrect", ObjectUtils.getIdentityHexString(bean), objectName.getKeyProperty(IdentityNamingStrategy.HASH_CODE_KEY)); }
@Test public void testAddMap() throws Exception { Map<String, String> map = new HashMap<>(); map.put("one", "one-value"); map.put("two", "two-value"); ModelMap model = new ModelMap(); model.addAttribute(map); assertEquals(1, model.size()); String key = StringUtils.uncapitalize(ClassUtils.getShortName(map.getClass())); assertTrue(model.containsKey(key)); }
@Test public void getShortNameForCglibClass() { TestBean tb = new TestBean(); ProxyFactory pf = new ProxyFactory(); pf.setTarget(tb); pf.setProxyTargetClass(true); TestBean proxy = (TestBean) pf.getProxy(); String className = ClassUtils.getShortName(proxy.getClass()); assertEquals("Class name did not match", "TestBean", className); } }