Esempio n. 1
0
 /**
  * Instantiates a new razor server, its services, and starts the scheduler. This can be replaced
  * by a dynamic handler manager but has the benefit of simplicity.
  */
 public RazorServer() {
   super();
   SERVICES.put(Service.ACCOUNT, AccountService.getInstance());
   SERVICES.put(Service.ALERT, AlertService.getInstance());
   SERVICES.put(Service.ASSET, AssetService.getInstance());
   SERVICES.put(Service.ATTRIBUTE, AttributeService.getInstance());
   SERVICES.put(Service.AUDIT, AuditService.getInstance());
   SERVICES.put(Service.CONTRACT, ContractService.getInstance());
   SERVICES.put(Service.FINANCE, FinanceService.getInstance());
   SERVICES.put(Service.JOURNAL, JournalService.getInstance());
   SERVICES.put(Service.IMAGE, ImageService.getInstance());
   SERVICES.put(Service.IMAGETEXT, ImageTextService.getInstance());
   SERVICES.put(Service.LICENSE, LicenseService.getInstance());
   SERVICES.put(Service.LOCATION, LocationService.getInstance());
   SERVICES.put(Service.MAIL, MailService.getInstance());
   SERVICES.put(Service.MONITOR, MonitorService.getInstance());
   SERVICES.put(Service.PARTNER, PartnerService.getInstance());
   SERVICES.put(Service.PARTY, PartyService.getInstance());
   SERVICES.put(Service.PRICE, PriceService.getInstance());
   SERVICES.put(Service.PRODUCT, ProductService.getInstance());
   SERVICES.put(Service.RATE, RateService.getInstance());
   SERVICES.put(Service.REPORT, ReportService.getInstance());
   SERVICES.put(Service.RESERVATION, ReservationService.getInstance());
   SERVICES.put(Service.SESSION, SessionService.getInstance());
   SERVICES.put(Service.SMS, SmsService.getInstance());
   SERVICES.put(Service.TASK, TaskService.getInstance());
   SERVICES.put(Service.TAX, TaxService.getInstance());
   SERVICES.put(Service.TEXT, TextService.getInstance());
   SERVICES.put(Service.WORKFLOW, WorkflowService.getInstance());
   //		startScheduler();
   //		PartnerService.startSchedulers();
 }
Esempio n. 2
0
  /**
   * Executes the specified action on the action.service() service.
   *
   * @param action the action to be executed.
   * @return the response.
   * @throws SerializationException the serialization exception
   */
  public HasResponse execute(HasService action) throws SerializationException {

    HasResponse response = null;
    LOG.debug("\n\nRazorServer execute " + action.getClass().getName() + "\naction " + action);
    String classname = action.service().classname();

    try {
      Class<?> c = Class.forName(classname); // say AccountService
      Method[] allMethods = c.getDeclaredMethods(); // can be static
      for (Method m : allMethods) {
        String mname = m.getName();
        if (mname.equals("execute")) {
          Type[] pType = m.getGenericParameterTypes();
          if (pType[1].toString().equals("class " + action.getClass().getName())) {
            SqlSession sqlSession = openSession();
            try {
              m.setAccessible(true);
              Object t = getService(action.service());
              response = (HasResponse) m.invoke(t, sqlSession, action);
              sqlSession.commit();
            } catch (IllegalAccessException x) {
              LOG.error(
                  "IllegalAccessException " + action.getClass().getName() + "\n" + x.getMessage());
            } catch (InvocationTargetException x) {
              LOG.error(
                  "InvocationTargetException exception "
                      + action.getClass().getName()
                      + "\n"
                      + x.getMessage());
            } catch (Throwable x) {
              sqlSession.rollback();
              MonitorService.log(x);
            } finally {
              sqlSession.close();
            }
          }
        }
      }
    } catch (ClassNotFoundException x) {
      MonitorService.log(x);
      LOG.error("ClassNotFoundException " + action.getClass().getName() + "\n" + x.getMessage());
    }
    return response;
  }
Esempio n. 3
0
 /* (non-Javadoc)
  * @see net.cbtltd.client.RazorService#send(net.cbtltd.shared.api.HasService)
  */
 public HasResponse send(HasService action) throws SerializationException {
   try {
     Date timestamp = new Date();
     HasResponse response = execute(action);
     MonitorService.monitor(action.getClass().getSimpleName(), timestamp);
     return response;
   } catch (PatternSyntaxException x) {
     LOG.error("PatternSyntaxException " + x.toString());
     throw new SerializationException("PatternSyntaxException");
   }
 }
  @Test
  public void canFetchData() throws URISyntaxException, UnsupportedEncodingException {
    UriInfo mockUri = mock(UriInfo.class);
    URI uri = new URI("http://peteriscool.com:6666/");
    when(mockUri.getBaseUri()).thenReturn(uri);
    Response resp = monitorService.getData();

    String entity = new String((byte[]) resp.getEntity(), "UTF-8");

    assertEquals(entity, 200, resp.getStatus());
    assertThat(entity, containsString("timestamps"));
    assertThat(entity, containsString("end_time"));
    assertThat(entity, containsString("property_count"));
  }
  @Test
  public void correctRepresentation() throws Exception {
    Response resp = monitorService.getServiceDefinition();

    assertEquals(200, resp.getStatus());

    Map<String, Object> resultAsMap = output.getResultAsMap();
    @SuppressWarnings("unchecked")
    Map<String, Object> resources = (Map<String, Object>) resultAsMap.get("resources");
    assertThat((String) resources.get("data_from"), containsString("/fetch/{start}"));
    assertThat((String) resources.get("data_period"), containsString("/fetch/{start}/{stop}"));
    String latest_data = (String) resources.get("latest_data");
    assertThat(latest_data, containsString("/fetch"));
  }