MINI MINI MANI MO

Path : /opt/oracle/product/18c/dbhomeXE/ord/im/admin/
File Upload :
Current File : //opt/oracle/product/18c/dbhomeXE/ord/im/admin/imchkjav.sql

Rem
Rem $Header: ordim/admin/imchkjav.sql /main/5 2016/02/22 11:28:15 smavris Exp $
Rem
Rem imchkjav.sql
Rem
Rem Copyright (c) 2007, 2016, Oracle and/or its affiliates. 
Rem All rights reserved.
Rem
Rem    NAME
Rem      imchkjav.sql - Multimedia CHecK JAVa script
Rem
Rem    DESCRIPTION
Rem      This script checks the status Oracle Multimedia 
Rem      libraries.
Rem
Rem    NOTES
Rem      This script is invoked by imchk.sql
Rem
Rem    MODIFIED   (MM/DD/YY)
Rem    smavris     11/30/15 - Run pl/sql package as definers
Rem    smavris     03/26/13 - XbranchMerge smavris_bug-16473669 from
Rem                           st_ordim_12.1.0
Rem    smavris     03/15/13 - Common start and end scripts
Rem    rabbott     01/17/08 - rewrite check for native library
Rem    dolin       10/17/07 - Created
Rem
Rem    BEGIN SQL_FILE_METADATA 
Rem    SQL_SOURCE_FILE: ordim/admin/imchkjav.sql 
Rem    SQL_SHIPPED_FILE: ord/im/admin/imchkjav.sql
Rem    SQL_PHASE: 
Rem    SQL_STARTUP_MODE: NORMAL
Rem    SQL_IGNORABLE_ERRORS: NONE 
Rem    SQL_CALLING_FILE: $SRCHOME/ordim/admin/imchk.sql
Rem    END SQL_FILE_METADATA

@@?/rdbms/admin/sqlsessstart.sql

alter session set current_schema = "ORDSYS";

create or replace and resolve noforce java source named ORDSYS."imchkjav" as
import java.awt.color.ColorSpace;
import java.awt.color.ICC_Profile;
import java.awt.image.IndexColorModel;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import javax.media.jai.JAI;
import javax.media.jai.OperationRegistry;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import sun.awt.image.codec.JPEGImageDecoderImpl;
import oracle.ord.media.img.Operations;
public class imchkjav {
  /**
   * Retrieves a Java system property, e.g. java.version.
   */
  public static String getJavaProperty(String propName) {
    if (propName == null || propName.length() == 0) {
      return "Error: null or empty property name specified.";
    }
    try {
      String prop = System.getProperty(propName);
      if (prop != null)
        return propName + " = " + prop;
      else
        return "Error: no System property '" + propName + "'";
    } catch (Exception e) {
      return "Error: " + e.getMessage();
    }
  }

  /**
   * Runs basic tests on the AWT subsystem of the Java VM
   */
  public static String checkAWT() {
    boolean failure = false;
    String result = "";  
    try {
      // Check the presence of the "awt" system library
      // This lib gets loaded as class init for ColorModel,
      // which is an abstract parent of IndexColorModel.
      byte[] arr = new byte[]{(byte)0, (byte)255};
      IndexColorModel icm = new IndexColorModel(8,2,arr,arr,arr);

    } catch (Throwable t1) {
      result += ("Failure creating IndexColorModel instance\n");
      result += ("This may indicate a missing native AWT lib.\n");
      t1.printStackTrace(System.out);
      failure = true;
    }

    try {
      // Check the presence of the "awt" system library
      // This lib gets loaded as class init for ColorModel,
      // which is an abstract parent of IndexColorModel.
      BufferedImage img =
        new BufferedImage(1,1,BufferedImage.TYPE_BYTE_GRAY);

    } catch (Throwable t2) {
      result += ("Failure creating BufferedImage instance\n");
      result += ("This may indicate a missing native AWT lib.\n");
      t2.printStackTrace(System.out);
      failure = true;
    }

    try {
      // Check that ICC_Profiles work
      ICC_Profile theProfile =
        ICC_Profile.getInstance(ColorSpace.CS_GRAY);
      if (theProfile == null)
        throw new Exception("Couldn't load GRAY colorspace");

      ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_sRGB);
      if (5 != cs.getType())
        throw new Exception("Got wrong type from ColorSpace");

    } catch (Throwable t3) {
      result += ("Failure creating ColorSpace instance\n");
      result += ("This may indicate a missing ICC profiles.\n");
      t3.printStackTrace(System.out);
      failure = true;
    }

