Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- String configPath = [...]; // Instantiate your configuration path
- File file = new File(realPath);
- DataSourceProperties dsProp = new DataSourceProperties();
- Properties properties = new Properties();
- try {
- properties.load(new FileInputStream(file));
- } catch (IOException e) {
- throw new TenantNotConfiguredException(tenant); // Custom exception
- }
- PropertiesConfigurationFactory<DataSourceProperties> pcf = new PropertiesConfigurationFactory<>(dsProp);
- pcf.setTargetName(DataSourceProperties.PREFIX);
- pcf.setProperties(properties);
- try {
- dsProp = pcf.getObject();
- } catch (Exception e) {
- e.printStackTrace();
- }
- return DataSourceBuilder.create()
- .url(dsProp.getUrl())
- .driverClassName(dsProp.getDriverClassName())
- .username(dsProp.getUsername())
- .password(dsProp.getPassword())
- .build();
- @Autowired
- UserService service;
- @Autowired
- AppService appService;
- ////////working on dynamic loading of datasource
- @Autowired
- Map<String, DataSource> dataSourcesMtApp;
- public void updateDataSource(String url, String username, String password, String tenant) {
- try {
- DataSourceBuilder factory1 = DataSourceBuilder.create(MultiTenancyJpaConfiguration.class.getClassLoader()).url(url)
- .username(username).password(password)
- .driverClassName("com.mysql.jdbc.Driver");
- dataSourcesMtApp.put(tenant, factory1.build());
- System.out.println("Size:......................................................" + dataSourcesMtApp.size());
- } catch (Exception ex) {
- Logger.getLogger(AppController.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- @PostMapping("/create-account")
- public Response createAccount(@RequestBody ConnectionParams request) {
- String tenant = ConnectionUtils.initializeDatabase(request.getDatabase(), request.getDbusername(), request.getDbpassword());
- updateDataSource("jdbc:mysql://localhost:3306/" + request.getDatabase() + "?useSSL=false", request.getDbusername(), request.getDbpassword(), tenant);
- TenantContextHolder.setTenantId(tenant);
- Users user = new Users();
- user.setPassword(request.getLoginpassword());
- user.setUsername(request.getLoginusername());
- user.setTenant(tenant);
- user = service.save(user);
- String response = "Account Setup Completed TenantId: " + tenant + " Username: " + user.getUsername();
- Response rp = new Response();
- rp.setResult(response);
- return rp;
- }
Add Comment
Please, Sign In to add comment