@Test public void testSystemPropertyReplacement() { PropertyEditor editor = new ResourceArrayPropertyEditor(); System.setProperty("test.prop", "foo"); try { editor.setAsText("${test.prop}-${bar}"); Resource[] resources = (Resource[]) editor.getValue(); assertEquals("foo-${bar}", resources[0].getFilename()); } finally { System.getProperties().remove("test.prop"); } }
@Test(expected = IllegalArgumentException.class) public void testStrictSystemPropertyReplacement() { PropertyEditor editor = new ResourceArrayPropertyEditor( new PathMatchingResourcePatternResolver(), new StandardEnvironment(), false); System.setProperty("test.prop", "foo"); try { editor.setAsText("${test.prop}-${bar}"); Resource[] resources = (Resource[]) editor.getValue(); assertEquals("foo-${bar}", resources[0].getFilename()); } finally { System.getProperties().remove("test.prop"); } }
@Test public void testVanillaResource() throws Exception { PropertyEditor editor = new ResourceArrayPropertyEditor(); editor.setAsText("classpath:org/springframework/core/io/support/ResourceArrayPropertyEditor.class"); Resource[] resources = (Resource[]) editor.getValue(); assertNotNull(resources); assertTrue(resources[0].exists()); }
@Test public void testPatternResource() throws Exception { // N.B. this will sometimes fail if you use classpath: instead of classpath*:. // The result depends on the classpath - if test-classes are segregated from classes // and they come first on the classpath (like in Maven) then it breaks, if classes // comes first (like in Spring Build) then it is OK. PropertyEditor editor = new ResourceArrayPropertyEditor(); editor.setAsText("classpath*:org/springframework/core/io/support/Resource*Editor.class"); Resource[] resources = (Resource[]) editor.getValue(); assertNotNull(resources); assertTrue(resources[0].exists()); }
this.defaultEditors.put(Properties.class, new PropertiesEditor()); this.defaultEditors.put(Reader.class, new ReaderEditor()); this.defaultEditors.put(Resource[].class, new ResourceArrayPropertyEditor()); this.defaultEditors.put(TimeZone.class, new TimeZoneEditor()); this.defaultEditors.put(URI.class, new URIEditor());
this.defaultEditors.put(Properties.class, new PropertiesEditor()); this.defaultEditors.put(Reader.class, new ReaderEditor()); this.defaultEditors.put(Resource[].class, new ResourceArrayPropertyEditor()); this.defaultEditors.put(TimeZone.class, new TimeZoneEditor()); this.defaultEditors.put(URI.class, new URIEditor());
@Parameters public static List<Object[]> data() throws Exception { List<Object[]> list = new ArrayList<>(); ResourceArrayPropertyEditor editor = new ResourceArrayPropertyEditor(); editor.setAsText("classpath*:" + ClassUtils.addResourcePathToPackagePath(StepNameTests.class, "*.xml")); Resource[] resources = (Resource[]) editor.getValue(); for (Resource resource : resources) { if (resource.getFile().getName().contains("WrongSchema")) { continue; } list.add(new Object[] { resource }); } return list; }
@Before public void setUp() { ResourceArrayPropertyEditor editor = new ResourceArrayPropertyEditor(); editor.setAsText("classpath:jsrBaseContext.xml"); partitioner.setResources((Resource[]) editor.getValue()); }
new ResourceArrayPropertyEditor((ResourcePatternResolver) this.resourceLoader, this.propertyResolver));
new ResourceArrayPropertyEditor((ResourcePatternResolver) this.resourceLoader, this.propertyResolver));
this.defaultEditors.put(Pattern.class, new PatternEditor()); this.defaultEditors.put(Properties.class, new PropertiesEditor()); this.defaultEditors.put(Resource[].class, new ResourceArrayPropertyEditor()); this.defaultEditors.put(TimeZone.class, new TimeZoneEditor()); this.defaultEditors.put(URI.class, new URIEditor());
new ResourceArrayPropertyEditor((ResourcePatternResolver) this.resourceLoader, this.propertyResolver));
@Override public Set<Resource> getDeploymentResources() { final ResourceArrayPropertyEditor resolver = new ResourceArrayPropertyEditor(); try { final String[] resourcePattern = camundaBpmProperties.getDeploymentResourcePattern(); logger.debug("resolving deployment resources for pattern {}", (Object[]) resourcePattern); resolver.setValue(resourcePattern); return Arrays.stream((Resource[])resolver.getValue()) .peek(resource -> logger.debug("processing deployment resource {}", resource)) .filter(this::isFile) .peek(resource -> logger.debug("added deployment resource {}", resource)) .collect(Collectors.toSet()); } catch (final RuntimeException e) { logger.error("unable to resolve resources", e); } return EMPTY_SET; }
@Override public Set<Resource> getDeploymentResources() { final ResourceArrayPropertyEditor resolver = new ResourceArrayPropertyEditor(); try { final String[] resourcePattern = camundaBpmProperties.getDeploymentResourcePattern(); logger.debug("resolving deployment resources for pattern {}", (Object[]) resourcePattern); resolver.setValue(resourcePattern); return Arrays.stream((Resource[])resolver.getValue()) .peek(resource -> logger.debug("processing deployment resource {}", resource)) .filter(this::isFile) .peek(resource -> logger.debug("added deployment resource {}", resource)) .collect(Collectors.toSet()); } catch (final RuntimeException e) { logger.error("unable to resolve resources", e); } return EMPTY_SET; }
/** * Populate the given bean factory with the following resource editors: * ResourceEditor, URLEditor, InputStreamEditor, ResourceArrayPropertyEditor. * @param beanFactory the bean factory to populate * @param resourcePatternResolver the ResourcePatternResolver to create * editors for (usually an ApplicationContext) * @see org.springframework.core.io.ResourceEditor * @see org.springframework.beans.propertyeditors.URLEditor * @see org.springframework.beans.propertyeditors.InputStreamEditor * @see org.springframework.core.io.support.ResourceArrayPropertyEditor * @see org.springframework.context.ApplicationContext */ public static void registerResourceEditors( ConfigurableBeanFactory beanFactory, ResourcePatternResolver resourcePatternResolver) { registerResourceEditors(beanFactory, (ResourceLoader) resourcePatternResolver); beanFactory.registerCustomEditor(Resource[].class, new ResourceArrayPropertyEditor(resourcePatternResolver)); }
this.defaultEditors.put(Properties.class, new PropertiesEditor()); this.defaultEditors.put(Reader.class, new ReaderEditor()); this.defaultEditors.put(Resource[].class, new ResourceArrayPropertyEditor()); this.defaultEditors.put(TimeZone.class, new TimeZoneEditor()); this.defaultEditors.put(URI.class, new URIEditor());
this.defaultEditors.put(Locale.class, new LocaleEditor()); this.defaultEditors.put(Properties.class, new PropertiesEditor()); this.defaultEditors.put(Resource[].class, new ResourceArrayPropertyEditor()); this.defaultEditors.put(String[].class, new StringArrayPropertyEditor()); this.defaultEditors.put(URL.class, new URLEditor());
new ResourceArrayPropertyEditor((ResourcePatternResolver) this.resourceLoader, this.propertyResolver));