コード例 #1
0
  /**
   * Detects which kind of validation to perform on the XML file identified by the supplied {@link
   * Resource}. If the file has a <code>DOCTYPE</code> definition then DTD validation is used
   * otherwise XSD validation is assumed.
   *
   * <p>Override this method if you would like to customize resolution of the {@link
   * #VALIDATION_AUTO} mode.
   */
  protected int detectValidationMode(Resource resource) {
    if (resource.isOpen()) {
      throw new BeanDefinitionStoreException(
          "Passed-in Resource ["
              + resource
              + "] contains an open stream: "
              + "cannot determine validation mode automatically. Either pass in a Resource "
              + "that is able to create fresh streams, or explicitly specify the validationMode "
              + "on your XmlBeanDefinitionReader instance.");
    }

    InputStream inputStream;
    try {
      inputStream = resource.getInputStream();
    } catch (IOException ex) {
      throw new BeanDefinitionStoreException(
          "Unable to determine validation mode for ["
              + resource
              + "]: cannot open InputStream. "
              + "Did you attempt to load directly from a SAX InputSource without specifying the "
              + "validationMode on your XmlBeanDefinitionReader instance?",
          ex);
    }

    try {
      return this.validationModeDetector.detectValidationMode(inputStream);
    } catch (IOException ex) {
      throw new BeanDefinitionStoreException(
          "Unable to determine validation mode for ["
              + resource
              + "]: an error occurred whilst reading from the InputStream.",
          ex);
    }
  }
コード例 #2
0
ファイル: ResourceTest.java プロジェクト: wangweiomg/expense
 public void testFileResource() {
   File file = new File("d:/test.txt");
   Resource resource = new FileSystemResource(file);
   if (resource.exists()) {
     dumpStream(resource);
   }
   Assert.assertEquals(false, resource.isOpen());
 }
コード例 #3
0
ファイル: ResourceTest.java プロジェクト: wangweiomg/expense
 public void testClasspathResourceByDefaultClassLoader() throws IOException {
   Resource resource = new ClassPathResource("com/iss/expense/demo/chapter4/test1.properties");
   if (resource.exists()) {
     dumpStream(resource);
   }
   System.out.println("path:--->" + resource.getFile().getAbsolutePath());
   Assert.assertEquals(false, resource.isOpen());
 }
コード例 #4
0
ファイル: ResourceTest.java プロジェクト: wangweiomg/expense
 public void testInputStreamResource() {
   ByteArrayInputStream bis = new ByteArrayInputStream("Hello World!".getBytes());
   Resource resource = new InputStreamResource(bis);
   if (resource.exists()) {
     dumpStream(resource);
   }
   Assert.assertEquals(true, resource.isOpen());
 }
コード例 #5
0
 public void displayInfo(Resource r) {
   System.out.println(r.getClass());
   try {
     System.out.println(r.getURL().getContent());
     System.out.println(r.contentLength());
     System.out.println(r.getFilename());
     System.out.println(r.isOpen());
     System.out.println(r.getInputStream().read());
     // System.out.println(r.);
   } catch (IOException e) {
     System.out.println("crazy error!");
   }
 }
コード例 #6
0
 @Override
 public boolean isOpen() {
   return delegate.isOpen();
 }