├── nexus-script-example ├── settings.gradle ├── src │ └── main │ │ └── groovy │ │ ├── listUsersTask.groovy │ │ ├── listUsers.groovy │ │ ├── provision.groovy │ │ ├── listRepos.groovy │ │ ├── maven.groovy │ │ ├── listRolesToUsers.groovy │ │ ├── countComponents.groovy │ │ ├── repoAssetListerTask.groovy │ │ └── repoAssetLister.groovy ├── build.gradle └── pom.xml ├── apidocs ├── package-list ├── script.js ├── org │ └── sonatype │ │ └── nexus │ │ ├── security │ │ ├── package-frame.html │ │ ├── package-use.html │ │ ├── class-use │ │ │ └── SecurityApi.html │ │ ├── package-tree.html │ │ └── package-summary.html │ │ ├── common │ │ └── script │ │ │ ├── package-frame.html │ │ │ ├── package-tree.html │ │ │ ├── package-summary.html │ │ │ ├── package-use.html │ │ │ ├── ScriptApi.html │ │ │ └── class-use │ │ │ └── ScriptApi.html │ │ ├── script │ │ └── plugin │ │ │ ├── package-frame.html │ │ │ ├── package-use.html │ │ │ ├── class-use │ │ │ └── RepositoryApi.html │ │ │ ├── package-tree.html │ │ │ └── package-summary.html │ │ ├── package-frame.html │ │ ├── package-use.html │ │ ├── class-use │ │ ├── CoreApi.html │ │ └── BlobStoreApi.html │ │ ├── package-tree.html │ │ ├── package-summary.html │ │ └── BlobStoreApi.html ├── overview-frame.html ├── allclasses-noframe.html ├── allclasses-frame.html ├── index.html ├── deprecated-list.html ├── constant-values.html ├── overview-summary.html ├── overview-tree.html ├── help-doc.html └── stylesheet.css ├── simple-shell-example ├── maven.json ├── anonymous.json ├── echo.json ├── list.sh ├── delete.sh ├── run.sh ├── create.sh ├── npm.json ├── setAnonymous.sh ├── bower.json └── update.sh ├── complex-script ├── addRole.groovy ├── rawRepositories.groovy ├── core.groovy ├── grapeConfig.xml ├── dockerRepositories.groovy ├── provision.sh ├── npmAndBowerRepositories.groovy ├── addUpdateScript.groovy └── security.groovy └── README.asciidoc /nexus-script-example/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'nexus-script-example' 2 | -------------------------------------------------------------------------------- /apidocs/package-list: -------------------------------------------------------------------------------- 1 | org.sonatype.nexus 2 | org.sonatype.nexus.common.script 3 | org.sonatype.nexus.script.plugin 4 | org.sonatype.nexus.security 5 | -------------------------------------------------------------------------------- /simple-shell-example/maven.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "maven", 3 | "type": "groovy", 4 | "content": "repository.createMavenHosted('maven-internal')" 5 | } 6 | -------------------------------------------------------------------------------- /simple-shell-example/anonymous.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "anonymous", 3 | "type": "groovy", 4 | "content": "security.setAnonymousAccess(Boolean.valueOf(args))" 5 | } 6 | -------------------------------------------------------------------------------- /simple-shell-example/echo.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "echo", 3 | "type": "groovy", 4 | "content": "def youSaid = args; return 'Hello. You said: ' + youSaid;" 5 | } 6 | -------------------------------------------------------------------------------- /simple-shell-example/list.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | printf "Listing Integration API Scripts\n" 4 | 5 | curl -v -u admin:admin123 'http://localhost:8081/service/rest/v1/script' 6 | -------------------------------------------------------------------------------- /simple-shell-example/delete.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | name=$1 4 | 5 | printf "Deleting Integration API Script $name\n\n" 6 | 7 | curl -v -X DELETE -u admin:admin123 "http://localhost:8081/service/rest/v1/script/$name" 8 | -------------------------------------------------------------------------------- /simple-shell-example/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | name=$1 4 | 5 | printf "Running Integration API Script $name\n\n" 6 | 7 | curl -v -X POST -u admin:admin123 --header "Content-Type: text/plain" "http://localhost:8081/service/rest/v1/script/$1/run" 8 | -------------------------------------------------------------------------------- /nexus-script-example/src/main/groovy/listUsersTask.groovy: -------------------------------------------------------------------------------- 1 | users = security.getSecuritySystem().listUsers() 2 | 3 | size = users.size() 4 | 5 | log.info("User count: $size") 6 | 7 | for (user in users) 8 | { 9 | log.info("User: $user") 10 | } -------------------------------------------------------------------------------- /simple-shell-example/create.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | jsonFile=$1 4 | 5 | printf "Creating Integration API Script from $jsonFile\n\n" 6 | 7 | curl -v -u admin:admin123 --header "Content-Type: application/json" 'http://localhost:8081/service/rest/v1/script/' -d @$jsonFile 8 | -------------------------------------------------------------------------------- /simple-shell-example/npm.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "npm", 3 | "type": "groovy", 4 | "content": "repository.createNpmHosted('npm-internal'); repository.createNpmProxy('npmjs-org','https://registry.npmjs.org'); repository.createNpmGroup('npm-all',['npmjs-org','npm-internal'])" 5 | } 6 | -------------------------------------------------------------------------------- /nexus-script-example/src/main/groovy/listUsers.groovy: -------------------------------------------------------------------------------- 1 | import groovy.json.JsonOutput 2 | import org.sonatype.nexus.security.user.User 3 | 4 | users = security.getSecuritySystem().listUsers() 5 | size = users.size() 6 | log.info("User count: $size") 7 | 8 | return JsonOutput.toJson(users) 9 | -------------------------------------------------------------------------------- /simple-shell-example/setAnonymous.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | anonymous=$1 4 | 5 | printf "Setting Anonymous access to $anonymous\n\n" 6 | 7 | curl -v -X POST -u admin:admin123 --header "Content-Type: text/plain" "http://localhost:8081/service/rest/v1/script/anonymous/run" -d $anonymous 8 | -------------------------------------------------------------------------------- /simple-shell-example/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bower", 3 | "type": "groovy", 4 | "content": "repository.createBowerHosted('bower-internal'); repository.createBowerProxy('bower-io','http://bower.herokuapp.com'); repository.createBowerGroup('bower-all',['bower-io','bower-internal'])" 5 | } 6 | 7 | -------------------------------------------------------------------------------- /simple-shell-example/update.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | name=$1 4 | jsonFile=$2 5 | 6 | printf "Updating Integration API Script $name with $jsonFile\n\n" 7 | 8 | curl -v -X PUT -u admin:admin123 --header "Content-Type: application/json" "http://localhost:8081/service/rest/v1/script/$name" -d @$jsonFile 9 | -------------------------------------------------------------------------------- /nexus-script-example/src/main/groovy/provision.groovy: -------------------------------------------------------------------------------- 1 | // The four main API providers are blobStore, security, repository and core. 2 | 3 | blobStore.createFileBlobStore('npm', 'npm') 4 | 5 | security.addRole('blue','blue', 'Blue Role', [], []) 6 | 7 | repository.createBowerHosted('bower-internal') 8 | 9 | core.baseUrl('http://repo.example.com') 10 | -------------------------------------------------------------------------------- /complex-script/addRole.groovy: -------------------------------------------------------------------------------- 1 | // From https://help.sonatype.com/repomanager3/rest-and-integration-api/script-api/examples 2 | 3 | import groovy.json.JsonSlurper 4 | 5 | //expects json string with appropriate content to be passed in 6 | def role = new JsonSlurper().parseText(args) 7 | 8 | security.addRole(role.id, role.name, role.description, role.privilegeIds, role.roleIds) -------------------------------------------------------------------------------- /nexus-script-example/src/main/groovy/listRepos.groovy: -------------------------------------------------------------------------------- 1 | import groovy.json.JsonOutput 2 | import org.sonatype.nexus.repository.Repository 3 | 4 | List urls = [] 5 | 6 | repository.repositoryManager.browse().each { Repository repo -> 7 | log.info("Repository: $repo") 8 | urls.add(repo.name) 9 | 10 | } 11 | 12 | 13 | 14 | return JsonOutput.toJson(urls) -------------------------------------------------------------------------------- /complex-script/rawRepositories.groovy: -------------------------------------------------------------------------------- 1 | // create a new blob store dedicated to usage with raw repositories 2 | def rawStore = blobStore.createFileBlobStore('raw', 'raw') 3 | 4 | // and create a first raw hosted repository for documentation using the new blob store 5 | repository.createRawHosted('documentation', rawStore.name) 6 | 7 | log.info('Script rawRepositories completed successfully') -------------------------------------------------------------------------------- /nexus-script-example/src/main/groovy/maven.groovy: -------------------------------------------------------------------------------- 1 | // simple example showing simple method and equivalent method with all default parameters expanded. 2 | 3 | import org.sonatype.nexus.blobstore.api.BlobStoreManager 4 | import org.sonatype.nexus.repository.storage.WritePolicy 5 | import org.sonatype.nexus.repository.maven.VersionPolicy 6 | import org.sonatype.nexus.repository.maven.LayoutPolicy 7 | 8 | repository.createMavenHosted('private') 9 | 10 | repository.createMavenHosted('private-again', BlobStoreManager.DEFAULT_BLOBSTORE_NAME, true, VersionPolicy.RELEASE, 11 | WritePolicy.ALLOW_ONCE, LayoutPolicy.STRICT) 12 | -------------------------------------------------------------------------------- /complex-script/core.groovy: -------------------------------------------------------------------------------- 1 | 2 | // the repository manager is hosted behind a nging proxy server that redirects ports, 3 | // manages HTTPS and is configured with a DNS name 4 | // so we need to set the base URL 5 | core.baseUrl('https://repo.example.com') 6 | 7 | // another proxy server in the data center is the gate to the internet and therefore 8 | // any remote proxy repositoriesthe repository manager therefore needs to connect to 9 | // it as HTTP/HTTPS proxy and authenticate to be able to retrieve remote content 10 | core.httpProxyWithBasicAuth('webproxy', 9999, 'repomgr', 'letmethrough') 11 | 12 | log.info('Script core completed successfully') -------------------------------------------------------------------------------- /complex-script/grapeConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /apidocs/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /nexus-script-example/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'groovy' 2 | apply plugin: 'maven' 3 | 4 | group = 'com.example.automation' 5 | version = '1.0-SNAPSHOT' 6 | 7 | description = """Example of how to configure a simple IDE environment with code completion for developing NXRM3 8 | Integrations scripts""" 9 | 10 | sourceCompatibility = 1.8 11 | targetCompatibility = 1.8 12 | 13 | repositories { 14 | mavenCentral() 15 | } 16 | ext.versions = [ 17 | nxrm3: '3.9.0-01' 18 | ] 19 | 20 | dependencies { 21 | compile group: 'org.sonatype.nexus', name: 'nexus-core', version: versions.nxrm3 22 | compile group: 'org.sonatype.nexus', name: 'nexus-script', version: versions.nxrm3 23 | compile group: 'org.sonatype.nexus', name: 'nexus-security', version: versions.nxrm3 24 | compile group: 'org.sonatype.nexus', name: 'nexus-repository', version: versions.nxrm3 25 | compile group: 'org.sonatype.nexus.plugins', name: 'nexus-repository-maven', version: versions.nxrm3 26 | compile group: 'org.sonatype.nexus.plugins', name: 'nexus-script-plugin', version: versions.nxrm3 27 | } 28 | -------------------------------------------------------------------------------- /apidocs/org/sonatype/nexus/security/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.sonatype.nexus.security (nexus-integrations-apidocs 3.7.1-02 API) 8 | 9 | 10 | 11 | 12 | 13 |

