Uploaded image for project: 'Tuscany'
  1. Tuscany
  2. TUSCANY-3295

Service Creation should consider interfaces marked as remotable via SCDL @Remotable attribute in <interface.java>

    XMLWordPrintableJSON

Details

    Description

      Looks like we are currently visiting all interfaces from a implementation (see ServiceProcessor.java) and checking if these interfaces are annotated in order to create services.

      // scan interfaces for remotable
      Set<Class<?>> interfaces = getAllInterfaces(clazz);
      for (Class<?> interfaze : interfaces) {
      if (interfaze.isAnnotationPresent(Remotable.class)

      interfaze.isAnnotationPresent(WebService.class)
      interfaze.isAnnotationPresent(Callback.class)
      )
      Unknown macro: { Service service; try { service = createService(interfaze); } catch (InvalidInterfaceException e) { throw new IntrospectionException(e); } type.getServices().add(service); }

      }

      OASIS Java CAA specs now introduce the possibility to mark a interface remotable via the @remotable attribute in the SCDL and we should consider this when creating services... currently we are just throwing an exception

      Caused by: org.oasisopen.sca.ServiceRuntimeException: [] - Service not found for component service (missing @Remotable annotation?): Component = Catalog Service = Catalog
      at org.apache.tuscany.sca.node.impl.NodeFactoryImpl.analyzeProblems(NodeFactoryImpl.java:285)
      at org.apache.tuscany.sca.node.impl.NodeFactoryImpl.configureNode(NodeFactoryImpl.java:561)
      at org.apache.tuscany.sca.node.impl.NodeImpl.start(NodeImpl.java:120)
      ... 23 more

      Attachments

        Activity

          People

            Unassigned Unassigned
            lresende Luciano Resende
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: