Guest User

Untitled

a guest
Oct 10th, 2018
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.42 KB | None | 0 0
  1. String configPath = [...]; // Instantiate your configuration path
  2. File file = new File(realPath);
  3. DataSourceProperties dsProp = new DataSourceProperties();
  4. Properties properties = new Properties();
  5. try {
  6. properties.load(new FileInputStream(file));
  7. } catch (IOException e) {
  8. throw new TenantNotConfiguredException(tenant); // Custom exception
  9. }
  10.  
  11. PropertiesConfigurationFactory<DataSourceProperties> pcf = new PropertiesConfigurationFactory<>(dsProp);
  12. pcf.setTargetName(DataSourceProperties.PREFIX);
  13. pcf.setProperties(properties);
  14.  
  15. try {
  16. dsProp = pcf.getObject();
  17. } catch (Exception e) {
  18. e.printStackTrace();
  19. }
  20.  
  21. return DataSourceBuilder.create()
  22. .url(dsProp.getUrl())
  23. .driverClassName(dsProp.getDriverClassName())
  24. .username(dsProp.getUsername())
  25. .password(dsProp.getPassword())
  26. .build();
  27.  
  28. @Autowired
  29. UserService service;
  30. @Autowired
  31. AppService appService;
  32. ////////working on dynamic loading of datasource
  33.  
  34. @Autowired
  35. Map<String, DataSource> dataSourcesMtApp;
  36.  
  37. public void updateDataSource(String url, String username, String password, String tenant) {
  38. try {
  39. DataSourceBuilder factory1 = DataSourceBuilder.create(MultiTenancyJpaConfiguration.class.getClassLoader()).url(url)
  40. .username(username).password(password)
  41. .driverClassName("com.mysql.jdbc.Driver");
  42. dataSourcesMtApp.put(tenant, factory1.build());
  43. System.out.println("Size:......................................................" + dataSourcesMtApp.size());
  44. } catch (Exception ex) {
  45. Logger.getLogger(AppController.class.getName()).log(Level.SEVERE, null, ex);
  46. }
  47. }
  48.  
  49. @PostMapping("/create-account")
  50. public Response createAccount(@RequestBody ConnectionParams request) {
  51. String tenant = ConnectionUtils.initializeDatabase(request.getDatabase(), request.getDbusername(), request.getDbpassword());
  52. updateDataSource("jdbc:mysql://localhost:3306/" + request.getDatabase() + "?useSSL=false", request.getDbusername(), request.getDbpassword(), tenant);
  53. TenantContextHolder.setTenantId(tenant);
  54. Users user = new Users();
  55. user.setPassword(request.getLoginpassword());
  56. user.setUsername(request.getLoginusername());
  57. user.setTenant(tenant);
  58. user = service.save(user);
  59. String response = "Account Setup Completed TenantId: " + tenant + " Username: " + user.getUsername();
  60. Response rp = new Response();
  61. rp.setResult(response);
  62. return rp;
  63. }
Add Comment
Please, Sign In to add comment