ResourceExtensionsManager resourceExtensionsManager = configMgr.newResourceExtensionsManager(); JsonNode resourceExtensions = resourceExtensionsManager.listServices(new JacksonHandle()).get(); resourceExtensions.findValuesAsText("name").forEach(
/** * * @param r * @param metadata * @param methodParams * @return */ public Resource installService(Resource r, final ExtensionMetadata metadata, final MethodParameters... methodParams) { if (!hasFileBeenModified(r) || ignoreResource(r)) { return null; } final ResourceExtensionsManager extMgr = client.newServerConfigManager().newResourceExtensionsManager(); final String resourceName = getExtensionNameFromFile(r); if (metadata.getTitle() == null) { metadata.setTitle(resourceName + " resource extension"); } logger.info(String.format("Loading %s resource extension from file %s", resourceName, r.getFilename())); StringHandle h = new StringHandle(readAndReplaceTokens(r)); executeTask(() -> extMgr.writeServices(resourceName, h, metadata, methodParams)); updateTimestamp(r); return r; }
@Test /** Avoid regression on https://github.com/marklogic/java-client-api/issues/761 */ public void test_issue_761() { DatabaseClient client = Common.newClient("Documents"); try { client.newServerConfigManager().newResourceExtensionsManager() .listServices(new DOMHandle()); } finally { client.release(); } }
@Test /** Avoid regression on https://github.com/marklogic/java-client-api/issues/172 */ public void test_172() { ResourceExtensionsManager extensionMgr = Common.adminClient.newServerConfigManager().newResourceExtensionsManager(); Common.adminClient.release(); // since we released the existing connection, clear it out Common.adminClient = null; String expectedMessage = "You cannot use this connected object anymore--connection has already been released"; try { extensionMgr.writeServices(ResourceExtensionsTest.RESOURCE_NAME, null, null); } catch (IllegalStateException e) { assertEquals("Wrong error", expectedMessage, e.getMessage()); } try { extensionMgr.readServices(ResourceExtensionsTest.RESOURCE_NAME, new StringHandle()); } catch (IllegalStateException e) { assertEquals("Wrong error", expectedMessage, e.getMessage()); } try { extensionMgr.listServices(new DOMHandle()); } catch (IllegalStateException e) { assertEquals("Wrong error", expectedMessage, e.getMessage()); } try { extensionMgr.deleteServices(ResourceExtensionsTest.RESOURCE_NAME); } catch (IllegalStateException e) { assertEquals("Wrong error", expectedMessage, e.getMessage()); } }
@Before public void setUp() throws KeyManagementException, NoSuchAlgorithmException, Exception { int restPort = getRestServerPort(); String appServerHostname = getRestAppServerHostName(); client = getDatabaseClientOnDatabase(appServerHostname, restPort, dbName, "eval-user", "x", getConnType()); resourceMgr = client.newServerConfigManager().newResourceExtensionsManager(); ExtensionMetadata resextMetadata = new ExtensionMetadata(); resextMetadata.setTitle("BasicJSTest"); resextMetadata.setDescription("Testing resource extension for java script"); System.out.println(resextMetadata.getScriptLanguage()); resextMetadata.setScriptLanguage(ScriptLanguage.JAVASCRIPT); System.out.println(resextMetadata.getScriptLanguage()); resextMetadata.setVersion("1.0"); MethodParameters getParams = new MethodParameters(MethodType.GET); getParams.add("my-uri", "xs:string?"); FileInputStream myStream = new FileInputStream("src/test/java/com/marklogic/client/functionaltest/data/JSResource.js"); InputStreamHandle handle = new InputStreamHandle(myStream); handle.set(myStream); resourceMgr.writeServices("simpleJSResourceModule", handle, resextMetadata, getParams); }
@Test public void testResourceServiceExtension() throws XpathException, SAXException, IOException { ResourceExtensionsManager extensionMgr = Common.adminClient.newServerConfigManager().newResourceExtensionsManager(); StringHandle handle = new StringHandle(); ExtensionMetadata metadata = makeMetadata(); MethodParameters[] params = makeParameters(); handle.set(resourceServices); extensionMgr.writeServices(RESOURCE_NAME, handle, metadata, params); extensionMgr.readServices(RESOURCE_NAME, handle); assertEquals("Failed to retrieve resource services", resourceServices, handle.get()); String result = extensionMgr.listServices(new StringHandle().withFormat(Format.XML), true).get(); assertNotNull("Failed to retrieve resource services list", result); assertTrue("List without resource", xpather.getMatchingNodes( "/rapi:resources/rapi:resource/rapi:name[string(.) = 'testresource']", XMLUnit.buildControlDocument(result) ).getLength() == 1); extensionMgr.deleteServices(RESOURCE_NAME); result = extensionMgr.readServices(RESOURCE_NAME, handle).get(); assertTrue("Failed to delete resource services", result == null); } }
@Test public void testResourceServices() throws XpathException { ResourceExtensionsManager extensionMgr = Common.adminClient.newServerConfigManager().newResourceExtensionsManager();