org.sonatype.nexus.security

14 |
15 |

Interfaces

16 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /apidocs/org/sonatype/nexus/common/script/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.sonatype.nexus.common.script (nexus-integrations-apidocs 3.7.1-02 API) 8 | 9 | 10 | 11 | 12 | 13 |

org.sonatype.nexus.common.script

14 |
15 |

Interfaces

16 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /apidocs/org/sonatype/nexus/script/plugin/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.sonatype.nexus.script.plugin (nexus-integrations-apidocs 3.7.1-02 API) 8 | 9 | 10 | 11 | 12 | 13 |

org.sonatype.nexus.script.plugin

14 |
15 |

Interfaces

16 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /nexus-script-example/src/main/groovy/listRolesToUsers.groovy: -------------------------------------------------------------------------------- 1 | import groovy.json.JsonOutput 2 | import groovy.json.JsonSlurper 3 | 4 | // Only LDAP Users & associated Roles 5 | //users = security.getSecuritySystem().getUserManager("LDAP").listUsers() 6 | 7 | 8 | //All Users & Roles 9 | users = security.getSecuritySystem().listUsers() 10 | 11 | //expects json string with appropriate content to be passed in 12 | def p_role = null 13 | if (args?.trim()) { 14 | p_role = new JsonSlurper().parseText(args) 15 | } 16 | 17 | Map > role_to_user = new HashMap >(); 18 | 19 | for (user in users) 20 | { 21 | //log.info("User: $user") 22 | 23 | for (role in user.getRoles()) 24 | { 25 | //log.info(" ----> $role") 26 | 27 | if (p_role == null || role.roleId.equals(p_role.id)) { 28 | if (role_to_user.containsKey(role.roleId) == false) { 29 | role_to_user.put(role.roleId, new TreeSet()) 30 | } 31 | 32 | Set userList = role_to_user.get(role.roleId) 33 | userList.add(user.userId) 34 | } 35 | } 36 | 37 | } 38 | 39 | return JsonOutput.toJson(role_to_user) -------------------------------------------------------------------------------- /nexus-script-example/src/main/groovy/countComponents.groovy: -------------------------------------------------------------------------------- 1 | import org.sonatype.nexus.repository.Repository 2 | import org.sonatype.nexus.repository.storage.Query 3 | import org.sonatype.nexus.repository.storage.StorageFacet 4 | 5 | import groovy.json.JsonOutput 6 | 7 | def result = [:] 8 | 9 | def totalComponents = 0 10 | def totalAssets = 0 11 | 12 | repository.repositoryManager.browse().each { Repository repo -> 13 | def tx = repo.facet(StorageFacet).txSupplier().get() 14 | def components = 0 15 | def assets = 0 16 | try { 17 | tx.begin() 18 | components = tx.countComponents(Query.builder().where('1').eq(1).build(), [repo]) 19 | assets = tx.countAssets(Query.builder().where('1').eq(1).build(), [repo]) 20 | tx.commit() 21 | } catch (Exception e) { 22 | log.warn("Transaction failed {}", e.toString()) 23 | tx.rollback() 24 | } finally { 25 | tx.close() 26 | } 27 | totalComponents += components 28 | totalAssets += assets 29 | result[repo.name] = [components: components, assets: assets] 30 | } 31 | 32 | result["_totals"] = [components : totalComponents, assets : totalAssets] 33 | 34 | def json = JsonOutput.toJson(result) 35 | log.info json 36 | return json 37 | -------------------------------------------------------------------------------- /apidocs/org/sonatype/nexus/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.sonatype.nexus (nexus-integrations-apidocs 3.7.1-02 API) 8 | 9 | 10 | 11 | 12 | 13 |

org.sonatype.nexus

14 |
15 |

Interfaces

16 | 20 |
21 | 22 | 23 | -------------------------------------------------------------------------------- /nexus-script-example/src/main/groovy/repoAssetListerTask.groovy: -------------------------------------------------------------------------------- 1 | import org.sonatype.nexus.repository.storage.Asset 2 | import org.sonatype.nexus.repository.storage.Query 3 | import org.sonatype.nexus.repository.storage.StorageFacet 4 | 5 | import groovy.json.JsonOutput 6 | import groovy.json.JsonSlurper 7 | 8 | def assetListFile = new File('/tmp/assetListFile.txt') 9 | def request = new JsonSlurper().parseText("{\"repoName\":\"maven-releases\",\"startDate\":\"2016-01-01\"}") 10 | 11 | assert request.repoName: 'repoName parameter is required' 12 | assert request.startDate: 'startDate parameter is required, format: yyyy-mm-dd' 13 | 14 | log.info("Gathering Asset list for repository: ${request.repoName} as of startDate: ${request.startDate}") 15 | 16 | def repo = repository.repositoryManager.get(request.repoName) 17 | StorageFacet storageFacet = repo.facet(StorageFacet) 18 | def tx = storageFacet.txSupplier().get() 19 | 20 | try { 21 | tx.begin() 22 | Iterable assets = tx. 23 | findAssets(Query.builder().where('last_updated > ').param(request.startDate).build(), [repo]) 24 | 25 | assets.each {Asset asset -> 26 | assetListFile << asset.name() + '\n' 27 | } 28 | } 29 | finally { 30 | tx.close() 31 | } 32 | -------------------------------------------------------------------------------- /nexus-script-example/src/main/groovy/repoAssetLister.groovy: -------------------------------------------------------------------------------- 1 | import org.sonatype.nexus.repository.storage.Asset 2 | import org.sonatype.nexus.repository.storage.Query 3 | import org.sonatype.nexus.repository.storage.StorageFacet 4 | 5 | import groovy.json.JsonOutput 6 | import groovy.json.JsonSlurper 7 | 8 | def request = new JsonSlurper().parseText(args) 9 | assert request.repoName: 'repoName parameter is required' 10 | assert request.startDate: 'startDate parameter is required, format: yyyy-mm-dd' 11 | 12 | log.info("Gathering Asset list for repository: ${request.repoName} as of startDate: ${request.startDate}") 13 | 14 | def repo = repository.repositoryManager.get(request.repoName) 15 | StorageFacet storageFacet = repo.facet(StorageFacet) 16 | def tx = storageFacet.txSupplier().get() 17 | def urls = [] 18 | try { 19 | tx.begin() 20 | Iterable assets = tx. 21 | findAssets(Query.builder().where('last_updated > ').param(request.startDate).build(), [repo]) 22 | urls = assets.collect { "/repository/${repo.name}/${it.name()}" } 23 | } 24 | finally { 25 | tx.close() 26 | } 27 | 28 | def result = JsonOutput.toJson([ 29 | assets : urls, 30 | since : request.startDate, 31 | repoName: request.repoName 32 | ]) 33 | return result 34 | 35 | -------------------------------------------------------------------------------- /complex-script/dockerRepositories.groovy: -------------------------------------------------------------------------------- 1 | import org.sonatype.nexus.blobstore.api.BlobStoreManager 2 | 3 | // create hosted repo and expose via https to allow deployments 4 | repository.createDockerHosted('docker-internal', null, 18444) 5 | 6 | // create proxy repo of Docker Hub and enable v1 to get search to work 7 | // no ports since access is only indirectly via group 8 | repository.createDockerProxy('docker-hub', // name 9 | 'https://registry-1.docker.io', // remoteUrl 10 | 'HUB', // indexType 11 | null, // indexUrl 12 | null, // httpPort 13 | null, // httpsPort 14 | BlobStoreManager.DEFAULT_BLOBSTORE_NAME, // blobStoreName 15 | true, // strictContentTypeValidation 16 | true // v1Enabled 17 | ) 18 | 19 | // create group and allow access via https 20 | def groupMembers = ['docker-hub', 'docker-internal'] 21 | repository.createDockerGroup('docker-all', null, 18443, groupMembers, true) 22 | 23 | 24 | log.info('Script dockerRepositories completed successfully') -------------------------------------------------------------------------------- /apidocs/overview-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Overview List (nexus-integrations-apidocs 3.7.1-02 API) 8 | 9 | 10 | 11 | 12 | 13 | 14 | 23 |

 

