Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * The contents of this file are subject to the terms 
   * of the Common Development and Distribution License 
   * (the "License").  You may not use this file except 
   * in compliance with the License.
   * 
   * You can obtain a copy of the license at 
   * glassfish/bootstrap/legal/CDDLv1.0.txt or 
   * https://glassfish.dev.java.net/public/CDDLv1.0.html. 
  * See the License for the specific language governing 
  * permissions and limitations under the License.
  * 
  * When distributing Covered Code, include this CDDL 
  * HEADER in each file and include the License file at 
  * glassfish/bootstrap/legal/CDDLv1.0.txt.  If applicable, 
  * add the following below this CDDL HEADER, with the 
  * fields enclosed by brackets "[]" replaced with your 
  * own identifying information: Portions Copyright [yyyy] 
  * [name of copyright owner]
  */
 
 /*
  *
  * Copyright 2005-2009 Sun Microsystems, Inc. All Rights Reserved.
  */
 
 
 package javax.annotation.sql;
 
Annotation used to define a container DataSource and be registered with JNDI. The DataSource may be configured by setting the annotation elements for commonly used DataSource properties. Additional standard and vendor-specific properties may be specified using the properties element.

The data source will be registered under the name specified in the name element. It may be defined to be in any valid Java EE namespace, and will determine the accessibility of the data source from other components.

A JDBC driver implementation class of the appropriate type, either DataSource, ConnectionPoolDataSource, or XADataSource, must be indicated by the className element. The availability of the driver class will be assumed at runtime.

The url property should not be specified in conjunction with other standard properties for defining the connectivity to the database. If the url property is specified along with other standard DataSource properties such as serverName and portNumber, the more specific properties will take precedence and url will be ignored.

Vendors are not required to support properties that do not normally apply to a specific data source type. For example, specifying the transactional property to be true but supplying a value for className that implements a data source class other than XADataSource may not be supported.

Vendor-specific properties may be combined with or used to override standard data source properties defined using this annotation.

DataSource properties that are specified and are not supported in a given configuration or cannot be mapped to a vendor specific configuration property may be ignored.

Examples:

   @DataSourceDefinition(name="java:global/MyApp/MyDataSource",
      className="com.foobar.MyDataSource",
      portNumber=6689,
      serverName="myserver.com",
      user="lance",
      password="secret"
   )
 
 

Using a URL:

  @DataSourceDefinition(name="java:global/MyApp/MyDataSource",
    className="org.apache.derby.jdbc.ClientDataSource",
    url="jdbc:derby://localhost:1527/myDB",
    user="lance",
    password="secret"
 )
 

An example lookup of the DataSource from an EJB:

 @Stateless
 public class MyStatelessEJB {
   @Resource(lookup="java:global/MyApp/myDataSource")
    DataSource myDB;
      ...
 }
 

Since:
Common Annotations 1.1
See also:
javax.sql.DataSource
javax.sql.XADataSource
javax.sql.ConnectionPoolDataSource
public @interface DataSourceDefinition {

    
JNDI name by which the data source will be registered.

Since:
1.1
     String name();

    
DataSource implementation class name which implements: javax.sql.DataSource or javax.sql.XADataSource or javax.sql.ConnectionPoolDataSource.

Since:
1.1
    String className();

    
Description of this data source

Since:
1.1
    String description() default "";

    
A JDBC URL. If the url property is specified along with other standard DataSource properties such as serverName and portNumber, the more specific properties will take precedence and url will be ignored.

Since:
1.1
    String url() default "";

    
User name to use for connection authentication.

Since:
1.1
    String user() default "";

    
Password to use for connection authentication.

Since:
1.1
    String password() default "";

    
Name of a database on a server.

Since:
1.1
    String databaseName() default "";

    
Port number where a server is listening for requests.

Since:
1.1
    int portNumber() default -1;

    
Database server name.

Since:
1.1
    String serverName() default "localhost";

    
Isolation level for connections. The Isolation level must be one of the following:

  • Connection.TRANSACTION_NONE,
  • Connection.TRANSACTION_READ_ UNCOMMITTED,
  • Connection.TRANSACTION_READ_COMMITTED,
  • Connection.TRANSACTION_REPEATABLE_READ,
  • Connection.TRANSACTION_SERIALIZABLE

Default is vendor-specific.

Since:
1.1
    int isolationLevel() default -1;

    
Set to false if connections should not participate in transactions.

Default is to enlist in a transaction when one is active or becomes active.

Since:
1.1
    boolean transactional() default true;

    
Number of connections that should be created when a connection pool is initialized.

Default is vendor-specific

Since:
1.1
    int initialPoolSize() default -1;

    
Maximum number of connections that should be concurrently allocated for a connection pool.

Default is vendor-specific.

Since:
1.1
    int maxPoolSize() default -1;

    
Minimum number of connections that should be allocated for a connection pool.

Default is vendor-specific.

Since:
1.1
    int minPoolSize() default -1;

    
The number of seconds that a physical connection should remain unused in the pool before the connection is closed for a connection pool.

Default is vendor-specific

Since:
1.1
    int maxIdleTime() default -1;

    
The total number of statements that a connection pool should keep open. A value of 0 indicates that the caching of statements is disabled for a connection pool.

Default is vendor-specific

Since:
1.1
    int maxStatements() default -1;
    
Used to specify Vendor specific properties and less commonly used DataSource properties such as:

  • dataSourceName
  • networkProtocol
  • propertyCycle
  • roleName

Properties are specified using the format: propertyName=propertyValue with one property per array element.

Since:
1.1
    String[] properties() default {};


    
Sets the maximum time in seconds that this data source will wait while attempting to connect to a database. A value of zero specifies that the timeout is the default system timeout if there is one; otherwise, it specifies that there is no timeout.

Default is vendor-specific.

Since:
1.1
    int loginTimeout() default 0;
New to GrepCode? Check out our FAQ X