Example usage for org.hibernate.boot.archive.internal ArchiveHelper getBytesFromInputStream

List of usage examples for org.hibernate.boot.archive.internal ArchiveHelper getBytesFromInputStream

Introduction

In this page you can find the example usage for org.hibernate.boot.archive.internal ArchiveHelper getBytesFromInputStream.

Prototype

public static byte[] getBytesFromInputStream(InputStream inputStream) throws IOException 

Source Link

Document

Extracts the bytes out of an InputStream.

Usage

From source file:org.jboss.as.jpa.hibernate5.scan.ScannerTests.java

License:Apache License

/***
 @Test public void testHttp() throws Exception {
 URL url = ArchiveHelper.getJarURLFromURLEntry(
 new URL(//from  w  w  w  .ja  v  a2 s .c  o m
 "jar:http://www.ibiblio.org/maven/hibernate/jars/hibernate-annotations-3.0beta1.jar!/META-INF/persistence.xml"
 ),
 "/META-INF/persistence.xml"
 );
 try {
 URLConnection urlConnection = url.openConnection();
 urlConnection.connect();
 }
 catch ( IOException ie ) {
 //fail silently
 return;
 }
 ArchiveDescriptor archiveDescriptor = VirtualFileSystemArchiveDescriptorFactory.INSTANCE.buildArchiveDescriptor( url );
 ScanResultCollector resultCollector = new ScanResultCollector ( new StandardScanOptions() );
 archiveDescriptor.visitArchive(
 new AbstractScannerImpl.ArchiveContextImpl(
 new PersistenceUnitDescriptorAdapter(),
 true,
 resultCollector
 )
 );
 assertEquals( 0, resultCollector.getClassDescriptorSet().size() );
 assertEquals( 0, resultCollector.getPackageDescriptorSet().size() );
 assertEquals( 0, resultCollector.getMappingFileSet().size() );
 }
        
 @Test public void testInputStreamZippedJar() throws Exception {
 File defaultPar = buildDefaultPar();
 addPackageToClasspath( defaultPar );
        
 final VirtualFile virtualFile = VFS.getChild( defaultPar.getAbsolutePath() );
 Closeable closeable = VFS.mountZip( virtualFile, virtualFile, tempFileProvider );
        
 try {
 ArchiveDescriptor archiveDescriptor = VirtualFileSystemArchiveDescriptorFactory.INSTANCE.buildArchiveDescriptor( defaultPar.toURI().toURL() );
 AbstractScannerImpl.ResultCollector resultCollector = new AbstractScannerImpl.ResultCollector( new StandardScanOptions() );
 archiveDescriptor.visitArchive(
 new AbstractScannerImpl.ArchiveContextImpl(
 new PersistenceUnitDescriptorAdapter(),
 true,
 resultCollector
 )
 );
        
 validateResults( resultCollector, ApplicationServer.class, Version.class );
 }
 finally {
 closeable.close();
 }
 }
        
 private void validateResults(AbstractScannerImpl.ResultCollector resultCollector, Class... expectedClasses) throws IOException {
 assertEquals( 3, resultCollector.getClassDescriptorSet().size() );
 for ( Class expectedClass : expectedClasses ) {
 assertTrue(
 resultCollector.getClassDescriptorSet().contains(
 new ClassDescriptorImpl( expectedClass.getName(), null )
 )
 );
 }
        
 assertEquals( 2, resultCollector.getMappingFileSet().size() );
 for ( MappingFileDescriptor mappingFileDescriptor : resultCollector.getMappingFileSet() ) {
 assertNotNull( mappingFileDescriptor.getStreamAccess() );
 final InputStream stream = mappingFileDescriptor.getStreamAccess().accessInputStream();
 assertNotNull( stream );
 stream.close();
 }
 }
        
 @Test public void testNestedJarProtocol() throws Exception {
 File defaultPar = buildDefaultPar();
 File nestedEar = buildNestedEar( defaultPar );
 addPackageToClasspath( nestedEar );
        
 final VirtualFile nestedEarVirtualFile = VFS.getChild( nestedEar.getAbsolutePath() );
 Closeable closeable = VFS.mountZip( nestedEarVirtualFile, nestedEarVirtualFile, tempFileProvider );
        
 try {
 VirtualFile parVirtualFile = nestedEarVirtualFile.getChild( "defaultpar.par" );
 Closeable closeable2 = VFS.mountZip( parVirtualFile, parVirtualFile, tempFileProvider );
 try {
 ArchiveDescriptor archiveDescriptor = VirtualFileSystemArchiveDescriptorFactory.INSTANCE.buildArchiveDescriptor( parVirtualFile.toURL() );
        
 AbstractScannerImpl.ResultCollector resultCollector = new AbstractScannerImpl.ResultCollector( new StandardScanOptions() );
 archiveDescriptor.visitArchive(
 new AbstractScannerImpl.ArchiveContextImpl(
 new PersistenceUnitDescriptorAdapter(),
 true,
 resultCollector
 )
 );
        
 validateResults( resultCollector, ApplicationServer.class, Version.class );
 }
 finally {
 closeable2.close();
 }
 }
 finally {
 closeable.close();
 }
        
 File nestedEarDir = buildNestedEarDir( defaultPar );
 final VirtualFile nestedEarDirVirtualFile = VFS.getChild( nestedEarDir.getAbsolutePath() );
        
 try {
 VirtualFile parVirtualFile = nestedEarDirVirtualFile.getChild( "defaultpar.par" );
 closeable = VFS.mountZip( parVirtualFile, parVirtualFile, tempFileProvider );
 try {
 ArchiveDescriptor archiveDescriptor = VirtualFileSystemArchiveDescriptorFactory.INSTANCE.buildArchiveDescriptor( parVirtualFile.toURL() );
 AbstractScannerImpl.ResultCollector resultCollector = new AbstractScannerImpl.ResultCollector( new StandardScanOptions() );
 archiveDescriptor.visitArchive(
 new AbstractScannerImpl.ArchiveContextImpl(
 new PersistenceUnitDescriptorAdapter(),
 true,
 resultCollector
 )
 );
        
 validateResults( resultCollector, ApplicationServer.class, Version.class );
 }
 finally {
 closeable.close();
 }
 }
 finally {
 closeable.close();
 }
 }
        
 @Test public void testJarProtocol() throws Exception {
 File war = buildWar();
 addPackageToClasspath( war );
        
 final VirtualFile warVirtualFile = VFS.getChild( war.getAbsolutePath() );
 Closeable closeable = VFS.mountZip( warVirtualFile, warVirtualFile, tempFileProvider );
        
 try {
 ArchiveDescriptor archiveDescriptor = VirtualFileSystemArchiveDescriptorFactory.INSTANCE.buildArchiveDescriptor(
 warVirtualFile.toURL()
 );
        
 AbstractScannerImpl.ResultCollector resultCollector = new AbstractScannerImpl.ResultCollector( new StandardScanOptions() );
 archiveDescriptor.visitArchive(
 new AbstractScannerImpl.ArchiveContextImpl(
 new PersistenceUnitDescriptorAdapter(),
 true,
 resultCollector
 )
 );
        
 validateResults(
 resultCollector,
 org.hibernate.jpa.test.pack.war.ApplicationServer.class,
 org.hibernate.jpa.test.pack.war.Version.class
 );
 }
 finally {
 closeable.close();
 }
 }
        
 @Test public void testZippedJar() throws Exception {
 File defaultPar = buildDefaultPar();
 addPackageToClasspath( defaultPar );
        
 final VirtualFile virtualFile = VFS.getChild( defaultPar.getAbsolutePath() );
 Closeable closeable = VFS.mountZip( virtualFile, virtualFile, tempFileProvider );
        
 try {
 ArchiveDescriptor archiveDescriptor = VirtualFileSystemArchiveDescriptorFactory.INSTANCE.buildArchiveDescriptor(
 virtualFile.toURL()
 );
        
 AbstractScannerImpl.ResultCollector resultCollector = new AbstractScannerImpl.ResultCollector( new StandardScanOptions() );
 archiveDescriptor.visitArchive(
 new AbstractScannerImpl.ArchiveContextImpl(
 new PersistenceUnitDescriptorAdapter(),
 true,
 resultCollector
 )
 );
        
 validateResults( resultCollector, ApplicationServer.class, Version.class );
 }
 finally {
 closeable.close();
 }
 }
        
 @Test public void testExplodedJar() throws Exception {
 File explodedPar = buildExplodedPar();
 addPackageToClasspath( explodedPar );
        
 String dirPath = explodedPar.getAbsolutePath();
 if ( dirPath.endsWith( "/" ) ) {
 dirPath = dirPath.substring( 0, dirPath.length() - 1 );
 }
        
 final VirtualFile virtualFile = VFS.getChild( dirPath );
        
 ArchiveDescriptor archiveDescriptor = VirtualFileSystemArchiveDescriptorFactory.INSTANCE.buildArchiveDescriptor(
 virtualFile.toURL()
 );
        
 AbstractScannerImpl.ResultCollector resultCollector = new AbstractScannerImpl.ResultCollector( new StandardScanOptions() );
 archiveDescriptor.visitArchive(
 new AbstractScannerImpl.ArchiveContextImpl(
 new PersistenceUnitDescriptorAdapter(),
 true,
 resultCollector
 )
 );
        
 assertEquals( 1, resultCollector.getClassDescriptorSet().size() );
 assertEquals( 1, resultCollector.getPackageDescriptorSet().size() );
 assertEquals( 1, resultCollector.getMappingFileSet().size() );
        
 assertTrue(
 resultCollector.getClassDescriptorSet().contains(
 new ClassDescriptorImpl( Carpet.class.getName(), null )
 )
 );
        
 for ( MappingFileDescriptor mappingFileDescriptor : resultCollector.getMappingFileSet() ) {
 assertNotNull( mappingFileDescriptor.getStreamAccess() );
 final InputStream stream = mappingFileDescriptor.getStreamAccess().accessInputStream();
 assertNotNull( stream );
 stream.close();
 }
 }
 ****************/