24 | 25 | 26 | -------------------------------------------------------------------------------- /apidocs/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | All Classes (nexus-integrations-apidocs 3.7.1-02 API) 8 | 9 | 10 | 11 | 12 | 13 |

All Classes

14 |
15 | 22 |
23 | 24 | 25 | -------------------------------------------------------------------------------- /complex-script/provision.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # A simple example script that publishes a number of scripts to the Nexus Repository Manager 4 | # and executes them. 5 | 6 | # fail if anything errors 7 | set -e 8 | # fail if a function call is missing an argument 9 | set -u 10 | 11 | username=admin 12 | password=admin123 13 | 14 | # add the context if you are not using the root context 15 | host=http://localhost:8081 16 | 17 | # add a script to the repository manager and run it 18 | function addAndRunScript { 19 | name=$1 20 | file=$2 21 | # using grape config that points to local Maven repo and Central Repository , default grape config fails on some downloads although artifacts are in Central 22 | # change the grapeConfig file to point to your repository manager, if you are already running one in your organization 23 | groovy -Dgroovy.grape.report.downloads=true -Dgrape.config=grapeConfig.xml addUpdateScript.groovy -u "$username" -p "$password" -n "$name" -f "$file" -h "$host" 24 | printf "\nPublished $file as $name\n\n" 25 | curl -v -X POST -u $username:$password --header "Content-Type: text/plain" "$host/service/rest/v1/script/$name/run" 26 | printf "\nSuccessfully executed $name script\n\n\n" 27 | } 28 | 29 | printf "Provisioning Integration API Scripts Starting \n\n" 30 | printf "Publishing and executing on $host\n" 31 | 32 | addAndRunScript npmBower npmAndBowerRepositories.groovy 33 | addAndRunScript raw rawRepositories.groovy 34 | addAndRunScript security security.groovy 35 | addAndRunScript core core.groovy 36 | 37 | printf "\nProvisioning Scripts Completed\n\n" 38 | -------------------------------------------------------------------------------- /apidocs/allclasses-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | All Classes (nexus-integrations-apidocs 3.7.1-02 API) 8 | 9 | 10 | 11 | 12 | 13 |

All Classes

