public ServerAPIImpl(final boolean cleanSession) { try { this.cleanSession = cleanSession; accessResolver = getServiceAccessorFactoryInstance().createAPIAccessResolver(); } catch (final Exception e) { throw new BonitaRuntimeException(e); } }
public ServerAPIImpl(final boolean cleanSession) { try { this.cleanSession = cleanSession; accessResolver = getServiceAccessorFactoryInstance().createAPIAccessResolver(); } catch (final Exception e) { throw new BonitaRuntimeException(e); } }
protected UserTransactionService selectUserTransactionService(final Session session, final SessionType sessionType) throws BonitaHomeNotSetException, InstantiationException, IllegalAccessException, ClassNotFoundException, IOException, BonitaHomeConfigurationException { UserTransactionService transactionService; final ServiceAccessorFactory serviceAccessorFactory = getServiceAccessorFactoryInstance(); final PlatformServiceAccessor platformServiceAccessor = serviceAccessorFactory.createPlatformServiceAccessor(); switch (sessionType) { case PLATFORM: transactionService = platformServiceAccessor.getTransactionService(); break; case API: final TenantServiceAccessor tenantAccessor = platformServiceAccessor.getTenantServiceAccessor(((APISession) session).getTenantId()); transactionService = tenantAccessor.getUserTransactionService(); break; default: throw new InvalidSessionException("Unknown session type: " + session.getClass().getName()); } return transactionService; }
protected UserTransactionService selectUserTransactionService(final Session session, final SessionType sessionType) throws BonitaHomeNotSetException, InstantiationException, IllegalAccessException, ClassNotFoundException, IOException, BonitaHomeConfigurationException { UserTransactionService transactionService; final ServiceAccessorFactory serviceAccessorFactory = getServiceAccessorFactoryInstance(); final PlatformServiceAccessor platformServiceAccessor = serviceAccessorFactory.createPlatformServiceAccessor(); switch (sessionType) { case PLATFORM: transactionService = platformServiceAccessor.getTransactionService(); break; case API: final TenantServiceAccessor tenantAccessor = platformServiceAccessor.getTenantServiceAccessor(((APISession) session).getTenantId()); transactionService = tenantAccessor.getUserTransactionService(); break; default: throw new InvalidSessionException("Unknown session type: " + session.getClass().getName()); } return transactionService; }
SessionAccessor beforeInvokeMethod(final Session session, final String apiInterfaceName) throws BonitaHomeNotSetException, InstantiationException, IllegalAccessException, ClassNotFoundException, BonitaHomeConfigurationException, IOException, NoSuchMethodException, InvocationTargetException, SBonitaException { SessionAccessor sessionAccessor = null; final ServiceAccessorFactory serviceAccessorFactory = getServiceAccessorFactoryInstance(); final PlatformServiceAccessor platformServiceAccessor = serviceAccessorFactory.createPlatformServiceAccessor(); ClassLoader serverClassLoader = null; if (session != null) { final SessionType sessionType = getSessionType(session); sessionAccessor = serviceAccessorFactory.createSessionAccessor(); switch (sessionType) { case PLATFORM: serverClassLoader = beforeInvokeMethodForPlatformSession(sessionAccessor, platformServiceAccessor, session); break; case API: serverClassLoader = beforeInvokeMethodForAPISession(sessionAccessor, serviceAccessorFactory, platformServiceAccessor, session); break; default: throw new InvalidSessionException("Unknown session type: " + session.getClass().getName()); } } else if (accessResolver.needSession(apiInterfaceName)) { throw new InvalidSessionException("Session is null!"); } if (serverClassLoader != null) { Thread.currentThread().setContextClassLoader(serverClassLoader); } return sessionAccessor; }
SessionAccessor beforeInvokeMethod(final Session session, final String apiInterfaceName) throws BonitaHomeNotSetException, InstantiationException, IllegalAccessException, ClassNotFoundException, BonitaHomeConfigurationException, IOException, NoSuchMethodException, InvocationTargetException, SBonitaException { SessionAccessor sessionAccessor = null; final ServiceAccessorFactory serviceAccessorFactory = getServiceAccessorFactoryInstance(); final PlatformServiceAccessor platformServiceAccessor = serviceAccessorFactory.createPlatformServiceAccessor(); ClassLoader serverClassLoader = null; if (session != null) { final SessionType sessionType = getSessionType(session); sessionAccessor = serviceAccessorFactory.createSessionAccessor(); switch (sessionType) { case PLATFORM: serverClassLoader = beforeInvokeMethodForPlatformSession(sessionAccessor, platformServiceAccessor, session); break; case API: serverClassLoader = beforeInvokeMethodForAPISession(sessionAccessor, serviceAccessorFactory, platformServiceAccessor, session); break; default: throw new InvalidSessionException("Unknown session type: " + session.getClass().getName()); } } else if (accessResolver.needSession(apiInterfaceName)) { throw new InvalidSessionException("Session is null!"); } if (serverClassLoader != null) { Thread.currentThread().setContextClassLoader(serverClassLoader); } return sessionAccessor; }