/* (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; }