    if (failure == false) {
      result += ("AWT check ran without error.");
    }
    return result;
  }

  /* Checks if JDK JPEG encoding/decoding works. */
  public static void checkJPEG() {
    // this is a simple 1x1 jpeg image (a nice lime green)
    byte[] data = new byte[] {
      (byte)0xff, (byte)0xd8, (byte)0xff, (byte)0xe0, 
      (byte)0x00, (byte)0x10, (byte)0x4a, (byte)0x46, 
      (byte)0x49, (byte)0x46, (byte)0x00, (byte)0x01, 
      (byte)0x01, (byte)0x01, (byte)0x00, (byte)0x60, 
      (byte)0x00, (byte)0x60, (byte)0x00, (byte)0x00, 
      (byte)0xff, (byte)0xdb, (byte)0x00, (byte)0x43, 
      (byte)0x00, (byte)0x08, (byte)0x06, (byte)0x06, 
      (byte)0x07, (byte)0x06, (byte)0x05, (byte)0x08, 
      (byte)0x07, (byte)0x07, (byte)0x07, (byte)0x09, 
      (byte)0x09, (byte)0x08, (byte)0x0a, (byte)0x0c, 
      (byte)0x14, (byte)0x0d, (byte)0x0c, (byte)0x0b, 
      (byte)0x0b, (byte)0x0c, (byte)0x19, (byte)0x12, 
      (byte)0x13, (byte)0x0f, (byte)0x14, (byte)0x1d, 
      (byte)0x1a, (byte)0x1f, (byte)0x1e, (byte)0x1d, 
      (byte)0x1a, (byte)0x1c, (byte)0x1c, (byte)0x20, 
      (byte)0x24, (byte)0x2e, (byte)0x27, (byte)0x20, 
      (byte)0x22, (byte)0x2c, (byte)0x23, (byte)0x1c, 
      (byte)0x1c, (byte)0x28, (byte)0x37, (byte)0x29, 
      (byte)0x2c, (byte)0x30, (byte)0x31, (byte)0x34, 
      (byte)0x34, (byte)0x34, (byte)0x1f, (byte)0x27, 
      (byte)0x39, (byte)0x3d, (byte)0x38, (byte)0x32, 
      (byte)0x3c, (byte)0x2e, (byte)0x33, (byte)0x34, 
      (byte)0x32, (byte)0xff, (byte)0xdb, (byte)0x00, 
      (byte)0x43, (byte)0x01, (byte)0x09, (byte)0x09, 
      (byte)0x09, (byte)0x0c, (byte)0x0b, (byte)0x0c, 
      (byte)0x18, (byte)0x0d, (byte)0x0d, (byte)0x18, 
      (byte)0x32, (byte)0x21, (byte)0x1c, (byte)0x21, 
      (byte)0x32, (byte)0x32, (byte)0x32, (byte)0x32, 
      (byte)0x32, (byte)0x32, (byte)0x32, (byte)0x32, 
      (byte)0x32, (byte)0x32, (byte)0x32, (byte)0x32, 
      (byte)0x32, (byte)0x32, (byte)0x32, (byte)0x32, 
      (byte)0x32, (byte)0x32, (byte)0x32, (byte)0x32, 
      (byte)0x32, (byte)0x32, (byte)0x32, (byte)0x32, 
      (byte)0x32, (byte)0x32, (byte)0x32, (byte)0x32, 
      (byte)0x32, (byte)0x32, (byte)0x32, (byte)0x32, 
      (byte)0x32, (byte)0x32, (byte)0x32, (byte)0x32, 
      (byte)0x32, (byte)0x32, (byte)0x32, (byte)0x32, 
      (byte)0x32, (byte)0x32, (byte)0x32, (byte)0x32, 
      (byte)0x32, (byte)0x32, (byte)0x32, (byte)0x32, 
      (byte)0x32, (byte)0x32, (byte)0xff, (byte)0xc0, 
      (byte)0x00, (byte)0x11, (byte)0x08, (byte)0x00, 
      (byte)0x01, (byte)0x00, (byte)0x01, (byte)0x03, 
      (byte)0x01, (byte)0x22, (byte)0x00, (byte)0x02, 
      (byte)0x11, (byte)0x01, (byte)0x03, (byte)0x11, 
      (byte)0x01, (byte)0xff, (byte)0xc4, (byte)0x00, 
      (byte)0x1f, (byte)0x00, (byte)0x00, (byte)0x01, 
      (byte)0x05, (byte)0x01, (byte)0x01, (byte)0x01, 
      (byte)0x01, (byte)0x01, (byte)0x01, (byte)0x00, 
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, 
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x01, 
      (byte)0x02, (byte)0x03, (byte)0x04, (byte)0x05, 
      (byte)0x06, (byte)0x07, (byte)0x08, (byte)0x09, 
      (byte)0x0a, (byte)0x0b, (byte)0xff, (byte)0xc4, 
      (byte)0x00, (byte)0xb5, (byte)0x10, (byte)0x00, 
      (byte)0x02, (byte)0x01, (byte)0x03, (byte)0x03, 
      (byte)0x02, (byte)0x04, (byte)0x03, (byte)0x05, 
      (byte)0x05, (byte)0x04, (byte)0x04, (byte)0x00, 
      (byte)0x00, (byte)0x01, (byte)0x7d, (byte)0x01, 
      (byte)0x02, (byte)0x03, (byte)0x00, (byte)0x04, 
      (byte)0x11, (byte)0x05, (byte)0x12, (byte)0x21, 
      (byte)0x31, (byte)0x41, (byte)0x06, (byte)0x13, 
      (byte)0x51, (byte)0x61, (byte)0x07, (byte)0x22, 
      (byte)0x71, (byte)0x14, (byte)0x32, (byte)0x81, 
      (byte)0x91, (byte)0xa1, (byte)0x08, (byte)0x23, 
      (byte)0x42, (byte)0xb1, (byte)0xc1, (byte)0x15, 
      (byte)0x52, (byte)0xd1, (byte)0xf0, (byte)0x24, 
      (byte)0x33, (byte)0x62, (byte)0x72, (byte)0x82, 
      (byte)0x09, (byte)0x0a, (byte)0x16, (byte)0x17, 
      (byte)0x18, (byte)0x19, (byte)0x1a, (byte)0x25, 
      (byte)0x26, (byte)0x27, (byte)0x28, (byte)0x29, 
      (byte)0x2a, (byte)0x34, (byte)0x35, (byte)0x36, 
      (byte)0x37, (byte)0x38, (byte)0x39, (byte)0x3a, 
      (byte)0x43, (byte)0x44, (byte)0x45, (byte)0x46, 
      (byte)0x47, (byte)0x48, (byte)0x49, (byte)0x4a, 
      (byte)0x53, (byte)0x54, (byte)0x55, (byte)0x56, 
      (byte)0x57, (byte)0x58, (byte)0x59, (byte)0x5a, 
      (byte)0x63, (byte)0x64, (byte)0x65, (byte)0x66, 
      (byte)0x67, (byte)0x68, (byte)0x69, (byte)0x6a, 
      (byte)0x73, (byte)0x74, (byte)0x75, (byte)0x76, 
      (byte)0x77, (byte)0x78, (byte)0x79, (byte)0x7a, 
      (byte)0x83, (byte)0x84, (byte)0x85, (byte)0x86, 
      (byte)0x87, (byte)0x88, (byte)0x89, (byte)0x8a, 
      (byte)0x92, (byte)0x93, (byte)0x94, (byte)0x95, 
      (byte)0x96, (byte)0x97, (byte)0x98, (byte)0x99, 
      (byte)0x9a, (byte)0xa2, (byte)0xa3, (byte)0xa4, 
      (byte)0xa5, (byte)0xa6, (byte)0xa7, (byte)0xa8, 
      (byte)0xa9, (byte)0xaa, (byte)0xb2, (byte)0xb3, 
      (byte)0xb4, (byte)0xb5, (byte)0xb6, (byte)0xb7, 
      (byte)0xb8, (byte)0xb9, (byte)0xba, (byte)0xc2, 
      (byte)0xc3, (byte)0xc4, (byte)0xc5, (byte)0xc6, 
      (byte)0xc7, (byte)0xc8, (byte)0xc9, (byte)0xca, 
      (byte)0xd2, (byte)0xd3, (byte)0xd4, (byte)0xd5, 
      (byte)0xd6, (byte)0xd7, (byte)0xd8, (byte)0xd9, 
      (byte)0xda, (byte)0xe1, (byte)0xe2, (byte)0xe3, 
      (byte)0xe4, (byte)0xe5, (byte)0xe6, (byte)0xe7, 
      (byte)0xe8, (byte)0xe9, (byte)0xea, (byte)0xf1, 
      (byte)0xf2, (byte)0xf3, (byte)0xf4, (byte)0xf5, 
      (byte)0xf6, (byte)0xf7, (byte)0xf8, (byte)0xf9, 
      (byte)0xfa, (byte)0xff, (byte)0xc4, (byte)0x00, 
      (byte)0x1f, (byte)0x01, (byte)0x00, (byte)0x03, 
      (byte)0x01, (byte)0x01, (byte)0x01, (byte)0x01, 
      (byte)0x01, (byte)0x01, (byte)0x01, (byte)0x01, 
      (byte)0x01, (byte)0x00, (byte)0x00, (byte)0x00, 
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x01, 
      (byte)0x02, (byte)0x03, (byte)0x04, (byte)0x05, 
      (byte)0x06, (byte)0x07, (byte)0x08, (byte)0x09, 
      (byte)0x0a, (byte)0x0b, (byte)0xff, (byte)0xc4, 
      (byte)0x00, (byte)0xb5, (byte)0x11, (byte)0x00, 
      (byte)0x02, (byte)0x01, (byte)0x02, (byte)0x04, 
      (byte)0x04, (byte)0x03, (byte)0x04, (byte)0x07, 
      (byte)0x05, (byte)0x04, (byte)0x04, (byte)0x00, 
      (byte)0x01, (byte)0x02, (byte)0x77, (byte)0x00, 
      (byte)0x01, (byte)0x02, (byte)0x03, (byte)0x11, 
      (byte)0x04, (byte)0x05, (byte)0x21, (byte)0x31, 
      (byte)0x06, (byte)0x12, (byte)0x41, (byte)0x51, 
      (byte)0x07, (byte)0x61, (byte)0x71, (byte)0x13, 
      (byte)0x22, (byte)0x32, (byte)0x81, (byte)0x08, 
      (byte)0x14, (byte)0x42, (byte)0x91, (byte)0xa1, 
      (byte)0xb1, (byte)0xc1, (byte)0x09, (byte)0x23, 
      (byte)0x33, (byte)0x52, (byte)0xf0, (byte)0x15, 
      (byte)0x62, (byte)0x72, (byte)0xd1, (byte)0x0a, 
      (byte)0x16, (byte)0x24, (byte)0x34, (byte)0xe1, 
      (byte)0x25, (byte)0xf1, (byte)0x17, (byte)0x18, 
      (byte)0x19, (byte)0x1a, (byte)0x26, (byte)0x27, 
      (byte)0x28, (byte)0x29, (byte)0x2a, (byte)0x35, 
      (byte)0x36, (byte)0x37, (byte)0x38, (byte)0x39, 
      (byte)0x3a, (byte)0x43, (byte)0x44, (byte)0x45, 
      (byte)0x46, (byte)0x47, (byte)0x48, (byte)0x49, 
      (byte)0x4a, (byte)0x53, (byte)0x54, (byte)0x55, 
      (byte)0x56, (byte)0x57, (byte)0x58, (byte)0x59, 
      (byte)0x5a, (byte)0x63, (byte)0x64, (byte)0x65, 
      (byte)0x66, (byte)0x67, (byte)0x68, (byte)0x69, 
      (byte)0x6a, (byte)0x73, (byte)0x74, (byte)0x75, 
      (byte)0x76, (byte)0x77, (byte)0x78, (byte)0x79, 
      (byte)0x7a, (byte)0x82, (byte)0x83, (byte)0x84, 
      (byte)0x85, (byte)0x86, (byte)0x87, (byte)0x88, 
      (byte)0x89, (byte)0x8a, (byte)0x92, (byte)0x93, 
      (byte)0x94, (byte)0x95, (byte)0x96, (byte)0x97, 
      (byte)0x98, (byte)0x99, (byte)0x9a, (byte)0xa2, 
      (byte)0xa3, (byte)0xa4, (byte)0xa5, (byte)0xa6, 
      (byte)0xa7, (byte)0xa8, (byte)0xa9, (byte)0xaa, 
      (byte)0xb2, (byte)0xb3, (byte)0xb4, (byte)0xb5, 
      (byte)0xb6, (byte)0xb7, (byte)0xb8, (byte)0xb9, 
      (byte)0xba, (byte)0xc2, (byte)0xc3, (byte)0xc4, 
      (byte)0xc5, (byte)0xc6, (byte)0xc7, (byte)0xc8, 
      (byte)0xc9, (byte)0xca, (byte)0xd2, (byte)0xd3, 
      (byte)0xd4, (byte)0xd5, (byte)0xd6, (byte)0xd7, 
      (byte)0xd8, (byte)0xd9, (byte)0xda, (byte)0xe2, 
      (byte)0xe3, (byte)0xe4, (byte)0xe5, (byte)0xe6, 
      (byte)0xe7, (byte)0xe8, (byte)0xe9, (byte)0xea, 
      (byte)0xf2, (byte)0xf3, (byte)0xf4, (byte)0xf5, 
      (byte)0xf6, (byte)0xf7, (byte)0xf8, (byte)0xf9, 
      (byte)0xfa, (byte)0xff, (byte)0xda, (byte)0x00, 
      (byte)0x0c, (byte)0x03, (byte)0x01, (byte)0x00, 
      (byte)0x02, (byte)0x11, (byte)0x03, (byte)0x11, 
      (byte)0x00, (byte)0x3f, (byte)0x00, (byte)0xd6, 
      (byte)0xa2, (byte)0x8a, (byte)0x2b, (byte)0xf3, 
      (byte)0x43, (byte)0xf2, (byte)0x03, (byte)0xff, 
      (byte)0xd9};

      // try and decode this image with the decoder
      ByteArrayInputStream jpegStream = new ByteArrayInputStream(data);
      JPEGImageDecoderImpl decoder = new JPEGImageDecoderImpl(jpegStream);
      BufferedImage img = decoder.decodeAsBufferedImage();
      System.out.println("JPEG Data length is " + data.length);
      System.out.println("JPEG Image is " + 
          img.getWidth() + "x" + 
          img.getHeight());
      System.out.println("JPEG Color (R,G,B) is (" +
          img.getData().getSample(0,0,0) + "," +
          img.getData().getSample(0,0,1) + "," +
          img.getData().getSample(0,0,2) + ")");


      // now, try encoding the image
      ByteArrayOutputStream baos = new ByteArrayOutputStream();
      JPEGImageEncoder encoder =
        JPEGCodec.createJPEGEncoder(baos);
      try {
        encoder.encode(img);
        System.out.println("JPEG Image Encoding was fine");
        byte[] arr = baos.toByteArray();
        System.out.println("JPEG Encoded Image length: " + arr.length);
      } catch (IOException e) {
        e.printStackTrace();
      }
  }

  /* Checks if native library can be loaded. */
  public static void checkNativeLib() {
    try {
      Operations.registerOps(false);

      OperationRegistry registry = JAI.getDefaultInstance().getOperationRegistry();
      String factory = registry.getFactory("rendered", "scale").getClass().getName();
      if( "oracle.ord.media.jai.ops.OracleScaleDescriptor".equals(factory) )
      {
        System.out.println("Successfully loaded ordim native lib -- " + 
            "JNI callouts should be enabled");
      }
      else
      {
        System.out.println("ERROR loading ordim native lib " +
           "wrong factory for Oracle scaling: " + factory );
      }
    } catch (Throwable t) {
      System.out.println("ERROR loading ordim native lib");
      t.printStackTrace();
    }
  }
}
/
show errors;


