Changeset 426


Ignore:
Timestamp:
19-10-15 11:41:12 (4 years ago)
Author:
matthijsln
Message:

get persistence unit properties map from overridable servlet context parameters

File:
1 edited

Legend:

Unmodified
Added
Removed
  • openwion-persistence/trunk/src/nl/openwion/persistence/JpaUtilServlet.java

    r176 r426  
    2424import java.io.IOException; 
    2525import java.util.Collection; 
     26import java.util.Collections; 
    2627import java.util.HashMap; 
    2728import java.util.Iterator; 
     29import java.util.List; 
    2830import java.util.Map; 
    2931import javax.persistence.EntityManager; 
     
    5658        this.config = config; 
    5759 
     60        List initParamNames = Collections.list(config.getServletContext().getInitParameterNames()); 
     61 
    5862        String defaultPu = config.getInitParameter("default-persistence-unit"); 
    5963        if(defaultPu != null && defaultPu.trim().length() > 0) { 
     
    7276                    log.info("Initializing entity manager factory for persistence unit " + pu); 
    7377 
    74                     EntityManagerFactory emf = Persistence.createEntityManagerFactory(pu); 
     78                    Map<String,String> properties = new HashMap<String,String>(); 
     79                    String initParamStart = "emf." + pu + "."; 
     80                    for(Object initParamNameObject: initParamNames) { 
     81                        String initParamName = (String)initParamNameObject; 
     82                        if(initParamName.startsWith(initParamStart)) { 
     83                            String paramName = initParamName.substring(initParamStart.length()); 
     84                            String paramValue = config.getServletContext().getInitParameter(initParamName); 
     85                            properties.put(paramName, paramValue); 
     86                            log.info("Persistence unit parameter " + paramName + "=" + paramValue); 
     87                        } 
     88                    } 
     89 
     90                    EntityManagerFactory emf = Persistence.createEntityManagerFactory(pu, properties); 
    7591                    entityManagerFactories.put(pu, emf); 
    7692 
Note: See TracChangeset for help on using the changeset viewer.