@Test
public void testGetBytesFromInputStream() throws Exception {
    File file = buildLargeJar();

    long start = System.currentTimeMillis();
    InputStream stream = new BufferedInputStream(new FileInputStream(file));
    int oldLength = getBytesFromInputStream(stream).length;
    stream.close();
    long oldTime = System.currentTimeMillis() - start;

    start = System.currentTimeMillis();
    stream = new BufferedInputStream(new FileInputStream(file));
    int newLength = ArchiveHelper.getBytesFromInputStream(stream).length;
    stream.close();
    long newTime = System.currentTimeMillis() - start;

    assertEquals(oldLength, newLength);
    assertTrue(oldTime > newTime);
}

From source file:org.jboss.as.jpa.hibernate5.scan.ScannerTests.java

License:Apache License

@Test
public void testGetBytesFromZeroInputStream() throws Exception {
    // Ensure that JarVisitorFactory#getBytesFromInputStream
    // can handle 0 length streams gracefully.
    URL emptyTxtUrl = getClass().getResource("/org/hibernate/jpa/test/packaging/empty.txt");
    if (emptyTxtUrl == null) {
        throw new RuntimeException("Bah!");
    }/*from   www  .jav a 2s. c o m*/
    InputStream emptyStream = new BufferedInputStream(emptyTxtUrl.openStream());
    int length = ArchiveHelper.getBytesFromInputStream(emptyStream).length;
    assertEquals(length, 0);
    emptyStream.close();
}