14 |
15 | 22 |
23 | 24 | 25 | -------------------------------------------------------------------------------- /nexus-script-example/pom.xml: -------------------------------------------------------------------------------- 1 | 4 | 4.0.0 5 | 6 | com.example.automation 7 | nexus-script-example 8 | 1.0-SNAPSHOT 9 | 10 | 11 | 3.9.0-01 12 | 13 | 14 | 15 | org.sonatype.nexus 16 | nexus-core 17 | ${nx-version} 18 | 19 | 20 | org.sonatype.nexus 21 | nexus-script 22 | ${nx-version} 23 | 24 | 25 | org.sonatype.nexus 26 | nexus-security 27 | ${nx-version} 28 | 29 | 30 | org.sonatype.nexus 31 | nexus-repository 32 | ${nx-version} 33 | 34 | 35 | org.sonatype.nexus.plugins 36 | nexus-repository-maven 37 | ${nx-version} 38 | 39 | 40 | org.sonatype.nexus.plugins 41 | nexus-script-plugin 42 | ${nx-version} 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /complex-script/npmAndBowerRepositories.groovy: -------------------------------------------------------------------------------- 1 | import groovy.xml.MarkupBuilder 2 | def newRepositories = [] 3 | newRepositories << repository.createNpmProxy('npmjs-org', 'https://registry.npmjs.org') 4 | 5 | newRepositories << repository.createNpmHosted('npm-internal') 6 | 7 | def npmMembers = ['npmjs-org', 'npm-internal' ] 8 | newRepositories << repository.createNpmGroup('npm-all', npmMembers) 9 | 10 | newRepositories << repository.createBowerProxy('bower-io', 'http://bower.herokuapp.com') 11 | 12 | newRepositories << repository.createBowerHosted('bower-internal') 13 | 14 | def bowerMembers = ['bower-io', 'bower-internal'] 15 | newRepositories << repository.createBowerGroup('bower-all', bowerMembers) 16 | 17 | log.info('Script npmAndBowerRepositories completed successfully') 18 | 19 | // build up an XML response containing the urls for newly created repositories 20 | def writer = new StringWriter() 21 | def xml = new MarkupBuilder(writer) 22 | xml.repositories() { 23 | newRepositories.each { repo -> 24 | repository(name: repo.name, url: repo.url) 25 | } 26 | } 27 | return writer.toString() 28 | 29 | // output will be like: 30 | 31 | // 32 | // 33 | // 34 | // 35 | // 36 | // 37 | // 38 | // 39 | -------------------------------------------------------------------------------- /README.asciidoc: -------------------------------------------------------------------------------- 1 | == Integration API Scripting Examples 2 | 3 | Example projects for the Integration API as documented in https://help.sonatype.com/display/NXRM3/REST+and+Integration+API 4 | 5 | See what other interesting scripts have been created at https://community.sonatype.com 6 | 7 | Getting Started 8 | ~~~~~~~~~~~~~~~ 9 | Look at the examples in these projects to get more familiar with how to load, run, and write your own scripts to run inside of Nexus Repository Manager. 10 | 11 | Step 1 - simple-shell-example:: simple JSON script files and shell scripts for interaction with the REST API 12 | Step 2 - nexus-script-example:: Maven project for script development with IntelliJ IDEA-supported code completion 13 | Step 3 - complex-script:: complex provisioning setup based on a shell script invoking numerous groovy scripts for upload and execution 14 | 15 | Passing Parameters 16 | ~~~~~~~~~~~~~~~~~~ 17 | When running the script, the body of the POST request will be passed to your groovy in the _args_ field. You can treat this as a normal string, use Groovy's JsonSlurper to parse it as JSON, or read in any other groovy way. 18 | 19 | The link:simple-shell-example/echo.json[echo.json] sample shows this in action. To test it out: 20 | 21 | . First, cut and paste the contents of _echo.json_ into the body field in the Nexus API UI for adding a new script and give your script a name, and click the "execute" button to submit the POST _/v1/script_ request to save the script in your instance of Nexus Repository Manager 22 | . Next, using the name from Step 1, execute the POST _/v1/script/{name}/run_ request with any text you choose in the body. 23 | . Notice that the response for Step 2 will return the text that you passed in! 24 | 25 | For a more interesting example, see link:complex-script/addRole.groovy[addRole.groovy] and the corresponding documentation at the bottom of https://help.sonatype.com/repomanager3/rest-and-integration-api/script-api/examples. This script allows you to create your own custom REST API that enables you automate the creation of new Roles inside of Nexus Repository Manager. 26 | 27 | 28 | API Reference 29 | ~~~~~~~~~~~~~ 30 | There are 4 officially supported API interfaces: 31 | 32 | . Core 33 | . BlobStore 34 | . Repository 35 | . Security 36 | 37 | To learn more about the methods in each interface, use code complete in your favorite IDE with the _nexus-script-example_ project, or take a look at the Javadoc link:apidocs/index.html[index.html] 38 | 39 | -------------------------------------------------------------------------------- /complex-script/addUpdateScript.groovy: -------------------------------------------------------------------------------- 1 | /** 2 | * An example script that handles adding or updating a groovy script via the REST API. 3 | */ 4 | @Grab('org.sonatype.nexus:nexus-rest-client:3.9.0-01') 5 | @Grab('org.sonatype.nexus:nexus-rest-jackson2:3.9.0-01') 6 | @Grab('org.sonatype.nexus:nexus-script:3.9.0-01') 7 | @Grab('org.jboss.spec.javax.servlet:jboss-servlet-api_3.1_spec:1.0.0.Final') 8 | @Grab('com.fasterxml.jackson.core:jackson-core:2.8.6') 9 | @Grab('com.fasterxml.jackson.core:jackson-databind:2.8.6') 10 | @Grab('com.fasterxml.jackson.core:jackson-annotations:2.8.6') 11 | @Grab('com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:2.8.6') 12 | @Grab('org.jboss.spec.javax.ws.rs:jboss-jaxrs-api_2.0_spec:1.0.1.Beta1') 13 | @Grab('org.jboss.spec.javax.annotation:jboss-annotations-api_1.2_spec:1.0.0.Final') 14 | @Grab('javax.activation:activation:1.1.1') 15 | @Grab('net.jcip:jcip-annotations:1.0') 16 | @Grab('org.jboss.logging:jboss-logging-annotations:2.0.1.Final') 17 | @Grab('org.jboss.logging:jboss-logging-processor:2.0.1.Final') 18 | @Grab('com.sun.xml.bind:jaxb-impl:2.2.7') 19 | @Grab('com.sun.mail:javax.mail:1.5.6') 20 | @Grab('org.apache.james:apache-mime4j:0.6') 21 | @GrabExclude('org.codehaus.groovy:groovy-all') 22 | import javax.ws.rs.NotFoundException 23 | 24 | import org.sonatype.nexus.script.ScriptClient 25 | import org.sonatype.nexus.script.ScriptXO 26 | 27 | import org.jboss.resteasy.client.jaxrs.BasicAuthentication 28 | import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder 29 | 30 | CliBuilder cli = new CliBuilder( 31 | usage: 'groovy addUpdateScript.groovy -u admin -p admin123 -f scriptFile.groovy [-n explicitName] [-h nx3Url]') 32 | cli.with { 33 | u longOpt: 'username', args: 1, required: true, 'A User with permission to use the NX3 Script resource' 34 | p longOpt: 'password', args: 1, required: true, 'Password for given User' 35 | f longOpt: 'file', args: 1, required: true, 'Script file to send to NX3' 36 | h longOpt: 'host', args: 1, 'NX3 host url (including port if necessary). Defaults to http://localhost:8081' 37 | n longOpt: 'name', args: 1, 'Name to store Script file under. Defaults to the name of the Script file.' 38 | } 39 | def options = cli.parse(args) 40 | if (!options) { 41 | return 42 | } 43 | 44 | def file = new File(options.f) 45 | assert file.exists() 46 | 47 | def host = options.h ?: 'http://localhost:8081' 48 | def resource = 'service/rest' 49 | 50 | ScriptClient scripts = new ResteasyClientBuilder() 51 | .build() 52 | .register(new BasicAuthentication(options.u, options.p)) 53 | .target("$host/$resource") 54 | .proxy(ScriptClient) 55 | 56 | String name = options.n ?: file.name 57 | 58 | // Look to see if a script with this name already exists so we can update if necessary 59 | boolean newScript = true 60 | try { 61 | scripts.read(name) 62 | newScript = false 63 | println "Existing Script named '$name' will be updated" 64 | } 65 | catch (NotFoundException e) { 66 | println "Script named '$name' will be created" 67 | } 68 | 69 | def script = new ScriptXO(name, file.text, 'groovy') 70 | if (newScript) { 71 | scripts.add(script) 72 | } 73 | else { 74 | scripts.edit(name, script) 75 | } 76 | 77 | println "Stored scripts are now: ${scripts.browse().collect { it.name }}" 78 | -------------------------------------------------------------------------------- /apidocs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | nexus-integrations-apidocs 3.7.1-02 API 8 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | <noscript> 70 | <div>JavaScript is disabled on your browser.</div> 71 | </noscript> 72 | <h2>Frame Alert</h2> 73 | <p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="overview-summary.html">Non-frame version</a>.</p> 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /complex-script/security.groovy: -------------------------------------------------------------------------------- 1 | import groovy.json.JsonOutput 2 | 3 | // A bunch of security setup related tasks 4 | 5 | // 6 | // disable anonymous access 7 | // 8 | security.setAnonymousAccess(false) 9 | log.info('Anonymous access disabled') 10 | 11 | // 12 | // Create new admin user 13 | // 14 | def adminRole = ['nx-admin'] 15 | def janeDoe = security.addUser('jane.doe', 'Jane', 'Doe', 'jane.doe@example.com', true, 'changMe123', adminRole) 16 | log.info('User jane.doe created') 17 | 18 | // 19 | // Create a new role that allows a user same access as anonymous and adds healtchcheck access 20 | // 21 | def devPrivileges = ['nx-healthcheck-read', 'nx-healthcheck-summary-read'] 22 | def anoRole = ['nx-anonymous'] 23 | // add roles that uses the built in nx-anonymous role as a basis and adds more privileges 24 | security.addRole('developer', 'Developer', 'User with privileges to allow read access to repo content and healtcheck', devPrivileges, anoRole) 25 | log.info('Role developer created') 26 | // use the new role to create a user 27 | def devRoles = ['developer'] 28 | def johnDoe = security.addUser('john.doe', 'John', 'Doe', 'john.doe@example.com', true, 'changMe456', devRoles) 29 | log.info('User john.doe created') 30 | 31 | // 32 | // Create new role that allows deployment and create a user to be used on a CI server 33 | // 34 | // privileges with pattern * to allow any format, browse and read are already part of nx-anonymous 35 | def depPrivileges = ['nx-repository-view-*-*-add', 'nx-repository-view-*-*-edit'] 36 | def roles = ['developer'] 37 | // add roles that uses the developer role as a basis and adds more privileges 38 | security.addRole('deployer', 'Deployer', 'User with privileges to allow deployment all repositories', depPrivileges, roles) 39 | log.info('Role deployer created') 40 | def depRoles = ['deployer'] 41 | def lJenkins = security.addUser('jenkins', 'Leeroy', 'Jenkins', 'leeroy.jenkins@example.com', true, 'changMe789', depRoles) 42 | log.info('User jenkins created') 43 | 44 | 45 | log.info('Script security completed successfully') 46 | 47 | //Return a JSON response containing our new Users for confirmation 48 | return JsonOutput.toJson([janeDoe, johnDoe, lJenkins]) 49 | 50 | // output will be like: 51 | 52 | //[ 53 | // { 54 | // "emailAddress": "jane.doe@example.com", 55 | // "firstName": "Jane", 56 | // "lastName": "Doe", 57 | // "name": "Jane Doe", 58 | // "readOnly": false, 59 | // "roles": [ 60 | // { 61 | // "roleId": "nx-admin", 62 | // "source": "default" 63 | // } 64 | // ], 65 | // "source": "default", 66 | // "status": "active", 67 | // "userId": "jane.doe", 68 | // "version": null 69 | // }, 70 | // { 71 | // "emailAddress": "john.doe@example.com", 72 | // "firstName": "John", 73 | // "lastName": "Doe", 74 | // "name": "John Doe", 75 | // "readOnly": false, 76 | // "roles": [ 77 | // { 78 | // "roleId": "developer", 79 | // "source": "default" 80 | // } 81 | // ], 82 | // "source": "default", 83 | // "status": "active", 84 | // "userId": "john.doe", 85 | // "version": null 86 | // }, 87 | // { 88 | // "emailAddress": "leeroy.jenkins@example.com", 89 | // "firstName": "Leeroy", 90 | // "lastName": "Jenkins", 91 | // "name": "Leeroy Jenkins", 92 | // "readOnly": false, 93 | // "roles": [ 94 | // { 95 | // "roleId": "deployer", 96 | // "source": "default" 97 | // } 98 | // ], 99 | // "source": "default", 100 | // "status": "active", 101 | // "userId": "jenkins", 102 | // "version": null 103 | // } 104 | //] 105 | 106 | -------------------------------------------------------------------------------- /apidocs/deprecated-list.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Deprecated List (nexus-integrations-apidocs 3.7.1-02 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 44 |
45 | 72 | 73 |
74 |

Deprecated API

75 |

Contents

76 |
77 | 78 |
79 | 80 | 81 | 82 | 83 | 84 | 85 | 95 |
96 | 123 | 124 |

Copyright © 2018. All rights reserved.

