Пример #1
0
  /* (non-Javadoc)
   * @see javax.xml.bind.annotation.adapters.XmlAdapter#unmarshal(java.lang.Object)
   */
  @Override
  public ISecurity unmarshal(String v) throws Exception {
    if (v == null) {
      return null;
    }

    URI uri = new URI(v);
    if (repositoryService == null) {
      try {
        BundleContext context = CoreActivator.getDefault().getBundle().getBundleContext();
        ServiceReference serviceReference =
            context.getServiceReference(IRepositoryService.class.getName());
        repositoryService = (IRepositoryService) context.getService(serviceReference);
        context.ungetService(serviceReference);
      } catch (Exception e) {
        Status status =
            new Status(
                IStatus.ERROR, CoreActivator.PLUGIN_ID, 0, "Error reading repository service", e);
        CoreActivator.log(status);
      }
    }

    ISecurity security =
        repositoryService != null ? repositoryService.getSecurityFromURI(uri) : null;
    if (security == null) {
      Status status =
          new Status(
              IStatus.WARNING,
              CoreActivator.PLUGIN_ID,
              0,
              "Failed to load security " + uri.toString(),
              null);
      CoreActivator.log(status);
      return new FailsafeSecurity(uri);
    }

    return security;
  }