create or replace package ordsys.imchkjav
authid definer
is

  -- =========================================================
  -- Define the helper Java stored procedure used to
  -- fetch properties.
  --
  function fetchProp(name   IN   VARCHAR2) 
  return VARCHAR2
  as LANGUAGE JAVA
  name 'imchkjav.getJavaProperty
       (java.lang.String) return java.lang.String';

  -- =========================================================
  -- Check the awt javavm subsystem. 
  --
  function checkAWT
  RETURN VARCHAR2
  as LANGUAGE JAVA
  name 'imchkjav.checkAWT() return java.lang.String';

  -- =========================================================
  -- Check the JDK JPEG encoder and decoder subsystem.
  --
  procedure checkJPEG as
  language java
  name 'imchkjav.checkJPEG()';

  -- =========================================================
  -- Verify that native library can be loaded
  --
  procedure checkNativeLib as
  language java
  name 'imchkjav.checkNativeLib()';
end;
/
show errors;

begin
  -- redirect System.out to the server log
  dbms_java.set_output(5000);

  -- print out the java version to the log
  dbms_output.put_line(imchkjav.fetchProp('java.version'));

  -- check that the awt subsystem is ok
  dbms_output.put_line(imchkjav.checkAWT());

  -- check that simple jpeg encoding/decoding works ok
  imchkjav.checkJPEG();

  -- check that we can load the native library for native scaling
  imchkjav.checkNativeLib();

end;
/

REM Clean up created package and JAVA source/class
drop package ordsys.imchkjav;
drop java source ordsys."imchkjav";

alter session set current_schema = "SYS";

@?/rdbms/admin/sqlsessend.sql

OHA YOOOO