125 | 126 | 127 | -------------------------------------------------------------------------------- /apidocs/constant-values.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Constant Field Values (nexus-integrations-apidocs 3.7.1-02 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 44 |
45 | 72 | 73 |
74 |

Constant Field Values

75 |

Contents

76 |
77 | 78 |
79 | 80 | 81 | 82 | 83 | 84 | 85 | 95 |
96 | 123 | 124 |

Copyright © 2018. All rights reserved.

125 | 126 | 127 | -------------------------------------------------------------------------------- /apidocs/org/sonatype/nexus/package-use.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Uses of Package org.sonatype.nexus (nexus-integrations-apidocs 3.7.1-02 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 44 |
45 | 72 | 73 |
74 |

Uses of Package
org.sonatype.nexus

75 |
76 |
No usage of org.sonatype.nexus
77 | 78 |
79 | 80 | 81 | 82 | 83 | 84 | 85 | 95 |
96 | 123 | 124 |

Copyright © 2018. All rights reserved.

125 | 126 | 127 | -------------------------------------------------------------------------------- /apidocs/org/sonatype/nexus/security/package-use.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Uses of Package org.sonatype.nexus.security (nexus-integrations-apidocs 3.7.1-02 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 44 |
45 | 72 | 73 |
74 |

Uses of Package
org.sonatype.nexus.security

75 |
76 |
No usage of org.sonatype.nexus.security
77 | 78 |
79 | 80 | 81 | 82 | 83 | 84 | 85 | 95 |
96 | 123 | 124 |

Copyright © 2018. All rights reserved.

125 | 126 | 127 | -------------------------------------------------------------------------------- /apidocs/org/sonatype/nexus/script/plugin/package-use.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Uses of Package org.sonatype.nexus.script.plugin (nexus-integrations-apidocs 3.7.1-02 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 44 |
45 | 72 | 73 |
74 |

Uses of Package
org.sonatype.nexus.script.plugin

75 |
76 |
No usage of org.sonatype.nexus.script.plugin
77 | 78 |
79 | 80 | 81 | 82 | 83 | 84 | 85 | 95 |
96 | 123 | 124 |

Copyright © 2018. All rights reserved.

125 | 126 | 127 | -------------------------------------------------------------------------------- /apidocs/org/sonatype/nexus/class-use/CoreApi.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Uses of Interface org.sonatype.nexus.CoreApi (nexus-integrations-apidocs 3.7.1-02 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 44 |
45 | 72 | 73 |
74 |

Uses of Interface
org.sonatype.nexus.CoreApi

75 |
76 |
No usage of org.sonatype.nexus.CoreApi
77 | 78 |
79 | 80 | 81 | 82 | 83 | 84 | 85 | 95 |
96 | 123 | 124 |

Copyright © 2018. All rights reserved.

125 | 126 | 127 | -------------------------------------------------------------------------------- /apidocs/org/sonatype/nexus/class-use/BlobStoreApi.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Uses of Interface org.sonatype.nexus.BlobStoreApi (nexus-integrations-apidocs 3.7.1-02 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 44 |
45 | 72 | 73 |
74 |

Uses of Interface
org.sonatype.nexus.BlobStoreApi

75 |
76 |
No usage of org.sonatype.nexus.BlobStoreApi
77 | 78 |
79 | 80 | 81 | 82 | 83 | 84 | 85 | 95 |
96 | 123 | 124 |

Copyright © 2018. All rights reserved.

125 | 126 | 127 | -------------------------------------------------------------------------------- /apidocs/org/sonatype/nexus/security/class-use/SecurityApi.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Uses of Interface org.sonatype.nexus.security.SecurityApi (nexus-integrations-apidocs 3.7.1-02 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 44 |
45 | 72 | 73 |
74 |

Uses of Interface
org.sonatype.nexus.security.SecurityApi

75 |
76 |
No usage of org.sonatype.nexus.security.SecurityApi
77 | 78 |
79 | 80 | 81 | 82 | 83 | 84 | 85 | 95 |
96 | 123 | 124 |

Copyright © 2018. All rights reserved.

125 | 126 | 127 | -------------------------------------------------------------------------------- /apidocs/org/sonatype/nexus/script/plugin/class-use/RepositoryApi.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Uses of Interface org.sonatype.nexus.script.plugin.RepositoryApi (nexus-integrations-apidocs 3.7.1-02 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 44 |
45 | 72 | 73 |
74 |

Uses of Interface
org.sonatype.nexus.script.plugin.RepositoryApi

75 |
76 |
No usage of org.sonatype.nexus.script.plugin.RepositoryApi
77 | 78 |
79 | 80 | 81 | 82 | 83 | 84 | 85 | 95 |
96 | 123 | 124 |

Copyright © 2018. All rights reserved.

125 | 126 | 127 | -------------------------------------------------------------------------------- /apidocs/overview-summary.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Overview (nexus-integrations-apidocs 3.7.1-02 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 44 |
45 | 72 | 73 |
74 |

nexus-integrations-apidocs 3.7.1-02 API

75 |
76 |
77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 |
Packages 
PackageDescription
org.sonatype.nexus 
org.sonatype.nexus.common.script 
org.sonatype.nexus.script.plugin 
org.sonatype.nexus.security 
102 |
103 | 104 |
105 | 106 | 107 | 108 | 109 | 110 | 111 | 121 |
122 | 149 | 150 |

Copyright © 2018. All rights reserved.

151 | 152 | 153 | -------------------------------------------------------------------------------- /apidocs/org/sonatype/nexus/common/script/package-tree.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.sonatype.nexus.common.script Class Hierarchy (nexus-integrations-apidocs 3.7.1-02 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 44 |
45 | 72 | 73 |
74 |

Hierarchy For Package org.sonatype.nexus.common.script

75 | Package Hierarchies: 76 | 79 |
80 |
81 |

Interface Hierarchy

82 |
    83 |
  • org.sonatype.nexus.common.script.ScriptApi
  • 84 |
85 |
86 | 87 |
88 | 89 | 90 | 91 | 92 | 93 | 94 | 104 |
105 | 132 | 133 |

Copyright © 2018. All rights reserved.

134 | 135 | 136 | -------------------------------------------------------------------------------- /apidocs/org/sonatype/nexus/security/package-tree.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.sonatype.nexus.security Class Hierarchy (nexus-integrations-apidocs 3.7.1-02 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 44 |
45 | 72 | 73 |
74 |

Hierarchy For Package org.sonatype.nexus.security

75 | Package Hierarchies: 76 | 79 |
80 |
81 |

Interface Hierarchy

82 |
    83 |
  • org.sonatype.nexus.common.script.ScriptApi 84 | 87 |
  • 88 |
89 |
90 | 91 |
92 | 93 | 94 | 95 | 96 | 97 | 98 | 108 |
109 | 136 | 137 |

Copyright © 2018. All rights reserved.

138 | 139 | 140 | -------------------------------------------------------------------------------- /apidocs/org/sonatype/nexus/package-tree.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.sonatype.nexus Class Hierarchy (nexus-integrations-apidocs 3.7.1-02 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 44 |
45 | 72 | 73 |
74 |

Hierarchy For Package org.sonatype.nexus

75 | Package Hierarchies: 76 | 79 |
80 |
81 |

Interface Hierarchy

82 | 90 |
91 | 92 |
93 | 94 | 95 | 96 | 97 | 98 | 99 | 109 |
110 | 137 | 138 |

Copyright © 2018. All rights reserved.

139 | 140 | 141 | -------------------------------------------------------------------------------- /apidocs/org/sonatype/nexus/security/package-summary.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.sonatype.nexus.security (nexus-integrations-apidocs 3.7.1-02 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 44 |
45 | 72 | 73 |
74 |

Package org.sonatype.nexus.security

75 |
76 |
77 |
    78 |
  • 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 91 | 92 | 93 |
    Interface Summary 
    InterfaceDescription
    SecurityApi 89 |
    Security provisioning capabilities of the repository manager.
    90 |
    94 |
  • 95 |
96 |
97 | 98 |
99 | 100 | 101 | 102 | 103 | 104 | 105 | 115 |
116 | 143 | 144 |

Copyright © 2018. All rights reserved.

145 | 146 | 147 | -------------------------------------------------------------------------------- /apidocs/org/sonatype/nexus/script/plugin/package-tree.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.sonatype.nexus.script.plugin Class Hierarchy (nexus-integrations-apidocs 3.7.1-02 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 44 |
45 | 72 | 73 |
74 |

Hierarchy For Package org.sonatype.nexus.script.plugin

75 | Package Hierarchies: 76 | 79 |
80 |
81 |

Interface Hierarchy

82 |
    83 |
  • org.sonatype.nexus.common.script.ScriptApi 84 | 87 |
  • 88 |
89 |
90 | 91 |
92 | 93 | 94 | 95 | 96 | 97 | 98 | 108 |
109 | 136 | 137 |

Copyright © 2018. All rights reserved.

138 | 139 | 140 | -------------------------------------------------------------------------------- /apidocs/org/sonatype/nexus/package-summary.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.sonatype.nexus (nexus-integrations-apidocs 3.7.1-02 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 44 |
45 | 72 | 73 |
74 |

Package org.sonatype.nexus

75 |
76 |
77 |
    78 |
  • 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 91 | 92 | 93 | 94 | 97 | 98 | 99 |
    Interface Summary 
    InterfaceDescription
    BlobStoreApi 89 |
    BlobStore provisioning capabilities of the repository manager.
    90 |
    CoreApi 95 |
    Core provisioning capabilities of the repository manager.
    96 |
    100 |
  • 101 |
102 |
103 | 104 |
105 | 106 | 107 | 108 | 109 | 110 | 111 | 121 |
122 | 149 | 150 |

Copyright © 2018. All rights reserved.

151 | 152 | 153 | -------------------------------------------------------------------------------- /apidocs/overview-tree.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Class Hierarchy (nexus-integrations-apidocs 3.7.1-02 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 44 |
45 | 72 | 73 |
74 |

Hierarchy For All Packages

75 | Package Hierarchies: 76 | 82 |
83 |
84 |

Interface Hierarchy

85 | 95 |
96 | 97 |
98 | 99 | 100 | 101 | 102 | 103 | 104 | 114 |
115 | 142 | 143 |

Copyright © 2018. All rights reserved.

144 | 145 | 146 | -------------------------------------------------------------------------------- /apidocs/org/sonatype/nexus/common/script/package-summary.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.sonatype.nexus.common.script (nexus-integrations-apidocs 3.7.1-02 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 44 |
45 | 72 | 73 |
74 |

Package org.sonatype.nexus.common.script

75 |
76 |
77 |
    78 |
  • 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 91 | 92 | 93 |
    Interface Summary 
    InterfaceDescription
    ScriptApi 89 |
    Marker interface for anyone wanting to include an api for use in a Script.
    90 |
    94 |
  • 95 |
96 |
97 | 98 |
99 | 100 | 101 | 102 | 103 | 104 | 105 | 115 |
116 | 143 | 144 |

Copyright © 2018. All rights reserved.

145 | 146 | 147 | -------------------------------------------------------------------------------- /apidocs/org/sonatype/nexus/script/plugin/package-summary.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.sonatype.nexus.script.plugin (nexus-integrations-apidocs 3.7.1-02 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 44 |
45 | 72 | 73 |
74 |

Package org.sonatype.nexus.script.plugin

75 |
76 |
77 |
    78 |
  • 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 91 | 92 | 93 |
    Interface Summary 
    InterfaceDescription
    RepositoryApi 89 |
    Repository provisioning capabilities of the repository manager.
    90 |
    94 |
  • 95 |
96 |
97 | 98 |
99 | 100 | 101 | 102 | 103 | 104 | 105 | 115 |
116 | 143 | 144 |

Copyright © 2018. All rights reserved.

145 | 146 | 147 | -------------------------------------------------------------------------------- /apidocs/org/sonatype/nexus/common/script/package-use.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Uses of Package org.sonatype.nexus.common.script (nexus-integrations-apidocs 3.7.1-02 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 44 |
45 | 72 | 73 |
74 |

Uses of Package
org.sonatype.nexus.common.script

75 |
76 |
77 | 153 |
154 | 155 |
156 | 157 | 158 | 159 | 160 | 161 | 162 | 172 |
173 | 200 | 201 |

Copyright © 2018. All rights reserved.

202 | 203 | 204 | -------------------------------------------------------------------------------- /apidocs/org/sonatype/nexus/common/script/ScriptApi.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | ScriptApi (nexus-integrations-apidocs 3.7.1-02 API) 8 | 9 | 10 | 11 | 12 | 13 | 29 | 32 | 33 |
34 | 35 | 36 | 37 | 38 | 39 | 40 | 50 |
51 | 93 | 94 | 95 |
96 |
org.sonatype.nexus.common.script
97 |

Interface ScriptApi

98 |
99 |
100 |
101 |
    102 |
  • 103 |
    104 |
    All Known Subinterfaces:
    105 |
    BlobStoreApi, CoreApi, RepositoryApi, SecurityApi
    106 |
    107 |
    108 |
    109 |
    public interface ScriptApi
    110 |
    Marker interface for anyone wanting to include an api for use in a Script.
    111 |
    112 |
    Since:
    113 |
    3.0
    114 |
    115 |
  • 116 |
117 |
118 |
119 |
    120 |
  • 121 | 122 | 142 |
  • 143 |
144 |
145 |
146 |
    147 |
  • 148 | 149 |
      150 |
    • 151 | 152 | 153 |

      Method Detail

      154 | 155 | 156 | 157 |
        158 |
      • 159 |

        getName

        160 |
        String getName()
        161 |
        The name of the api provided.
        162 |
      • 163 |
      164 |
    • 165 |
    166 |
  • 167 |
168 |
169 |
170 | 171 | 172 |
173 | 174 | 175 | 176 | 177 | 178 | 179 | 189 |
190 | 232 | 233 |

Copyright © 2018. All rights reserved.

234 | 235 | 236 | -------------------------------------------------------------------------------- /apidocs/help-doc.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | API Help (nexus-integrations-apidocs 3.7.1-02 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 44 |
45 | 72 | 73 |
74 |

How This API Document Is Organized

75 |
This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
76 |
77 |
78 |
    79 |
  • 80 |

    Overview

    81 |

    The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

    82 |
  • 83 |
  • 84 |

    Package

    85 |

    Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:

    86 |
      87 |
    • Interfaces (italic)
    • 88 |
    • Classes
    • 89 |
    • Enums
    • 90 |
    • Exceptions
    • 91 |
    • Errors
    • 92 |
    • Annotation Types
    • 93 |
    94 |
  • 95 |
  • 96 |

    Class/Interface

    97 |

    Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

    98 |
      99 |
    • Class inheritance diagram
    • 100 |
    • Direct Subclasses
    • 101 |
    • All Known Subinterfaces
    • 102 |
    • All Known Implementing Classes
    • 103 |
    • Class/interface declaration
    • 104 |
    • Class/interface description
    • 105 |
    106 |
      107 |
    • Nested Class Summary
    • 108 |
    • Field Summary
    • 109 |
    • Constructor Summary
    • 110 |
    • Method Summary
    • 111 |
    112 |
      113 |
    • Field Detail
    • 114 |
    • Constructor Detail
    • 115 |
    • Method Detail
    • 116 |
    117 |

    Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

    118 |
  • 119 |
  • 120 |

    Annotation Type

    121 |

    Each annotation type has its own separate page with the following sections:

    122 |
      123 |
    • Annotation Type declaration
    • 124 |
    • Annotation Type description
    • 125 |
    • Required Element Summary
    • 126 |
    • Optional Element Summary
    • 127 |
    • Element Detail
    • 128 |
    129 |
  • 130 |
  • 131 |

    Enum

    132 |

    Each enum has its own separate page with the following sections:

    133 |
      134 |
    • Enum declaration
    • 135 |
    • Enum description
    • 136 |
    • Enum Constant Summary
    • 137 |
    • Enum Constant Detail
    • 138 |
    139 |
  • 140 |
  • 141 |

    Use

    142 |

    Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.

    143 |
  • 144 |
  • 145 |

    Tree (Class Hierarchy)

    146 |

    There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object. The interfaces do not inherit from java.lang.Object.

    147 |
      148 |
    • When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
    • 149 |
    • When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.
    • 150 |
    151 |
  • 152 |
  • 153 |

    Deprecated API

    154 |

    The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.

    155 |
  • 156 |
  • 157 |

    Index

    158 |

    The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.

    159 |
  • 160 |
  • 161 |

    Prev/Next

    162 |

    These links take you to the next or previous class, interface, package, or related page.

    163 |
  • 164 |
  • 165 |

    Frames/No Frames

    166 |

    These links show and hide the HTML frames. All pages are available with or without frames.

    167 |
  • 168 |
  • 169 |

    All Classes

    170 |

    The All Classes link shows all classes and interfaces except non-static nested types.

    171 |
  • 172 |
  • 173 |

    Serialized Form

    174 |

    Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.

    175 |
  • 176 |
  • 177 |

    Constant Field Values

    178 |

    The Constant Field Values page lists the static final fields and their values.

    179 |
  • 180 |
181 | This help file applies to API documentation generated using the standard doclet.
182 | 183 |
184 | 185 | 186 | 187 | 188 | 189 | 190 | 200 |
201 | 228 | 229 |

Copyright © 2018. All rights reserved.

230 | 231 | 232 | -------------------------------------------------------------------------------- /apidocs/org/sonatype/nexus/common/script/class-use/ScriptApi.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Uses of Interface org.sonatype.nexus.common.script.ScriptApi (nexus-integrations-apidocs 3.7.1-02 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 44 |
45 | 72 | 73 |
74 |

Uses of Interface
org.sonatype.nexus.common.script.ScriptApi

75 |
76 |
77 | 172 |
173 | 174 |
175 | 176 | 177 | 178 | 179 | 180 | 181 | 191 |
192 | 219 | 220 |

Copyright © 2018. All rights reserved.

221 | 222 | 223 | -------------------------------------------------------------------------------- /apidocs/org/sonatype/nexus/BlobStoreApi.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | BlobStoreApi (nexus-integrations-apidocs 3.7.1-02 API) 8 | 9 | 10 | 11 | 12 | 13 | 29 | 32 | 33 |
34 | 35 | 36 | 37 | 38 | 39 | 40 | 50 |
51 | 93 | 94 | 95 |
96 |
org.sonatype.nexus
97 |

Interface BlobStoreApi

98 |
99 |
100 |
101 |
    102 |
  • 103 |
    104 |
    All Superinterfaces:
    105 |
    ScriptApi
    106 |
    107 |
    108 |
    109 |
    public interface BlobStoreApi
    110 | extends ScriptApi
    111 |
    BlobStore provisioning capabilities of the repository manager.
    112 |
    113 |
    Since:
    114 |
    3.0
    115 |
    116 |
  • 117 |
118 |
119 |
120 | 152 |
153 |
154 |
    155 |
  • 156 | 157 |
      158 |
    • 159 | 160 | 161 |

      Method Detail

      162 | 163 | 164 | 165 |
        166 |
      • 167 |

        getName

        168 |
        default String getName()
        169 |
        Description copied from interface: ScriptApi
        170 |
        The name of the api provided.
        171 |
        172 |
        Specified by:
        173 |
        getName in interface ScriptApi
        174 |
        175 |
      • 176 |
      177 | 178 | 179 | 180 |
        181 |
      • 182 |

        createFileBlobStore

        183 |
        org.sonatype.nexus.blobstore.api.BlobStoreConfiguration createFileBlobStore(String name,
        184 |                                                                             String path)
        185 |
        Create a new File based BlobStore.
        186 |
        187 |
        Parameters:
        188 |
        name - the name for the new BlobStore
        189 |
        path - the path where the BlobStore should store data
        190 |
        191 |
      • 192 |
      193 |
    • 194 |
    195 |
  • 196 |
197 |
198 |
199 | 200 | 201 |
202 | 203 | 204 | 205 | 206 | 207 | 208 | 218 |
219 | 261 | 262 |

Copyright © 2018. All rights reserved.

263 | 264 | 265 | -------------------------------------------------------------------------------- /apidocs/stylesheet.css: -------------------------------------------------------------------------------- 1 | /* Javadoc style sheet */ 2 | /* 3 | Overall document style 4 | */ 5 | 6 | @import url('resources/fonts/dejavu.css'); 7 | 8 | body { 9 | background-color:#ffffff; 10 | color:#353833; 11 | font-family:'DejaVu Sans', Arial, Helvetica, sans-serif; 12 | font-size:14px; 13 | margin:0; 14 | } 15 | a:link, a:visited { 16 | text-decoration:none; 17 | color:#4A6782; 18 | } 19 | a:hover, a:focus { 20 | text-decoration:none; 21 | color:#bb7a2a; 22 | } 23 | a:active { 24 | text-decoration:none; 25 | color:#4A6782; 26 | } 27 | a[name] { 28 | color:#353833; 29 | } 30 | a[name]:hover { 31 | text-decoration:none; 32 | color:#353833; 33 | } 34 | pre { 35 | font-family:'DejaVu Sans Mono', monospace; 36 | font-size:14px; 37 | } 38 | h1 { 39 | font-size:20px; 40 | } 41 | h2 { 42 | font-size:18px; 43 | } 44 | h3 { 45 | font-size:16px; 46 | font-style:italic; 47 | } 48 | h4 { 49 | font-size:13px; 50 | } 51 | h5 { 52 | font-size:12px; 53 | } 54 | h6 { 55 | font-size:11px; 56 | } 57 | ul { 58 | list-style-type:disc; 59 | } 60 | code, tt { 61 | font-family:'DejaVu Sans Mono', monospace; 62 | font-size:14px; 63 | padding-top:4px; 64 | margin-top:8px; 65 | line-height:1.4em; 66 | } 67 | dt code { 68 | font-family:'DejaVu Sans Mono', monospace; 69 | font-size:14px; 70 | padding-top:4px; 71 | } 72 | table tr td dt code { 73 | font-family:'DejaVu Sans Mono', monospace; 74 | font-size:14px; 75 | vertical-align:top; 76 | padding-top:4px; 77 | } 78 | sup { 79 | font-size:8px; 80 | } 81 | /* 82 | Document title and Copyright styles 83 | */ 84 | .clear { 85 | clear:both; 86 | height:0px; 87 | overflow:hidden; 88 | } 89 | .aboutLanguage { 90 | float:right; 91 | padding:0px 21px; 92 | font-size:11px; 93 | z-index:200; 94 | margin-top:-9px; 95 | } 96 | .legalCopy { 97 | margin-left:.5em; 98 | } 99 | .bar a, .bar a:link, .bar a:visited, .bar a:active { 100 | color:#FFFFFF; 101 | text-decoration:none; 102 | } 103 | .bar a:hover, .bar a:focus { 104 | color:#bb7a2a; 105 | } 106 | .tab { 107 | background-color:#0066FF; 108 | color:#ffffff; 109 | padding:8px; 110 | width:5em; 111 | font-weight:bold; 112 | } 113 | /* 114 | Navigation bar styles 115 | */ 116 | .bar { 117 | background-color:#4D7A97; 118 | color:#FFFFFF; 119 | padding:.8em .5em .4em .8em; 120 | height:auto;/*height:1.8em;*/ 121 | font-size:11px; 122 | margin:0; 123 | } 124 | .topNav { 125 | background-color:#4D7A97; 126 | color:#FFFFFF; 127 | float:left; 128 | padding:0; 129 | width:100%; 130 | clear:right; 131 | height:2.8em; 132 | padding-top:10px; 133 | overflow:hidden; 134 | font-size:12px; 135 | } 136 | .bottomNav { 137 | margin-top:10px; 138 | background-color:#4D7A97; 139 | color:#FFFFFF; 140 | float:left; 141 | padding:0; 142 | width:100%; 143 | clear:right; 144 | height:2.8em; 145 | padding-top:10px; 146 | overflow:hidden; 147 | font-size:12px; 148 | } 149 | .subNav { 150 | background-color:#dee3e9; 151 | float:left; 152 | width:100%; 153 | overflow:hidden; 154 | font-size:12px; 155 | } 156 | .subNav div { 157 | clear:left; 158 | float:left; 159 | padding:0 0 5px 6px; 160 | text-transform:uppercase; 161 | } 162 | ul.navList, ul.subNavList { 163 | float:left; 164 | margin:0 25px 0 0; 165 | padding:0; 166 | } 167 | ul.navList li{ 168 | list-style:none; 169 | float:left; 170 | padding: 5px 6px; 171 | text-transform:uppercase; 172 | } 173 | ul.subNavList li{ 174 | list-style:none; 175 | float:left; 176 | } 177 | .topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited { 178 | color:#FFFFFF; 179 | text-decoration:none; 180 | text-transform:uppercase; 181 | } 182 | .topNav a:hover, .bottomNav a:hover { 183 | text-decoration:none; 184 | color:#bb7a2a; 185 | text-transform:uppercase; 186 | } 187 | .navBarCell1Rev { 188 | background-color:#F8981D; 189 | color:#253441; 190 | margin: auto 5px; 191 | } 192 | .skipNav { 193 | position:absolute; 194 | top:auto; 195 | left:-9999px; 196 | overflow:hidden; 197 | } 198 | /* 199 | Page header and footer styles 200 | */ 201 | .header, .footer { 202 | clear:both; 203 | margin:0 20px; 204 | padding:5px 0 0 0; 205 | } 206 | .indexHeader { 207 | margin:10px; 208 | position:relative; 209 | } 210 | .indexHeader span{ 211 | margin-right:15px; 212 | } 213 | .indexHeader h1 { 214 | font-size:13px; 215 | } 216 | .title { 217 | color:#2c4557; 218 | margin:10px 0; 219 | } 220 | .subTitle { 221 | margin:5px 0 0 0; 222 | } 223 | .header ul { 224 | margin:0 0 15px 0; 225 | padding:0; 226 | } 227 | .footer ul { 228 | margin:20px 0 5px 0; 229 | } 230 | .header ul li, .footer ul li { 231 | list-style:none; 232 | font-size:13px; 233 | } 234 | /* 235 | Heading styles 236 | */ 237 | div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 { 238 | background-color:#dee3e9; 239 | border:1px solid #d0d9e0; 240 | margin:0 0 6px -8px; 241 | padding:7px 5px; 242 | } 243 | ul.blockList ul.blockList ul.blockList li.blockList h3 { 244 | background-color:#dee3e9; 245 | border:1px solid #d0d9e0; 246 | margin:0 0 6px -8px; 247 | padding:7px 5px; 248 | } 249 | ul.blockList ul.blockList li.blockList h3 { 250 | padding:0; 251 | margin:15px 0; 252 | } 253 | ul.blockList li.blockList h2 { 254 | padding:0px 0 20px 0; 255 | } 256 | /* 257 | Page layout container styles 258 | */ 259 | .contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer { 260 | clear:both; 261 | padding:10px 20px; 262 | position:relative; 263 | } 264 | .indexContainer { 265 | margin:10px; 266 | position:relative; 267 | font-size:12px; 268 | } 269 | .indexContainer h2 { 270 | font-size:13px; 271 | padding:0 0 3px 0; 272 | } 273 | .indexContainer ul { 274 | margin:0; 275 | padding:0; 276 | } 277 | .indexContainer ul li { 278 | list-style:none; 279 | padding-top:2px; 280 | } 281 | .contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt { 282 | font-size:12px; 283 | font-weight:bold; 284 | margin:10px 0 0 0; 285 | color:#4E4E4E; 286 | } 287 | .contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd { 288 | margin:5px 0 10px 0px; 289 | font-size:14px; 290 | font-family:'DejaVu Sans Mono',monospace; 291 | } 292 | .serializedFormContainer dl.nameValue dt { 293 | margin-left:1px; 294 | font-size:1.1em; 295 | display:inline; 296 | font-weight:bold; 297 | } 298 | .serializedFormContainer dl.nameValue dd { 299 | margin:0 0 0 1px; 300 | font-size:1.1em; 301 | display:inline; 302 | } 303 | /* 304 | List styles 305 | */ 306 | ul.horizontal li { 307 | display:inline; 308 | font-size:0.9em; 309 | } 310 | ul.inheritance { 311 | margin:0; 312 | padding:0; 313 | } 314 | ul.inheritance li { 315 | display:inline; 316 | list-style:none; 317 | } 318 | ul.inheritance li ul.inheritance { 319 | margin-left:15px; 320 | padding-left:15px; 321 | padding-top:1px; 322 | } 323 | ul.blockList, ul.blockListLast { 324 | margin:10px 0 10px 0; 325 | padding:0; 326 | } 327 | ul.blockList li.blockList, ul.blockListLast li.blockList { 328 | list-style:none; 329 | margin-bottom:15px; 330 | line-height:1.4; 331 | } 332 | ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList { 333 | padding:0px 20px 5px 10px; 334 | border:1px solid #ededed; 335 | background-color:#f8f8f8; 336 | } 337 | ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList { 338 | padding:0 0 5px 8px; 339 | background-color:#ffffff; 340 | border:none; 341 | } 342 | ul.blockList ul.blockList ul.blockList ul.blockList li.blockList { 343 | margin-left:0; 344 | padding-left:0; 345 | padding-bottom:15px; 346 | border:none; 347 | } 348 | ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast { 349 | list-style:none; 350 | border-bottom:none; 351 | padding-bottom:0; 352 | } 353 | table tr td dl, table tr td dl dt, table tr td dl dd { 354 | margin-top:0; 355 | margin-bottom:1px; 356 | } 357 | /* 358 | Table styles 359 | */ 360 | .overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary { 361 | width:100%; 362 | border-left:1px solid #EEE; 363 | border-right:1px solid #EEE; 364 | border-bottom:1px solid #EEE; 365 | } 366 | .overviewSummary, .memberSummary { 367 | padding:0px; 368 | } 369 | .overviewSummary caption, .memberSummary caption, .typeSummary caption, 370 | .useSummary caption, .constantsSummary caption, .deprecatedSummary caption { 371 | position:relative; 372 | text-align:left; 373 | background-repeat:no-repeat; 374 | color:#253441; 375 | font-weight:bold; 376 | clear:none; 377 | overflow:hidden; 378 | padding:0px; 379 | padding-top:10px; 380 | padding-left:1px; 381 | margin:0px; 382 | white-space:pre; 383 | } 384 | .overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link, 385 | .useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link, 386 | .overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover, 387 | .useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover, 388 | .overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active, 389 | .useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active, 390 | .overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited, 391 | .useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited { 392 | color:#FFFFFF; 393 | } 394 | .overviewSummary caption span, .memberSummary caption span, .typeSummary caption span, 395 | .useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span { 396 | white-space:nowrap; 397 | padding-top:5px; 398 | padding-left:12px; 399 | padding-right:12px; 400 | padding-bottom:7px; 401 | display:inline-block; 402 | float:left; 403 | background-color:#F8981D; 404 | border: none; 405 | height:16px; 406 | } 407 | .memberSummary caption span.activeTableTab span { 408 | white-space:nowrap; 409 | padding-top:5px; 410 | padding-left:12px; 411 | padding-right:12px; 412 | margin-right:3px; 413 | display:inline-block; 414 | float:left; 415 | background-color:#F8981D; 416 | height:16px; 417 | } 418 | .memberSummary caption span.tableTab span { 419 | white-space:nowrap; 420 | padding-top:5px; 421 | padding-left:12px; 422 | padding-right:12px; 423 | margin-right:3px; 424 | display:inline-block; 425 | float:left; 426 | background-color:#4D7A97; 427 | height:16px; 428 | } 429 | .memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab { 430 | padding-top:0px; 431 | padding-left:0px; 432 | padding-right:0px; 433 | background-image:none; 434 | float:none; 435 | display:inline; 436 | } 437 | .overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd, 438 | .useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd { 439 | display:none; 440 | width:5px; 441 | position:relative; 442 | float:left; 443 | background-color:#F8981D; 444 | } 445 | .memberSummary .activeTableTab .tabEnd { 446 | display:none; 447 | width:5px; 448 | margin-right:3px; 449 | position:relative; 450 | float:left; 451 | background-color:#F8981D; 452 | } 453 | .memberSummary .tableTab .tabEnd { 454 | display:none; 455 | width:5px; 456 | margin-right:3px; 457 | position:relative; 458 | background-color:#4D7A97; 459 | float:left; 460 | 461 | } 462 | .overviewSummary td, .memberSummary td, .typeSummary td, 463 | .useSummary td, .constantsSummary td, .deprecatedSummary td { 464 | text-align:left; 465 | padding:0px 0px 12px 10px; 466 | } 467 | th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th, 468 | td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{ 469 | vertical-align:top; 470 | padding-right:0px; 471 | padding-top:8px; 472 | padding-bottom:3px; 473 | } 474 | th.colFirst, th.colLast, th.colOne, .constantsSummary th { 475 | background:#dee3e9; 476 | text-align:left; 477 | padding:8px 3px 3px 7px; 478 | } 479 | td.colFirst, th.colFirst { 480 | white-space:nowrap; 481 | font-size:13px; 482 | } 483 | td.colLast, th.colLast { 484 | font-size:13px; 485 | } 486 | td.colOne, th.colOne { 487 | font-size:13px; 488 | } 489 | .overviewSummary td.colFirst, .overviewSummary th.colFirst, 490 | .useSummary td.colFirst, .useSummary th.colFirst, 491 | .overviewSummary td.colOne, .overviewSummary th.colOne, 492 | .memberSummary td.colFirst, .memberSummary th.colFirst, 493 | .memberSummary td.colOne, .memberSummary th.colOne, 494 | .typeSummary td.colFirst{ 495 | width:25%; 496 | vertical-align:top; 497 | } 498 | td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover { 499 | font-weight:bold; 500 | } 501 | .tableSubHeadingColor { 502 | background-color:#EEEEFF; 503 | } 504 | .altColor { 505 | background-color:#FFFFFF; 506 | } 507 | .rowColor { 508 | background-color:#EEEEEF; 509 | } 510 | /* 511 | Content styles 512 | */ 513 | .description pre { 514 | margin-top:0; 515 | } 516 | .deprecatedContent { 517 | margin:0; 518 | padding:10px 0; 519 | } 520 | .docSummary { 521 | padding:0; 522 | } 523 | 524 | ul.blockList ul.blockList ul.blockList li.blockList h3 { 525 | font-style:normal; 526 | } 527 | 528 | div.block { 529 | font-size:14px; 530 | font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; 531 | } 532 | 533 | td.colLast div { 534 | padding-top:0px; 535 | } 536 | 537 | 538 | td.colLast a { 539 | padding-bottom:3px; 540 | } 541 | /* 542 | Formatting effect styles 543 | */ 544 | .sourceLineNo { 545 | color:green; 546 | padding:0 30px 0 0; 547 | } 548 | h1.hidden { 549 | visibility:hidden; 550 | overflow:hidden; 551 | font-size:10px; 552 | } 553 | .block { 554 | display:block; 555 | margin:3px 10px 2px 0px; 556 | color:#474747; 557 | } 558 | .deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink, 559 | .overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel, 560 | .seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink { 561 | font-weight:bold; 562 | } 563 | .deprecationComment, .emphasizedPhrase, .interfaceName { 564 | font-style:italic; 565 | } 566 | 567 | div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase, 568 | div.block div.block span.interfaceName { 569 | font-style:normal; 570 | } 571 | 572 | div.contentContainer ul.blockList li.blockList h2{ 573 | padding-bottom:0px; 574 | } 575 | --------------------------------------------------------------------------------