X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=dist%2Fhibernate-maven-plugin-2.0.0%2Fxref%2Fde%2Fjuplo%2Fplugins%2Fhibernate%2FSimpleConnectionProvider.html;fp=dist%2Fhibernate-maven-plugin-2.0.0%2Fxref%2Fde%2Fjuplo%2Fplugins%2Fhibernate%2FSimpleConnectionProvider.html;h=a2553db56a78acd25d977fbdfb394f1b88658cab;hb=a53595184bd6e57bdc45292cc92c393c4e2dfe6e;hp=0000000000000000000000000000000000000000;hpb=c48c9ee0e9faa89a4c0a5323b367b9f5a6abe602;p=website diff --git a/dist/hibernate-maven-plugin-2.0.0/xref/de/juplo/plugins/hibernate/SimpleConnectionProvider.html b/dist/hibernate-maven-plugin-2.0.0/xref/de/juplo/plugins/hibernate/SimpleConnectionProvider.html new file mode 100644 index 00000000..a2553db5 --- /dev/null +++ b/dist/hibernate-maven-plugin-2.0.0/xref/de/juplo/plugins/hibernate/SimpleConnectionProvider.html @@ -0,0 +1,262 @@ + + + +SimpleConnectionProvider xref + + + +
View Javadoc
+1   package de.juplo.plugins.hibernate;
+2   
+3   import java.sql.Connection;
+4   import java.sql.Driver;
+5   import java.sql.DriverManager;
+6   import java.sql.DriverPropertyInfo;
+7   import java.sql.SQLException;
+8   import java.sql.SQLFeatureNotSupportedException;
+9   import java.util.Properties;
+10  import java.util.logging.Logger;
+11  import org.apache.maven.plugin.MojoFailureException;
+12  import org.apache.maven.plugin.logging.Log;
+13  import static org.eclipse.aether.repository.AuthenticationContext.PASSWORD;
+14  import static org.eclipse.aether.repository.AuthenticationContext.USERNAME;
+15  import org.hibernate.boot.registry.classloading.spi.ClassLoaderService;
+16  import static org.hibernate.cfg.AvailableSettings.DRIVER;
+17  import static org.hibernate.cfg.AvailableSettings.PASS;
+18  import static org.hibernate.cfg.AvailableSettings.URL;
+19  import static org.hibernate.cfg.AvailableSettings.USER;
+20  import org.hibernate.engine.jdbc.connections.spi.ConnectionProvider;
+21  import static org.hibernate.jpa.AvailableSettings.JDBC_DRIVER;
+22  import static org.hibernate.jpa.AvailableSettings.JDBC_PASSWORD;
+23  import static org.hibernate.jpa.AvailableSettings.JDBC_URL;
+24  import static org.hibernate.jpa.AvailableSettings.JDBC_USER;
+25  
+26  /**
+27   *
+28   * @author Kai Moritz
+29   */
+30  class SimpleConnectionProvider implements ConnectionProvider
+31  {
+32    private final Log log;
+33  
+34    private Connection connection;
+35  
+36  
+37    SimpleConnectionProvider(Log log)
+38    {
+39      this.log = log;
+40    }
+41  
+42  
+43    void open(ClassLoaderService classLoaderService, Properties properties)
+44        throws
+45          MojoFailureException
+46    {
+47  
+48      String driver = (String)
+49          (properties.containsKey(DRIVER)
+50              ? properties.getProperty(DRIVER)
+51              : properties.getProperty(JDBC_DRIVER)
+52              );
+53      String url = (String)
+54          (properties.containsKey(URL)
+55              ? properties.getProperty(URL)
+56              : properties.getProperty(JDBC_URL)
+57              );
+58      String user = (String)
+59          (properties.containsKey(USER)
+60              ? properties.getProperty(USER)
+61              : properties.getProperty(JDBC_USER)
+62              );
+63      String password = (String)
+64          (properties.containsKey(PASS)
+65              ? properties.getProperty(PASS)
+66              : properties.getProperty(JDBC_PASSWORD)
+67              );
+68  
+69      if (driver == null || url == null || user == null)
+70      {
+71        log.info("No connection opened, because connection information is incomplete");
+72        log.info("Driver-Class: " + driver);
+73        log.info("URL: " + url);
+74        log.info("User: " + user);
+75        return;
+76      }
+77  
+78      try
+79      {
+80        Class driverClass = classLoaderService.classForName(driver);
+81  
+82        log.debug("Registering JDBC-driver " + driverClass.getName());
+83        DriverManager
+84            .registerDriver(new DriverProxy((Driver) driverClass.newInstance()));
+85  
+86        log.debug(
+87            "Opening JDBC-connection to " + properties.getProperty(URL) +
+88            " as " + properties.getProperty(USERNAME) +
+89            " with password " + properties.getProperty(PASSWORD)
+90            );
+91      
+92        connection = DriverManager.getConnection(url, user, password);
+93      }
+94      catch (Exception e)
+95      {
+96        throw new MojoFailureException("Could not open the JDBC-connection", e);
+97      }
+98    }
+99  
+100   void close()
+101   {
+102     if (connection == null)
+103       return;
+104 
+105     log.debug("Closing the JDBC-connection.");
+106     try
+107     {
+108       connection.close();
+109     }
+110     catch (SQLException e)
+111     {
+112       log.error("Error while closing the JDBC-connection: " + e.getMessage());
+113     }
+114   }
+115 
+116   @Override
+117   public Connection getConnection() throws SQLException
+118   {
+119     log.debug("Connection aquired.");
+120 
+121     if (connection == null)
+122       throw new SQLException("No connection available, because of insufficient connection information!");
+123 
+124     return connection;
+125   }
+126 
+127   @Override
+128   public void closeConnection(Connection conn) throws SQLException
+129   {
+130     log.debug("Connection released");
+131   }
+132 
+133   @Override
+134   public boolean supportsAggressiveRelease()
+135   {
+136     return false;
+137   }
+138 
+139   @Override
+140   public boolean isUnwrappableAs(Class unwrapType)
+141   {
+142     return false;
+143   }
+144 
+145   @Override
+146   public <T> T unwrap(Class<T> unwrapType)
+147   {
+148     throw new UnsupportedOperationException("Not supported.");
+149   }
+150 
+151   /**
+152    * Needed, because DriverManager won't pick up drivers, that were not
+153    * loaded by the system-classloader!
+154    * See:
+155    * http://stackoverflow.com/questions/288828/how-to-use-a-jdbc-driver-fromodifiedm-an-arbitrary-location
+156    */
+157   static final class DriverProxy implements Driver
+158   {
+159     private final Driver target;
+160 
+161     DriverProxy(Driver target)
+162     {
+163       if (target == null)
+164         throw new NullPointerException();
+165       this.target = target;
+166     }
+167 
+168     public java.sql.Driver getTarget()
+169     {
+170       return target;
+171     }
+172 
+173     @Override
+174     public boolean acceptsURL(String url) throws SQLException
+175     {
+176       return target.acceptsURL(url);
+177     }
+178 
+179     @Override
+180     public java.sql.Connection connect(
+181         String url,
+182         java.util.Properties info
+183       )
+184       throws
+185         SQLException
+186     {
+187       return target.connect(url, info);
+188     }
+189 
+190     @Override
+191     public int getMajorVersion()
+192     {
+193       return target.getMajorVersion();
+194     }
+195 
+196     @Override
+197     public int getMinorVersion()
+198     {
+199       return target.getMinorVersion();
+200     }
+201 
+202     @Override
+203     public DriverPropertyInfo[] getPropertyInfo(
+204         String url,
+205         Properties info
+206       )
+207       throws
+208         SQLException
+209     {
+210       return target.getPropertyInfo(url, info);
+211     }
+212 
+213     @Override
+214     public boolean jdbcCompliant()
+215     {
+216       return target.jdbcCompliant();
+217     }
+218 
+219     /**
+220      * This Method cannot be annotated with @Override, becaus the plugin
+221      * will not compile then under Java 1.6!
+222      */
+223     public Logger getParentLogger() throws SQLFeatureNotSupportedException
+224     {
+225       throw new SQLFeatureNotSupportedException("Not supported, for backward-compatibility with Java 1.6");
+226     }
+227 
+228     @Override
+229     public String toString()
+230     {
+231       return "Proxy: " + target;
+232     }
+233 
+234     @Override
+235     public int hashCode()
+236     {
+237       return target.hashCode();
+238     }
+239 
+240     @Override
+241     public boolean equals(Object obj)
+242     {
+243       if (!(obj instanceof DriverProxy))
+244         return false;
+245       DriverProxy other = (DriverProxy) obj;
+246       return this.target.equals(other.target);
+247     }
+248   }
+249 }
+
+
+ + +