Advertisement
Guest User

Mybatis guice

a guest
Nov 23rd, 2010
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.13 KB | None | 0 0
  1. public abstract class CiscoUCCXModule extends AbstractModule {
  2.  
  3.     private CoreDaoService coreDaoService;
  4.  
  5.     Logger logger = LoggerFactory.getLogger(CiscoUCCXModule.class);
  6.  
  7.     public CiscoUCCXModule() {
  8.         super();
  9.     }
  10.  
  11.     protected abstract Class<? extends com.netdesign.dao.cisco.general.CiscoStatisticsMapper> getCiscoStatisticsMapper();
  12.  
  13.     protected abstract Class<? extends com.netdesign.dao.cisco.general.AgentMapper> getAgentMapper();
  14.  
  15.     protected abstract Class<? extends com.netdesign.dao.cisco.general.GeneralMapper> getGeneralMapper();
  16.  
  17.     @Override
  18.     protected void configure() {
  19.         logger.info("Starting :" + getWallboardProviderClass());
  20.  
  21.         Names.bindProperties(this.binder(), getConnectionProperties());
  22.  
  23.         Builder builder = new Builder();
  24.         builder.setDataSourceProviderType(getDataSourceProvider());
  25.  
  26.         builder.addMapperClasses(getCiscoStatisticsMapper());
  27.         builder.addMapperClasses(getAgentMapper());
  28.         builder.addMapperClasses(getGeneralMapper());
  29.         builder.addTypeHandler(AgentStatus.class, AgentStatusTypeHandler.class);
  30.  
  31.         Module myBatisModule = builder.create();
  32.  
  33.         install(myBatisModule);
  34.  
  35.         bind(GeneralMapper.class).to(getGeneralMapper());
  36.         bind(CiscoStatisticsMapper.class).to(getCiscoStatisticsMapper());
  37.         bind(AgentMapper.class).to(getAgentMapper());
  38.         bind(WallBoardDataProvider.class).to(getWallboardProviderClass());
  39.         logger.info("Started:" + getWallboardProviderClass());
  40.     }
  41.  
  42.     protected Class<? extends DataSourceProvider> getDataSourceProvider() {
  43.         return DataSourceProvider.class;
  44.     }
  45.  
  46.     protected abstract Class<? extends WallBoardDataProvider> getWallboardProviderClass();
  47.  
  48.     private Properties getConnectionProperties() {
  49.         final Properties myBatisProperties = new Properties();
  50.  
  51.         CiscoUCCXWallBoardDataProvider ciscoWallBoardDataProvider = getWallboardProvider();
  52.  
  53.         Parameter parameterPassword = getCoreDaoService().getParameter(
  54.                 ciscoWallBoardDataProvider.providerUniqueID(),
  55.                 CiscoUCCXWallBoardDataProvider.PASSWORD);
  56.         Parameter parameterUsername = getCoreDaoService().getParameter(
  57.                 ciscoWallBoardDataProvider.providerUniqueID(),
  58.                 CiscoUCCXWallBoardDataProvider.USERNAME);
  59.         Parameter parameterServerIPA = getCoreDaoService().getParameter(
  60.                 ciscoWallBoardDataProvider.providerUniqueID(),
  61.                 CiscoUCCXWallBoardDataProvider.SERVER_IP_A);
  62.  
  63.         Parameter parameterServerIPB = null;
  64.         try {
  65.             parameterServerIPB = getCoreDaoService().getParameter(
  66.                     ciscoWallBoardDataProvider.providerUniqueID(),
  67.                     CiscoUCCXWallBoardDataProvider.SERVER_IP_B);
  68.         } catch (Exception e) {
  69.             parameterServerIPB = new Parameter();
  70.             parameterServerIPB
  71.                     .setName(CiscoUCCXWallBoardDataProvider.SERVER_IP_B);
  72.             parameterServerIPB.setValue("");
  73.         }
  74.  
  75.         myBatisProperties.setProperty("mybatis.environment.id", "production");
  76.  
  77.         myBatisProperties.setProperty("mybatis.JDBC.username",
  78.                 parameterUsername.getValue());
  79.         myBatisProperties.setProperty("mybatis.JDBC.password",
  80.                 parameterPassword.getValue());
  81.         myBatisProperties.setProperty("mybatis.JDBC.autoCommit", "true");
  82.         setupURLAndServer(myBatisProperties, parameterPassword,
  83.                 parameterUsername, parameterServerIPA, parameterServerIPB);
  84.  
  85.         setupCache(CacheManager.getInstance(), ciscoWallBoardDataProvider);
  86.  
  87.         return myBatisProperties;
  88.     }
  89.  
  90.     protected abstract void setupURLAndServer(Properties myBatisProperties,
  91.             Parameter parameterPassword, Parameter parameterUsername,
  92.             Parameter parameterServerIPA, Parameter parameterServerIPB);
  93.  
  94.     protected abstract CiscoUCCXWallBoardDataProvider getWallboardProvider();
  95.  
  96.     private void setupCache(CacheManager cacheManager,
  97.             CiscoUCCXWallBoardDataProvider ciscoWallBoardDataProvider) {
  98.         ciscoWallBoardDataProvider.setCachemanager(cacheManager);
  99.         try {
  100.             Parameter parameterCache = getCoreDaoService().getParameter(
  101.                     ciscoWallBoardDataProvider.providerUniqueID(),
  102.                     CiscoUCCXWallBoardDataProvider.CACHE);
  103.             ciscoWallBoardDataProvider.setupCache(Integer
  104.                     .parseInt(parameterCache.getValue()));
  105.         } catch (NoResultException e) {
  106.             logger.debug("Could not find cache settings, running with the driver the first time?");
  107.         }
  108.     }
  109.  
  110.     @Inject
  111.     public void setCoreDaoService(CoreDaoService coreDaoService) {
  112.         this.coreDaoService = coreDaoService;
  113.     }
  114.  
  115.     public CoreDaoService getCoreDaoService() {
  116.         return coreDaoService;
  117.     }
  118.  
  119. }
  120.  
  121. public class CiscoV7Module extends CiscoUCCXModule implements
  122.         WallBoardDriverModule {
  123.  
  124.     public CiscoV7Module() {
  125.  
  126.     }
  127.  
  128.     @Override
  129.     protected Class<? extends DataSourceProvider> getDataSourceProvider() {
  130.  
  131.         return CiscoV7DataSourceProvider.class;
  132.     }
  133.  
  134.     @Override
  135.     protected Class<? extends AgentMapper> getAgentMapper() {
  136.         return com.netdesign.dao.cisco.v7.uccx.AgentMapper.class;
  137.     }
  138.  
  139.     @Override
  140.     protected Class<? extends CiscoStatisticsMapper> getCiscoStatisticsMapper() {
  141.  
  142.         return com.netdesign.dao.cisco.v7.uccx.CiscoStatisticsMapper.class;
  143.     }
  144.  
  145.     @Override
  146.     protected Class<? extends GeneralMapper> getGeneralMapper() {
  147.         return com.netdesign.dao.cisco.v7.uccx.GeneralMapper.class;
  148.     }
  149.  
  150.     protected CiscoUCCXWallBoardDataProvider getWallboardProvider() {
  151.         return new CiscoUCCX7WallBoardDataProvider();
  152.     }
  153.  
  154.     protected Class<? extends CiscoUCCXWallBoardDataProvider> getWallboardProviderClass() {
  155.         return CiscoUCCX7WallBoardDataProvider.class;
  156.     }
  157.  
  158.     @Override
  159.     protected void setupURLAndServer(Properties myBatisProperties,
  160.             Parameter parameterPassword, Parameter parameterUsername,
  161.             Parameter parameterServerIPA, Parameter parameterServerIPB) {
  162.         myBatisProperties.setProperty("mybatis.JDBC.driver",
  163.  
  164.         "com.microsoft.sqlserver.jdbc.SQLServerDriver");
  165.         myBatisProperties.setProperty("mybatis.JDBC.urlA",
  166.                 "jdbc:sqlserver://" + parameterServerIPA.getValue() + ";user="
  167.                         + parameterUsername.getValue() + ";password="
  168.                         + parameterPassword.getValue() + ";");
  169.         if (parameterServerIPB != null) {
  170.             myBatisProperties
  171.                     .setProperty("mybatis.JDBC.urlB", "jdbc:sqlserver://"
  172.                             + parameterServerIPB.getValue() + ";user="
  173.                             + parameterUsername.getValue() + ";password="
  174.                             + parameterPassword.getValue() + ";");
  175.         } else {
  176.             myBatisProperties.setProperty("mybatis.JDBC.urlB", "");
  177.         }
  178.     }
  179.  
  180. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement