diff --git a/docs/developer-guide/add-logging.md b/docs/developer-guide/add-logging.md index d15de11b..469488a0 100644 --- a/docs/developer-guide/add-logging.md +++ b/docs/developer-guide/add-logging.md @@ -10,7 +10,7 @@ The logging in the application is set up using: ### Configuration -If you have `strongbox-commons` as a (direct, or transitive) dependency of your module, you will be able to use the logging, without having to specify the dependencies yourself. If, for one reason, or another, you do not want to have this dependency, you will need the following dependencies instead: +If you have `strongbox-commons` as a (direct or transitive) dependency of your module, you will be able to use the logging, without having to specify the dependencies yourself. If, for one reason or another, you do not want to have this dependency, you will need the following dependencies instead: ```xml @@ -56,7 +56,7 @@ In order to exclude them as transitive dependencies, you will need to have somet ## Logging Configuration File Location -The logging is controlled via the [strongbox/strongbox-resources/strongbox-common-resources/src/main/resources/logback.xml]. +The logging is controlled via the [strongbox/strongbox-resources/strongbox-common-resources/src/main/resources/logbac-spring.xml]. This resource should be copied wherever necessary using: ```xml @@ -94,9 +94,9 @@ This resource should be copied wherever necessary using: The logging can be configured via the REST API. We have created a separate project called [logback-configuration] for this purpose. -For details on how to configure the logging and resolve the log files via the REST API, please visit the rest documentation +For details on how to configure the logging and resolve the log files via the REST API, please visit the REST documentation in your Strongbox instance at `http://localhost:48080/docs/rest/api.html`. [logback-configuration]: https://github.com/carlspring/logback-configuration -[strongbox/strongbox-resources/strongbox-common-resources/src/main/resources/logback.xml]: https://github.com/strongbox/strongbox/blob/master/strongbox-resources/strongbox-common-resources/src/main/resources/logback.xml +[strongbox/strongbox-resources/strongbox-common-resources/src/main/resources/logback.xml]: https://github.com/strongbox/strongbox/blob/master/strongbox-resources/strongbox-common-resources/src/main/resources/logback-spring.xml diff --git a/docs/developer-guide/building-strongbox-against-strongbox.md b/docs/developer-guide/building-strongbox-against-strongbox.md new file mode 100644 index 00000000..3192f8f1 --- /dev/null +++ b/docs/developer-guide/building-strongbox-against-strongbox.md @@ -0,0 +1,169 @@ +# Building Strongbox against Strongbox + +We like our dog food and we try it all the time! :smiley: + +There will be many cases where you need to test things against either a full-blown Strongbox (via `strongbox-distribution`) +or the `strongbox-web-core`. The following article shows you how to do so. + +## Pre-requisites + +You will need to use the following Maven settings file (that we've called `settings-strongbox-localhost` and placed under `~/.m2/settings-strongbox-localhost`): + +``` + + + + + + strongbox + strongbox + http://localhost:48080/storages/public/public-group/ + * + + + + + + carlspring-repositories + + + true + + + + + strongbox + strongbox + http://localhost:48080/storages/public/public-group/ + default + + + + + strongbox + strongbox + http://localhost:48080/storages/public/public-group/ + default + + + + + + + + releases + admin + password + + + snapshots + admin + password + + + +``` + +This settings file will ensure that all required artifacts, plugins and extensions are resolved via the running instance of Strongbox. In addition, it will override Maven Central as a fallback repository, so everything required will indeed +be resolved through `http://localhost:48080/storages/public/public-group/` which is a group repository that includes +all the hosted repositories in Strongbox, as well as all defined proxy repositories. + +## Building Strongbox Against The `strongbox-web-core` + +1. Clone and build the `strongbox` project (either with `mvn clean install`, or `mvn clean install -DskipTests`, based on your needs) +2. In the `strongbox-web-core` module, execute the following in order to start Strongbox inside a Jetty instance waiting for connections: + ``` + mvn clean install spring-boot:run + ``` +3. In a separately checked out `strongbox` project execute: +``` +carlspring@carlspring:/java/strongbox> mvn -s ~/.m2/settings-strongbox-localhost.xml -Dmaven.repo.local=.m2/repository clean deploy -DaltDeploymentRepository=snapshots::default::http://localhost:48080/storages/storage0/snapshots/ -DskipTests -fn +... +[INFO] --- maven-install-plugin:2.4:install (default-install) @ strongbox-masterbuild --- +[INFO] Installing /java/strongbox/pom.xml to /java/strongbox/.m2/repository/org/carlspring/strongbox/strongbox-masterbuild/1.0-SNAPSHOT/strongbox-masterbuild-1.0-SNAPSHOT.pom +[INFO] +[INFO] --- maven-deploy-plugin:2.7:deploy (default-deploy) @ strongbox-masterbuild --- +[INFO] Using alternate deployment repository snapshots::default::http://localhost:48080/storages/storage0/snapshots/ +Downloading: http://localhost:48080/storages/storage0/snapshots/org/carlspring/strongbox/strongbox-masterbuild/1.0-SNAPSHOT/maven-metadata.xml +Uploading: http://localhost:48080/storages/storage0/snapshots/org/carlspring/strongbox/strongbox-masterbuild/1.0-SNAPSHOT/strongbox-masterbuild-1.0-20180128.060409-1.pom +Uploaded: http://localhost:48080/storages/storage0/snapshots/org/carlspring/strongbox/strongbox-masterbuild/1.0-SNAPSHOT/strongbox-masterbuild-1.0-20180128.060409-1.pom (4 KB at 5.6 KB/sec) +Downloading: http://localhost:48080/storages/storage0/snapshots/org/carlspring/strongbox/strongbox-masterbuild/maven-metadata.xml +Uploading: http://localhost:48080/storages/storage0/snapshots/org/carlspring/strongbox/strongbox-masterbuild/1.0-SNAPSHOT/maven-metadata.xml +Uploaded: http://localhost:48080/storages/storage0/snapshots/org/carlspring/strongbox/strongbox-masterbuild/1.0-SNAPSHOT/maven-metadata.xml (618 B at 1.2 KB/sec) +Uploading: http://localhost:48080/storages/storage0/snapshots/org/carlspring/strongbox/strongbox-masterbuild/maven-metadata.xml +Uploaded: http://localhost:48080/storages/storage0/snapshots/org/carlspring/strongbox/strongbox-masterbuild/maven-metadata.xml (303 B at 0.6 KB/sec) +[INFO] ------------------------------------------------------------------------ +[INFO] Reactor Summary: +[INFO] +[INFO] Strongbox: Parent .................................. SUCCESS [01:03 min] +[INFO] Strongbox: Resources [Common] ...................... SUCCESS [01:59 min] +[INFO] Strongbox: Resources [Storage API] ................. SUCCESS [ 4.608 s] +[INFO] Strongbox: Resources [Web] ......................... SUCCESS [ 25.098 s] +[INFO] Strongbox: Resources ............................... SUCCESS [ 1.816 s] +... +[INFO] ------------------------------------------------------------------------ +[INFO] BUILD SUCCESS +[INFO] ------------------------------------------------------------------------ +[INFO] Total time: 13:37 min +[INFO] Finished at: 2018-01-28T06:04:10+00:00 +[INFO] Final Memory: 125M/1133M +[INFO] ------------------------------------------------------------------------ +``` + +## Building Strongbox Against A Full-blown Strongbox (`strongbox-distribution`) +1. Build `strongbox` like this: + ``` + mvn clean install -DskipTests + ``` +2. Go inside `./strongbox-distribution`: + ``` + cd strongbox-distribution/target + ``` +3. Extract the distribution archive: + ``` + tar -zxf *gz + ``` +4. Start Strongbox: + ``` + cd strongbox-distribution-*/strongbox-*/ + ./bin/strongbox console + ``` +5. Build the `strongbox` project against the running Strongbox instance: +``` +$ mvn clean deploy \ + -s ~/.m2/settings-strongbox-localhost.xml \ + -Dmaven.repo.local=.m2/repository \ + -DaltDeploymentRepository=snapshots::default::http://localhost:48080/storages/storage0/snapshots/ \ + -DskipTests \ + -fn +... +[INFO] --- maven-install-plugin:2.4:install (default-install) @ strongbox-masterbuild --- +[INFO] Installing /java/strongbox/pom.xml to /java/strongbox/.m2/repository/org/carlspring/strongbox/strongbox-masterbuild/1.0-SNAPSHOT/strongbox-masterbuild-1.0-SNAPSHOT.pom +[INFO] +[INFO] --- maven-deploy-plugin:2.7:deploy (default-deploy) @ strongbox-masterbuild --- +[INFO] Using alternate deployment repository snapshots::default::http://localhost:48080/storages/storage0/snapshots/ +Downloading: http://localhost:48080/storages/storage0/snapshots/org/carlspring/strongbox/strongbox-masterbuild/1.0-SNAPSHOT/maven-metadata.xml +Uploading: http://localhost:48080/storages/storage0/snapshots/org/carlspring/strongbox/strongbox-masterbuild/1.0-SNAPSHOT/strongbox-masterbuild-1.0-20180128.060409-1.pom +Uploaded: http://localhost:48080/storages/storage0/snapshots/org/carlspring/strongbox/strongbox-masterbuild/1.0-SNAPSHOT/strongbox-masterbuild-1.0-20180128.060409-1.pom (4 KB at 5.6 KB/sec) +Downloading: http://localhost:48080/storages/storage0/snapshots/org/carlspring/strongbox/strongbox-masterbuild/maven-metadata.xml +Uploading: http://localhost:48080/storages/storage0/snapshots/org/carlspring/strongbox/strongbox-masterbuild/1.0-SNAPSHOT/maven-metadata.xml +Uploaded: http://localhost:48080/storages/storage0/snapshots/org/carlspring/strongbox/strongbox-masterbuild/1.0-SNAPSHOT/maven-metadata.xml (618 B at 1.2 KB/sec) +Uploading: http://localhost:48080/storages/storage0/snapshots/org/carlspring/strongbox/strongbox-masterbuild/maven-metadata.xml +Uploaded: http://localhost:48080/storages/storage0/snapshots/org/carlspring/strongbox/strongbox-masterbuild/maven-metadata.xml (303 B at 0.6 KB/sec) +[INFO] ------------------------------------------------------------------------ +[INFO] Reactor Summary: +[INFO] +[INFO] Strongbox: Parent .................................. SUCCESS [01:03 min] +[INFO] Strongbox: Resources [Common] ...................... SUCCESS [01:59 min] +[INFO] Strongbox: Resources [Storage API] ................. SUCCESS [ 4.608 s] +[INFO] Strongbox: Resources [Web] ......................... SUCCESS [ 25.098 s] +[INFO] Strongbox: Resources ............................... SUCCESS [ 1.816 s] +... +[INFO] ------------------------------------------------------------------------ +[INFO] BUILD SUCCESS +[INFO] ------------------------------------------------------------------------ +[INFO] Total time: 13:37 min +[INFO] Finished at: 2018-01-28T06:04:10+00:00 +[INFO] Final Memory: 125M/1133M +[INFO] ------------------------------------------------------------------------ +``` diff --git a/docs/developer-guide/building-the-code-with-docker.md b/docs/developer-guide/building-the-code-with-docker.md index 50d5d390..57346936 100644 --- a/docs/developer-guide/building-the-code-with-docker.md +++ b/docs/developer-guide/building-the-code-with-docker.md @@ -3,17 +3,17 @@ ## Introduction Docker is awesome and we are using it to build and test almost everything. -It has proven to be quite fast and convenient way to easily reproduce issues. -We encourage you to have a decent version of Docker installed on your machine +It has proven to be quite a fast and convenient way to easily reproduce issues. +We encourage you to have a recent version of Docker installed on your machine so that you can debug or reproduce issues easier. -You should note that we are mostly using Linux so this guide is more focused on how to do things on Linux distributions. +You should note that we are mostly using Linux, so this guide is more focused on how to do things on Linux distributions. However, things under Windows shouldn't be that different. ## Docker installation -Depending on your OS and distribution you can install different versions of Docker CE (Community Edition). -In most cases your distribution will have it's own package of Docker which works fine. +Depending on your OS and distribution, you can install different versions of Docker CE (Community Edition). +In most cases, your distribution will have its own package of Docker which works fine. Please head to the docker [installation manual](https://docs.docker.com/install/) pages to check how to install it on your machine: @@ -127,7 +127,7 @@ This might take a while, but in the end you should have a successful build. ## Making life easier -If you have already checked out our [strongboxci/alpine] repository you would have noticed the amount of +If you have already checked out our [strongboxci/alpine] repository you would have noticed the number of different images we have. Trying to remember all of them and the way you need to setup the container is tedious and unnecessary. We have created a [.bashrc]({{resources}}/docker/bashrc-strongbox) with commands you can execute to easily get a container up and running @@ -137,7 +137,7 @@ Our `.bashrc` has two types of commands which: 1. Start a container by mounting the current working directory as `workspace` (i.e `dockerMvn35`, `dockerGradle45`, etc) 2. Start a container and automatically clone a project from github and use that as the `workspace`. (i.e. `dockerMvn35Checkout`, `dockerGradle45Checkout`, etc) -If you don't remember arguments the command needs you can always execute `dockerMvn35 --help` and it will print them to you as well as an example. +If you don't remember arguments the command needs, you can always execute `dockerMvn35 --help` and it will print them to you as well as an example. ### Setting up `~/.bashrc` @@ -151,7 +151,7 @@ echo "\$HOME/.bashrc-strongbox" >> ~/.bashrc ``` You can now either open up a new terminal or execute `source ~/.bashrc` -Have fun building things in docker :smile: +Have fun building things in docker! :smile: ### Example commands @@ -166,7 +166,7 @@ Have fun building things in docker :smile: dockerMvn35Checkout strongbox master/branch/PR-1234 "mvn clean install" ``` -* Use current working directory to build project +* Use the current working directory to build the project ``` cd /some/path dockerMvn35 diff --git a/docs/developer-guide/building-the-code.md b/docs/developer-guide/building-the-code.md index cda8ea84..3e777909 100644 --- a/docs/developer-guide/building-the-code.md +++ b/docs/developer-guide/building-the-code.md @@ -80,7 +80,7 @@ Then please make sure that: * You don't have any other test in progress (e.g. halted by debugger process) -The reason for this failure is that OrientDB can't start, if another OrientDB process is running an listening on the same port. +The reason for this failure is that OrientDB can't start, if another OrientDB process is running and listening on the same port. ### Filename too long (Windows 7 and 10) @@ -99,7 +99,7 @@ If you are getting one of these errors: Then you are likely hitting a well-known issue with long paths under Windows. -Executing command below should fix the issue: +Executing the command below should fix the issue: ``` git config --system core.longpaths true diff --git a/docs/developer-guide/coding-convention.md b/docs/developer-guide/coding-convention.md index e9460264..38af55b4 100644 --- a/docs/developer-guide/coding-convention.md +++ b/docs/developer-guide/coding-convention.md @@ -3,7 +3,7 @@ ## Reasoning It is important to have consistency across the codebase. This won't necessarily make your code work better, but it might -help make it more understandable, time-consuming and less irritating to go through when doing a code review of your changes. +help make it more understandable, time-consuming, and less irritating to go through when doing a code review of your changes. While to some this will seem like a nuisance, with no real benefit to the actual code, and while we do understand this point of view, we think that reading `diff`-s should be quick and easy. Accepting a pull request requires for it to @@ -62,18 +62,18 @@ and whether, or not it will impact something else. All of this takes time, which ``` * When re-indenting code, please make a single commit with just the indentation changes and make sure you describe that - this is just an re-indentation change in the commit message. Mixing reformatting and actual functional changes in the + this is just a re-indentation change in the commit message. Mixing reformatting and actual functional changes in the same commit makes things much more obscure to track and figure out. * Don't reformat entire files, unless absolutely necessary! This makes it harder (and more time-consuming) to check what changes you've actually made. -* Try not to re-order code imports. Sometimes, while optimizing imports this is not possible, but re-ordering a long +* Try not to re-order code imports. Sometimes, while optimizing imports, this is not possible, but re-ordering a long list of imports can make a diff hard to read. ## Code Example -Please, consider the following an example of how to indent your code. +Please consider the following an example of how to indent your code. ??? success "Example class with proper formatting" diff --git a/docs/developer-guide/getting-started-with-persistence.md b/docs/developer-guide/getting-started-with-persistence.md index db9d3c90..ff878b14 100644 --- a/docs/developer-guide/getting-started-with-persistence.md +++ b/docs/developer-guide/getting-started-with-persistence.md @@ -38,7 +38,7 @@ $ cd /opt/strongbox $ STRONGBOX_VAULT=/opt/strongbox-vault STRONGBOX_ORIENTDB_STUDIO_ENABLED=true ./bin/strongbox console ``` -Please, note that the `STRONGBOX_VAULT` environment variable needs to be pointing to an absolute path for this to work. +Please note that the `STRONGBOX_VAULT` environment variable needs to be pointing to an absolute path for this to work. As with the source distribution, you can set additional environment variables to further configure OrientDB Studio: @@ -81,7 +81,7 @@ the `strongbox-data-service` module. ## Creating Your Entity Class Let's now assume that you have a POJO and you need to save it to the database (and that you probably have at least -CRUD operation's implemented in it as well). Place your code under the `org.carlspring.strongbox.domain.yourstuff` +CRUD operations implemented in it as well). Place your code under the `org.carlspring.strongbox.domain.yourstuff` package. For the sake of the example, let's pick `MyEntity` as the name of your entity. If you want to store that entity properly you need to adopt the following rules: @@ -90,7 +90,7 @@ If you want to store that entity properly you need to adopt the following rules: the superclass. * Define getters and setters according to the `JavaBeans` coding convention for all non-transient properties in your class. -* Define a default empty constructor for safety (even if the compiler will create one for you, if you don't define any +* Define a default empty constructor for safety (even if the compiler will create one for you and you don't define any other constructors) and follow the `JPA` and `java.io.Serializable` standards. * Override the `equals() `and `hashCode()` methods according to java `hashCode` contract (because your entity could be used in collection classes such as `java.util.Set` and if you don't define such methods properly other developers or @@ -164,7 +164,7 @@ public class MyEntity ## Creating a DAO Layer -First of all you will need to extend the `CrudService` with the second type parameter that corresponds to your ID's data type. Usually it's just strings. +First of all, you will need to extend the `CrudService` with the second type parameter that corresponds to your ID's data type. Usually it's just strings. !!! tip "To read more about ID's in OrientDB, check the manual" @@ -196,20 +196,20 @@ After that you will need to define an implementation of your service class. Follow these rules for the service implementation: -* Inherit your CRUD service from `CommonCrudService` class; -* Name it like your service interface with an `Impl` suffix, for example `MyEntityServiceImpl`; -* Annotate your class with the Spring `@Service` and `@Transactional` annotations; -* Do **not** define your service class as public and use interface instead of class for injection (with `@Autowired`); - this follows the best practice principles from Joshua Bloch 'Effective Java' book called Programming to Interface; -* _Optional_ - define any methods you need to work with your `MyEntity` class; these methods mostly should be based on - common API form `javax.persistence.EntityManager`, or custom queries (see example below); +* Inherit your CRUD service from the `CommonCrudService` class. +* Name it like your service interface with an `Impl` suffix, for example `MyEntityServiceImpl`. +* Annotate your class with the Spring `@Service` and `@Transactional` annotations. +* Do **not** define your service class as public and use an interface instead of a class for injection (with `@Autowired`). + This follows the best practice principles from Joshua Bloch 'Effective Java' book called Programming to Interface. +* _Optional_ - define any methods you need to work with your `MyEntity` class. These methods should mostly be based on + common API form `javax.persistence.EntityManager`, or custom queries (see example below). * !!! warning "Avoid query parameters construction through string concatenation!" Please avoid using query parameter construction through string concatenation! This usually leads to [SQL Injection](https://en.wikipedia.org/wiki/SQL_injection) issues! Bad query example: `String sQuery = "select * from MyEntity where proprety='" + propertyValue + "'"`; - What you should do instead is to create a service which does properly assigns the parameters. + What you should do instead is to create a service which properly assigns the parameters. Here's an example service: ```java @Transactional diff --git a/docs/developer-guide/git/rebase-vs-merge.md b/docs/developer-guide/git/rebase-vs-merge.md index 0930cf67..51c48986 100644 --- a/docs/developer-guide/git/rebase-vs-merge.md +++ b/docs/developer-guide/git/rebase-vs-merge.md @@ -3,7 +3,7 @@ ## Conceptual Overview The first thing to understand about `git rebase` is that it solves the same problem as git merge. Both of these commands -are designed to integrate changes from one branch into another branch—they just do it in very different ways. +are designed to integrate changes from one branch into another branch. They just do it in very different ways. Consider what happens when you start working on a new feature in a dedicated branch, then another team member updates the `master` branch with new commits. This results in a forked history, which should be familiar to anyone who has used @@ -18,7 +18,7 @@ new commits into your `feature` branch, you have two options: `merging` or `reba ??? danger "Please avoid using this option!" Please avoid using this option. It creates unnecessary noise in your PRs and makes it ***extremely*** hard to - follow your real changes. We have included this information because it will give you better understanding of why we + follow your real changes. We have included this information because it will give you a better understanding of why we prefer `rebasing` over `merging`. The easiest option is to merge the `master` branch into the feature branch using something like the following: @@ -51,7 +51,7 @@ to understand the history of the project or branch you are working on. !!! success "We prefer this option over `merging`" -As an alternative to merging, you can rebase the feature branch onto master branch using the following commands: +As an alternative to merging, you can rebase the feature branch onto the master branch using the following commands: ``` git checkout feature @@ -59,7 +59,7 @@ git rebase master ``` This moves the entire `feature` branch to begin on the tip of the master branch, effectively incorporating all of -the new commits in `master`. But, instead of using a `merge` commit, `rebasing` re-writes the project history by +the new commits in `master`. Instead of using a `merge` commit, `rebasing` re-writes the project history by creating brand new commits for each commit in the original branch. ![](images/03.svg) @@ -97,7 +97,7 @@ However, before executing this command, please be **sure** nobody else is workin ## But how do I rebase? Before you start, it is a good idea to backup your current project. If this is your first time doing a rebase, you can -screw things up and loose/damage the work you've already done. So better safe, than sorry. (If you are a pro - what are +screw things up and lose/damage the work you've already done. So better safe than sorry. (If you are a pro - what are you even doing here? :smile: ) @@ -114,10 +114,10 @@ Steps: ```linenums="1" $ git remote add upstream git@github.com:strongbox/strongbox.git $ git remote -v - origin git@github.com:your-username/strongbox.git (fetch) - origin git@github.com:your-username/strongbox.git (push) - upstream git@github.com:strongbox/strongbox.git (fetch) - upstream git@github.com:strongbox/strongbox.git (push) + origin git@github.com:your-username/strongbox.git (fetch) + origin git@github.com:your-username/strongbox.git (push) + upstream git@github.com:strongbox/strongbox.git (fetch) + upstream git@github.com:strongbox/strongbox.git (push) ``` * Sync your fork @@ -156,7 +156,7 @@ You can also check Idea's manual for [Resolving Conflicts] #### Command line -If you are command line lover, you can execute the commands manually: +If you are a command line lover, you can execute the commands manually: ```linenums="1" git checkout feature-branch @@ -167,7 +167,7 @@ However, when conflicts arise, it could be a bit challenging to fix them from yo #### Finally -Once you are done rebasing and you have ensured that the code builds as well as the tests are passing, then you will +Once you are done rebasing and you have ensured that the code builds and the tests are passing, then you will need to force push your branch (remember the [Force Pushing](#force-pushing) section?) ``` diff --git a/docs/developer-guide/how-to-implement-spring-controllers.md b/docs/developer-guide/how-to-implement-spring-controllers.md index 0c4b6a6a..9165bcac 100644 --- a/docs/developer-guide/how-to-implement-spring-controllers.md +++ b/docs/developer-guide/how-to-implement-spring-controllers.md @@ -3,9 +3,9 @@ ## Preface This guideline aims to outline some of the basic expectations that must be met before you can commit your code. The scope -of this guide are controllers which will be used by the front-end. Controllers which are specific to handling traffic -such as downloading/uploading/processing artifacts are out of this scope and need to be discussed before proceeding. -In case you have doubts, conflicts or any questions/ideas, please don't hesitate to message us on gitter! +of this guide are controllers which will be used by the front-end. Controllers, which are specific to handling traffic +such as downloading/uploading/processing artifacts, are out of this scope and need to be discussed before proceeding. +In case you have doubts, conflicts, or any questions/ideas, please don't hesitate to message us on gitter! The key words "**MUST**", "**MUST NOT**", "**REQUIRED**", "**SHALL**", "**SHALL NOT**", "**SHOULD**", "**SHOULD NOT**", "**RECOMMENDED**", "**MAY**", and "**OPTIONAL**" in this document are to be interpreted as described in [RFC 2119](https://tools.ietf.org/html/rfc2119). @@ -21,7 +21,7 @@ or a proper sub-directory in that path.
-[2.](#general-rule-2) You **MUST** have test cases which cover as much as possible your controller. +[2.](#general-rule-2) You **MUST** have test cases which cover your controller as much as possible.
@@ -30,11 +30,11 @@ or a proper sub-directory in that path.
[4.](#general-rule-4) If your controller/method is going to be processing data submitted by a client, you **MUST** use -Spring Form Validation and follow the [Spring Form Validation Rules](#form-validation) which also shows an example. +Spring Form Validation and follow the [Spring Form Validation Rules](#form-validation), which also shows an example.
-[5.](#general-rule-5) You **MUST** respond with an appropriate status code and `successful` or `failed` message +[5.](#general-rule-5) You **MUST** respond with an appropriate status code and a `successful` or `failed` message when an action has been completed (i.e. user created/updated/deleted). `BaseController` has already implemented methods for these cases. - Status code for **successful** operations **MUST** be `200 OK` diff --git a/docs/developer-guide/ide-setup/eclipse.md b/docs/developer-guide/ide-setup/eclipse.md index 6dcff9c9..1e1c92a6 100644 --- a/docs/developer-guide/ide-setup/eclipse.md +++ b/docs/developer-guide/ide-setup/eclipse.md @@ -1,6 +1,6 @@ # Eclipse -!!! tip "Before continuing, please make sure you've built the code using [Building the code] section." +!!! tip "Before continuing, please make sure you've built the code using the [Building the code] section." ## Choose Eclipse distribution The `Eclipse IDE for Java Developers` package is a sufficient base for strongbox project development. @@ -23,7 +23,7 @@ You should already have created an empty workspace - this is the default behavio ### Import Maven project * Choose `File -> Import -> Maven -> Existing Maven Projects` * Point the `Root Directory` to the strongbox cloned repository. -* Click `Finish` button. +* Click the `Finish` button. ![Import -> Existing Maven Project -> Finish][Import Maven Project] ### Workaround m2e connectors @@ -42,11 +42,11 @@ If a popup `Discover m2e connectors` appears - click `Resolve All Later` and `Fi ![strongbox-storage-nuget-layout-provider/src/main/antlr4 -> Build Path -> Use as Source Folder][Nuget ANTLR Build Path] ### Configure `strongbox-aql` project -* Expand the `src/main` directory and select `groovy` and `twig` folders, then right click and pick `Build path -> Use as Source Folder` +* Expand the `src/main` directory and select the `groovy` and `twig` folders, then right click and pick `Build path -> Use as Source Folder` ![strongbox-aql/src/main/groovy & twig -> Build Path -> Use as Source Folder][AQL groovy and twig Build Path] -* Right click the project and pick Properties - * `Java Build Path -> Libraries -> Add Library -> Groovy Runtime Libraries`. Note that if on right click you pick directly Build path adding the groovy libraries gives an error +* Right click the project and click Properties + * `Java Build Path -> Libraries -> Add Library -> Groovy Runtime Libraries`. Note that if on right click you pick Build path directly, adding the groovy libraries gives an error ![strongbox-aql -> Properties -> Java Build Path -> Add Library -> Groovy Runtime Libraries][AQL groovy project nature] * `Project Natures -> Add -> Groovy Nature` ![strongbox-aql -> Properties -> Project Natures -> Add -> Confirm Project Nature update -> Groovy Nature][AQL groovy libraries in Build Path] diff --git a/docs/developer-guide/layout-providers/how-to-implement-your-own-repository-format.md b/docs/developer-guide/layout-providers/how-to-implement-your-own-repository-format.md index 4746c41a..a7ab125d 100644 --- a/docs/developer-guide/layout-providers/how-to-implement-your-own-repository-format.md +++ b/docs/developer-guide/layout-providers/how-to-implement-your-own-repository-format.md @@ -43,7 +43,7 @@ This is how it looks like: ![Strongbox Repository, Layout and Storage Provider Classes][classes] -You will need to implement following entities: +You will need to implement the following entities: - `ConcreteLayoutFileSystemProvider` - `ConcreteLayoutFileSystem` @@ -86,7 +86,7 @@ Below is the set of base classes which need to be extended: - `LayoutFileSystemProvider` - `AbstractLayoutProvider` -Almost all components in Strongbox are managed by Spring's IoC container, the same goes for the for layout-related +Almost all components in Strongbox are managed by Spring's IoC container, the same goes for the layout-related components and there should be the following factories to put everything into context: - `LayoutFileSystemProviderFactory` @@ -94,7 +94,7 @@ components and there should be the following factories to put everything into co ### Putting It All Together -Strongbox has plugable layout providers, so once you have impelemted all the extension points, it should work out of the box. +Strongbox has plugable layout providers, so once you have implemented all the extension points, it should work out of the box. Below you can see how the general flow goes, based on the artifact download example: @@ -115,7 +115,7 @@ Below you can see how the general flow goes, based on the artifact download exam [Artifact Coordinates]: ../../knowledge-base/artifact-coordinates.md [Artifact Coordinate Validators]: ../../knowledge-base/artifact-coordinate-validators/artifact-coordinate-validators.md -[ArtifactCoordinates.java]: https://github.com/strongbox/strongbox/blob/master/strongbox-commons/src/main/java/org/carlspring/strongbox/artifact/coordinates/ArtifactCoordinates.java +[ArtifactCoordinates.java]: https://github.com/strongbox/strongbox/blob/895112251c143ebc711924c582bc022c51656d26/strongbox-storage/strongbox-storage-api/src/main/java/org/carlspring/strongbox/artifact/coordinates/ArtifactCoordinates.java [BaseArtifactController.java]: https://github.com/strongbox/strongbox/blob/master/strongbox-web-core/src/main/java/org/carlspring/strongbox/controllers/BaseArtifactController.java [Layout Providers]: ../../knowledge-base/layout-providers.md [Maven 2 Layout Provider]: ./maven-2-layout-provider.md diff --git a/docs/developer-guide/layout-providers/maven-2-layout-provider.md b/docs/developer-guide/layout-providers/maven-2-layout-provider.md index 8e2d851c..36a4851f 100644 --- a/docs/developer-guide/layout-providers/maven-2-layout-provider.md +++ b/docs/developer-guide/layout-providers/maven-2-layout-provider.md @@ -46,7 +46,7 @@ The Maven 2 layout provider uses the [OrientDB (default)](../search-providers#or ## Classes of Interest -The following are some of the most important classes you will need to be familiar with in order to work on this layout provider: +The following are some of the more important classes you will need to be familiar with in order to work on this layout provider: | Coordinate | Description | |:-------------|:------------| @@ -76,7 +76,7 @@ The following are some of the most important classes you will need to be familia [ArtifactIndexesServiceImpl]: https://github.com/strongbox/strongbox/blob/master/strongbox-storage/strongbox-storage-layout-providers/strongbox-storage-maven-layout/strongbox-storage-maven-layout-provider/src/main/java/org/carlspring/strongbox/services/impl/ArtifactIndexesServiceImpl.java [MavenIndexerSearchProvider]: https://github.com/strongbox/strongbox/blob/master/strongbox-storage/strongbox-storage-layout-providers/strongbox-storage-maven-layout/strongbox-storage-maven-layout-provider/src/main/java/org/carlspring/strongbox/providers/search/MavenIndexerSearchProvider.java [ArtifactMetadataServiceImpl]: https://github.com/strongbox/strongbox/blob/master/strongbox-storage/strongbox-storage-layout-providers/strongbox-storage-maven-layout/strongbox-storage-maven-layout-provider/src/main/java/org/carlspring/strongbox/services/impl/ArtifactMetadataServiceImpl.java -[MavenArtifactController]: https://github.com/strongbox/strongbox/blob/master/strongbox-web-core/src/main/java/org/carlspring/strongbox/controllers/maven/MavenArtifactController.java +[MavenArtifactController]: https://github.com/strongbox/strongbox/blob/e8beb1f7b97483355f55045c8947decdc1b1c26b/strongbox-web-core/src/main/java/org/carlspring/strongbox/controllers/layout/maven/MavenArtifactController.java [Maven Metadata]: ../metadata/maven-metadata.md [Maven Indexer]: ../maven-indexer.md [search provider]: ../search-providers.md diff --git a/docs/developer-guide/layout-providers/npm-layout-provider.md b/docs/developer-guide/layout-providers/npm-layout-provider.md index c0a28fba..cd243fed 100644 --- a/docs/developer-guide/layout-providers/npm-layout-provider.md +++ b/docs/developer-guide/layout-providers/npm-layout-provider.md @@ -29,7 +29,7 @@ Following [CLI commands](https://docs.npmjs.com/cli/npm) supported: ### Classes of Interest -The following are some of the most important classes you will need to be familiar with in order to work on this layout provider: +The following are some of the more important classes you will need to be familiar with in order to work on this layout provider: | Coordinate | Description | |:-------------|:------------| @@ -49,5 +49,5 @@ The following are some of the most important classes you will need to be familia [NpmLayoutProvider]: https://github.com/strongbox/strongbox/blob/master/strongbox-storage/strongbox-storage-layout-providers/strongbox-storage-npm-layout-provider/src/main/java/org/carlspring/strongbox/providers/layout/NpmLayoutProvider.java [NpmRepositoryFeatures]: https://github.com/strongbox/strongbox/blob/master/strongbox-storage/strongbox-storage-layout-providers/strongbox-storage-npm-layout-provider/src/main/java/org/carlspring/strongbox/repository/NpmRepositoryFeatures.java [NpmRepositoryManagementStrategy]: https://github.com/strongbox/strongbox/blob/master/strongbox-storage/strongbox-storage-layout-providers/strongbox-storage-npm-layout-provider/src/main/java/org/carlspring/strongbox/repository/NpmRepositoryManagementStrategy.java -[NpmArtifactController]: https://github.com/strongbox/strongbox/blob/master/strongbox-web-core/src/main/java/org/carlspring/strongbox/controllers/npm/NpmArtifactController.java +[NpmArtifactController]: https://github.com/strongbox/strongbox/blob/e8beb1f7b97483355f55045c8947decdc1b1c26b/strongbox-web-core/src/main/java/org/carlspring/strongbox/controllers/layout/npm/NpmArtifactController.java [NPM Metadata]: ../metadata/npm-metadata.md diff --git a/docs/developer-guide/layout-providers/nuget-layout-provider.md b/docs/developer-guide/layout-providers/nuget-layout-provider.md index 703bc31c..6c17836d 100644 --- a/docs/developer-guide/layout-providers/nuget-layout-provider.md +++ b/docs/developer-guide/layout-providers/nuget-layout-provider.md @@ -27,7 +27,7 @@ This layout provider has feeds. ## NuGet 2 Search Provider -The NuGet layout provider supports uses the [OrientDB (default)](../search-providers#orientdbsearchprovider). +The NuGet layout provider supports the use of the [OrientDB (default)](../search-providers#orientdbsearchprovider). # Supported Commands @@ -40,7 +40,7 @@ Following [CLI commands](https://docs.microsoft.com/ru-ru/nuget/tools/nuget-exe- ## Classes of Interest -The following are some of the most important classes you will need to be familiar with in order to work on this layout provider: +The following are some of the more important classes you will need to be familiar with in order to work on this layout provider: | Class | Description | |:-----------|:------------| diff --git a/docs/developer-guide/layout-providers/raw-layout-provider.md b/docs/developer-guide/layout-providers/raw-layout-provider.md index 9ff5c082..d7f846e7 100644 --- a/docs/developer-guide/layout-providers/raw-layout-provider.md +++ b/docs/developer-guide/layout-providers/raw-layout-provider.md @@ -7,7 +7,7 @@ The Raw layout provider allows storing artifacts that have no particular strict The code for the Raw layout provider is located under the [strongbox-storage-raw-layout-provider] module. !!! warning - This feature is currently highly experimental, under active development and it's implementation may change without + This feature is currently highly experimental, under active development, and it's implementation may change without warning. If you would like to try it out and find issues, please report them on the issue tracker. ## Artifact Coordinates @@ -24,15 +24,15 @@ The accepted `User-Agent` headers supported must look like `User-Agent=Raw/*`. ## Classes of Interest -The following are some of the most important classes you will need to be familiar with in order to work on this layout provider: +The following are some of the more important classes you will need to be familiar with in order to work on this layout provider: | Coordinate | Description | |:-------------|:------------| -| [NullArtifactCoordinates](https://github.com/strongbox/strongbox/blob/master/strongbox-commons/src/main/java/org/carlspring/strongbox/artifact/coordinates/NullArtifactCoordinates.java) | This is an implementation of `ArtifactCoordinates` for the Raw layout. Basically, there are no coordinates. | +| [NullArtifactCoordinates](https://github.com/strongbox/strongbox/blob/6818edbee32374d33b11d76a439fe5e2262c160f/strongbox-storage/strongbox-storage-api/src/main/java/org/carlspring/strongbox/artifact/coordinates/NullArtifactCoordinates.java) | This is an implementation of `ArtifactCoordinates` for the Raw layout. Basically, there are no coordinates. | | [RawLayoutProvider](https://github.com/strongbox/strongbox/blob/master/strongbox-storage/strongbox-storage-layout-providers/strongbox-storage-raw-layout-provider/src/main/java/org/carlspring/strongbox/providers/layout/RawLayoutProvider.java) | This is the actual implementation of the Raw layout provider. | | [RawRepositoryFeatures](https://github.com/strongbox/strongbox/blob/master/strongbox-storage/strongbox-storage-layout-providers/strongbox-storage-raw-layout-provider/src/main/java/org/carlspring/strongbox/repository/RawRepositoryFeatures.java) | This defines the custom layout provider features for the Raw layout provider. | | [RawRepositoryManagementStrategy](https://github.com/strongbox/strongbox/blob/master/strongbox-storage/strongbox-storage-layout-providers/strongbox-storage-raw-layout-provider/src/main/java/org/carlspring/strongbox/repository/RawRepositoryManagementStrategy.java) | This class is used to handle the initialization of Raw repositories. | -| [RawArtifactController](https://github.com/strongbox/strongbox/blob/master/strongbox-web-core/src/main/java/org/carlspring/strongbox/controllers/raw/RawArtifactController.java) | This is the Raw-specific implementation of the `BaseArtifactController`. | +| [RawArtifactController](https://github.com/strongbox/strongbox/blob/e8beb1f7b97483355f55045c8947decdc1b1c26b/strongbox-web-core/src/main/java/org/carlspring/strongbox/controllers/layout/raw/RawArtifactController.java) | This is the Raw-specific implementation of the `BaseArtifactController`. | # See Also * [Writing a layout provider] diff --git a/docs/developer-guide/maven-indexer.md b/docs/developer-guide/maven-indexer.md index 15f39fa2..09c54dad 100644 --- a/docs/developer-guide/maven-indexer.md +++ b/docs/developer-guide/maven-indexer.md @@ -64,6 +64,12 @@ Packed indexes are used for transferring indexes from the remote to the proxy/to The Maven Indexer is used for integration with IDE-s. +<<<<<<< HEAD +The Maven indexes produced by most public repository managers (such as Maven Central), are usually rebuilt once a week, +as it can take quite a while to scan large repositories with countless small artifacts. Hence, these indexes have proven + to not be quite as up-to-date as the real server's contents. For this reason, we are using OrientDB to keep more + accurate information. +======= ## How Does The Maven Indexer Work In Strongbox ? Strongbox allows you to download packed repository Maven Index. Every maven repository with indexing enabled serves the packed Maven Index. @@ -119,6 +125,7 @@ Based on the repository type, the index is prepared as follows: The process of rebuilding the group repository Maven Index purges previous index and recreates it from scratch to keep more accurate information. ## Where Are The Maven Indexes Located in Strongbox ? +>>>>>>> upstream/master There are two types of Maven Indexer indexes: diff --git a/docs/developer-guide/metadata/maven-metadata.md b/docs/developer-guide/metadata/maven-metadata.md index 1ee430d2..33c814b4 100644 --- a/docs/developer-guide/metadata/maven-metadata.md +++ b/docs/developer-guide/metadata/maven-metadata.md @@ -3,7 +3,7 @@ ## What is stored in the Maven metadata? The `maven-metadata.xml` file is a place where Maven stores basic information about artifacts. -It can contain useful data such as, for example: +It can contain useful data such as: - Which timestamped artifact file represents the current `SNAPSHOT` artifact - What the latest deployed version of an artifact is @@ -144,7 +144,7 @@ The `` field is used to point to the most-recently deployed (release, o that this is not always necessarily the highest available version. For example, if you have several active branches under version control from which you're deploying versions of the artifact (for example `1.2` and `2.0` branches from which you respectively release artifacts with versions `1.2.1`, `1.2.2`, etc. and `2.0.1`, `2.0.2`), you may have the -case where an artifact from the `1.2` branch been deployed while at the same time there is also a `2.0.3` version as well. +case where an artifact from the `1.2` branch has been deployed while at the same time there is also a `2.0.3` version. Depending on the repository type, the `` field may also be pointing to `SNAPSHOT` artifacts as well. ## What is the `release` field used for? @@ -168,7 +168,7 @@ When you deploy an artifact to a remote repository, Maven will check if there is necessary changes into a new copy and then overwrite the data on the remote. If there is no existing `maven-metadata.xml` in the remote repository, Maven will generate a new one and deploy it. -Sometimes the data in the repository can become corrupt and this is when the repository manager needs to be told +Sometimes, the data in the repository can become corrupt and this is when the repository manager needs to be told to rebuild it (or, alternatively, a scheduled task on the repository manager can take care of this to pre-emptively fix it). ## What are the official resources on Maven metadata? diff --git a/docs/developer-guide/project-structure.md b/docs/developer-guide/project-structure.md index cd7a5734..a9bc4ef6 100644 --- a/docs/developer-guide/project-structure.md +++ b/docs/developer-guide/project-structure.md @@ -5,7 +5,7 @@ ### Core Modules All the core modules are located under the [Strongbox] project. Each of these modules has a `README.md` file explaining -briefly what kind of code contains. New modules should also follow the same format. +briefly what kind of code it contains. New modules should also follow the same format. This is a brief breakdown of the modules: @@ -43,7 +43,7 @@ This is a brief breakdown of the modules: * [strongbox-resources] * [strongbox-common-resources] - This is the place where common resources which can be used by multiple projects reside. The idea is not have to + Contains common resources that can be used by multiple projects. The idea is not to have to duplicate things such as `logback*xml`, keystores and so on across the other modules. These resources are copied using the `maven-dependency-plugin`. @@ -76,7 +76,7 @@ This is a brief breakdown of the modules: Contains the code for the storage related modules. * [strongbox-storage-api] - Contains the the storage API. + Contains the storage API. * [strongbox-storage-core] Contains the core classes for the storage API. @@ -99,7 +99,7 @@ This is a brief breakdown of the modules: * [strongbox-storage-p2-layout-provider] This is an incomplete early draft implementation of the P2 OSGi layout provider. This module needs a lot more - work, before the P2 layout provider could be usable. + work before the P2 layout provider could be usable. * [strongbox-storage-raw-layout-provider] This is the implementation of the [Raw layout provider]. @@ -127,10 +127,10 @@ All the [Strongbox] modules are organized under the [Strongbox organization]. ### Creating New Modules/Projects -* Each new modules needs to extend the `strongbox-parent`, from where it should be extending the dependencies and the +* Each new module needs to extend the `strongbox-parent`, from where it should be extending the dependencies and the configuration for Maven plugins. Modules should not contain any artifact or plugin versions. -* All modules need to have a `README.md` file describing in brief what the module is and give brief pointers +* All modules need to have a `README.md` file describing, in brief, what the module is and give brief pointers on what classes and tests are of primary interest. * Each project in the [Strongbox organization] needs to have a copy of the [LICENSE] file. @@ -144,12 +144,11 @@ All the [Strongbox] modules are organized under the [Strongbox organization]. The web integration tests are located in the [strongbox-web-integration-tests] project. They are using the [maven-invoker-plugin] to execute various tests against a Strongbox instance which is started for this purpose. These tests start Maven processes via the [maven-invoker-plugin] -and are literally mimicking Maven behaviour. The outcome of the tests is validated using Groovy scripts. +and are literally mimicking Maven behavior. The outcome of the tests is validated using Groovy scripts. ## Packaging Modules -For a much more lightweight build the modules which carry out the actual packaging into assemblies and distributions, -these have been extracted into separate projects under the organization. +For a much more lightweight build the modules, which carry out the actual packaging into assemblies and distributions, have been extracted into separate projects under the organization. ## See Also * [Writing Tests](./writing-tests.md) diff --git a/docs/developer-guide/search-providers.md b/docs/developer-guide/search-providers.md index 5618c865..24accc93 100644 --- a/docs/developer-guide/search-providers.md +++ b/docs/developer-guide/search-providers.md @@ -53,4 +53,10 @@ catch (SearchException e) [SearchProvider]: https://github.com/strongbox/strongbox/blob/master/strongbox-storage/strongbox-storage-api/src/main/java/org/carlspring/strongbox/providers/search/SearchProvider.java [OrientDbSearchProvider]: https://github.com/strongbox/strongbox/blob/master/strongbox-storage/strongbox-storage-api/src/main/java/org/carlspring/strongbox/providers/search/OrientDbSearchProvider.java -[REST-API]: ../user-guide/rest-api.md \ No newline at end of file +<<<<<<< HEAD +[MavenIndexerSearchProvider]: https://github.com/strongbox/strongbox/blob/master/strongbox-storage/strongbox-storage-layout-providers/strongbox-storage-maven-layout/strongbox-storage-maven-layout-provider/src/main/java/org/carlspring/strongbox/providers/search/MavenIndexerSearchProvider.java +[REST-API]: ../user-guide/rest-api.md +[Maven Indexer]: ./maven-indexer.md +======= +[REST-API]: ../user-guide/rest-api.md +>>>>>>> upstream/master diff --git a/docs/developer-guide/using-the-event-api.md b/docs/developer-guide/using-the-event-api.md index 4feafa3f..64b0631e 100644 --- a/docs/developer-guide/using-the-event-api.md +++ b/docs/developer-guide/using-the-event-api.md @@ -71,5 +71,5 @@ public class ArtifactEventHandlingExample [strongbox-event-api]: https://github.com/strongbox/strongbox/blob/master/strongbox-event-api/ [org.carlspring.strongbox.event.Event]: https://github.com/strongbox/strongbox/blob/master/strongbox-event-api/src/main/java/org/carlspring/strongbox/event/Event.java -[org.carlspring.strongbox.event.EventListener]: https://github.com/strongbox/strongbox/blob/master/strongbox-event-api/src/main/java/org/carlspring/strongbox/event/EventListener.java +[org.carlspring.strongbox.event.EventListener]: https://github.com/strongbox/strongbox/tree/master/strongbox-event-api/src/main/java/org/carlspring/strongbox/event [org.carlspring.strongbox.event.AbstractEventListenerRegistry]: https://github.com/strongbox/strongbox/blob/master/strongbox-event-api/src/main/java/org/carlspring/strongbox/event/AbstractEventListenerRegistry.java diff --git a/docs/user-guide/application-properties.md b/docs/user-guide/application-properties.md index f25853a8..c4ede3ff 100644 --- a/docs/user-guide/application-properties.md +++ b/docs/user-guide/application-properties.md @@ -65,9 +65,19 @@ Whether, or not to download the Maven indexes for remote repositories. Whether, or not to download the Maven indexes for all remote repositories in the `$storageId` +<<<<<<< HEAD + Whether to download the Maven indexes for all remote repositories in the `$storageId`. + + Can be passed as `-Dstrongbox.download.indexes_${storageId}_*` or set via the env variable `STRONGBOX_DOWNLOAD_INDEXES_${storageId}_*` + + | Type | Default Value | + |:------:|:-------------:| + | boolean | true | +======= | Type | Default | |:--------- |:--------- | | `Boolean` | `true` | +>>>>>>> upstream/master ##### STRONGBOX_DOWNLOAD_INDEXES_\${storageId}_\${repositoryId} diff --git a/docs/user-guide/artifact-query-language.md b/docs/user-guide/artifact-query-language.md index 7b51477d..17b10748 100644 --- a/docs/user-guide/artifact-query-language.md +++ b/docs/user-guide/artifact-query-language.md @@ -33,10 +33,10 @@ needs to work the same across all layouts: ### Values -* _**Values**_ can be strings: +* _**Values**_ can be strings * Quoted with single quotes `'` when the value is more than one word (for example: `storage: storage0`, `layout: 'Maven 2'`) - * Separated with comma `,` for multiple values; you can consider this the same as `IN` operator in SQL (for example: `repository: releases, snapshots`, `layout: 'Maven 2', NuGet`) + * Separated by a comma `,` for multiple values; you can consider this the same as `IN` operator in SQL (for example: `repository: releases, snapshots`, `layout: 'Maven 2', NuGet`) * Wildcards are supported `*` (for example: `group: org.carlspring.*`) * _**Values**_ can be dates in Unicode format: `2018-03-21 13:00:00`, `2018-03-21` (for example: `updated: 2018-03-21`, `updated: '2018-03-21 13:00'`) @@ -94,8 +94,7 @@ needs to work the same across all layouts: ## How to use -The easiest way to AQL is by using the search bar in the user interface. Once you start writing, you will see suggestions -based on what you've typed. You could also directly search via the REST API Endpoint. +The easiest way to use the AQL is by using the search bar in the user interface. As soon as you start typing, you will see suggestions based on what you've typed. You could also directly search via the REST API endpoint. Example `curl` request: diff --git a/docs/user-guide/artifact-routing-rules.md b/docs/user-guide/artifact-routing-rules.md index 82692b1f..19a2ff52 100644 --- a/docs/user-guide/artifact-routing-rules.md +++ b/docs/user-guide/artifact-routing-rules.md @@ -88,7 +88,7 @@ Example: ### Denied Patterns -* The following example disable lookups for `.*(com|org)/carlspring.*` in the group repository identified by `storage-id` equal to `storage-common-proxies` and `repository-id` equal to `group-common-proxies` in the underlying repository identified by `storage-id` equal to `storage-common-proxies` and `repository-id` equal to `jboss-public-releases`. +* The following example disables lookups for `.*(com|org)/carlspring.*` in the group repository identified by `storage-id` equal to `storage-common-proxies` and `repository-id` equal to `group-common-proxies` in the underlying repository identified by `storage-id` equal to `storage-common-proxies` and `repository-id` equal to `jboss-public-releases`. To put it more simply, if someone tries to access `.*(com|org)/carlspring.*` from group repository `storage-id="storage-common-proxies" repository-id="group-common-proxies"` then this group repository won't serve this request from repository `storage-id="storage-common-proxies" repository-id="jboss-public-releases"`, for sure. diff --git a/docs/user-guide/configuration-files/strongbox-authorization-yaml.md b/docs/user-guide/configuration-files/strongbox-authorization-yaml.md index 05c227b7..330a4495 100644 --- a/docs/user-guide/configuration-files/strongbox-authorization-yaml.md +++ b/docs/user-guide/configuration-files/strongbox-authorization-yaml.md @@ -26,7 +26,7 @@ Below is a simple scrap of the `strongbox-authorization.yaml` configuration file # Anonymous User Privileges -There is a special treatment role called **`ANONYMOUS_ROLE`** that is not considered as a [built-in role](http://TODO_link_to_roles) so it doesn't have a fixed set of permissions. Anonymous user's privileges are configurable and can be defined in the `strongbox-authorization.yaml` configuration file. +There is a special treatment role called **`ANONYMOUS_ROLE`** that is not considered as a (link not completed) [built-in role](http://TODO_link_to_roles) so it doesn't have a fixed set of permissions. Anonymous user's privileges are configurable and can be defined in the `strongbox-authorization.yaml` configuration file. authorizationConfiguration: roles: @@ -43,7 +43,7 @@ This way every user not logged in will be awarded by the `ARTIFACTS_RESOLVE` and The following classes are related to various aspects of the authorization configuration: -| Class Name | Description | +| Class Name | Description | |:------------|-------------| | [`org.carlspring.strongbox.authorization.dto.AuthorizationConfigDto`](https://github.com/strongbox/strongbox/blob/master/strongbox-security/strongbox-user-management/src/main/java/org/carlspring/strongbox/authorization/dto/AuthorizationConfigDto.java) | Represents authorization configuration in a deserialized form. | | [`org.carlspring.strongbox.authorization.AuthorizationConfigFileManager`](https://github.com/strongbox/strongbox/blob/master/strongbox-security/strongbox-user-management/src/main/java/org/carlspring/strongbox/authorization/AuthorizationConfigFileManager.java) | Class to serialize / deserialize the authorization configuration. | diff --git a/docs/user-guide/configuration-files/strongbox-cron-tasks-yaml.md b/docs/user-guide/configuration-files/strongbox-cron-tasks-yaml.md index 24819b31..e4948632 100644 --- a/docs/user-guide/configuration-files/strongbox-cron-tasks-yaml.md +++ b/docs/user-guide/configuration-files/strongbox-cron-tasks-yaml.md @@ -10,7 +10,7 @@ This file is read by the system at the server startup time and it automatically For an example, check [here](https://github.com/strongbox/strongbox/blob/master/strongbox-cron/strongbox-cron-api/src/main/resources/etc/conf/strongbox-cron-tasks.yaml) -Every cron task configuration is an `cronTaskConfigurations` array element. Inner properties are: +Every cron task configuration is a `cronTaskConfigurations` array element. Inner properties are: * `uuid`: identifies the individual cron task configuration in the system @@ -35,18 +35,18 @@ Every cron task configuration is an `cronTaskConfigurations` array element. Inne | Description | Implementation | Mandatory properties | Optional properties | | ------------- | ------------- | ------------- | ------------- | -| [Empty Trash](https://github.com/strongbox/strongbox/wiki/Cron-Tasks#empty-trash) | `org.carlspring.strongbox.cron.jobs.ClearRepositoryTrashCronJob` ||`storageId`
`repositoryId`| -| [Regenerate Checksums](https://github.com/strongbox/strongbox/wiki/Cron-Tasks#regenerate-checksums) | `org.carlspring.strongbox.cron.jobs.RegenerateChecksumCronJob` ||`storageId`
`repositoryId`
`basePath`
`forceRegeneration`| +| [Empty Trash](https://github.com/strongbox/strongbox/tree/master/strongbox-cron/strongbox-cron-tasks/src/main/java/org/carlspring/strongbox/cron/jobs) | `org.carlspring.strongbox.cron.jobs.ClearRepositoryTrashCronJob` ||`storageId`
`repositoryId`| +| [Regenerate Checksums](https://github.com/strongbox/strongbox/tree/master/strongbox-cron/strongbox-cron-tasks/src/main/java/org/carlspring/strongbox/cron/jobs) | `org.carlspring.strongbox.cron.jobs.RegenerateChecksumCronJob` ||`storageId`
`repositoryId`
`basePath`
`forceRegeneration`| | Cleanup Expired Artifacts From Proxy Repositories | `org.carlspring.strongbox.cron.jobs.CleanupExpiredArtifactsFromProxyRepositoriesCronJob` |`lastAccessedTimeInDays`|`minSizeInBytes`| ### Maven-Specific Cron Task Configuration | Description | Implementation | Mandatory properties | Optional properties | | ------------- | ------------- | ------------- | ------------- | -| [Rebuild Maven Metadata](https://github.com/strongbox/strongbox/wiki/Cron-Tasks#rebuild-maven-metadata) | `org.carlspring.strongbox.cron.jobs.RebuildMavenMetadataCronJob` ||`storageId`
`repositoryId`
`basePath`| -| [Rebuild Maven Indexes](https://github.com/strongbox/strongbox/wiki/Cron-Tasks#rebuild-maven-indexes) | `org.carlspring.strongbox.cron.jobs.RebuildMavenIndexesCronJob` |`storageId`
`repositoryId`|`basePath`| -| [Download Remote Indexes](https://github.com/strongbox/strongbox/wiki/Cron-Tasks#download-remote-indexes-maven-repositories-only) | `org.carlspring.strongbox.cron.jobs.DownloadRemoteMavenIndexCronJob` |`storageId`
`repositoryId`|| -| [Remove Timestamped Snapshot Artifacts](https://github.com/strongbox/strongbox/wiki/Cron-Tasks#remove-timestamped-maven-snapshot-artifacts) | `org.carlspring.strongbox.cron.jobs.RemoveTimestampedMavenSnapshotCronJob` ||`storageId`
`repositoryId`
`basePath`
`numberToKeep`
`keepPeriod`| +| [Rebuild Maven Metadata]https://github.com/strongbox/strongbox/blob/fea19c505ebf09f119e15e7359275a428c8c86ee/strongbox-storage/strongbox-storage-layout-providers/strongbox-storage-maven-layout/strongbox-storage-maven-layout-provider/src/main/java/org/carlspring/strongbox/cron/jobs/RebuildMavenMetadataCronJob.java) | `org.carlspring.strongbox.cron.jobs.RebuildMavenMetadataCronJob` ||`storageId`
`repositoryId`
`basePath`| +| [Rebuild Maven Indexes](https://github.com/strongbox/strongbox/blob/fea19c505ebf09f119e15e7359275a428c8c86ee/strongbox-storage/strongbox-storage-layout-providers/strongbox-storage-maven-layout/strongbox-storage-maven-layout-provider/src/main/java/org/carlspring/strongbox/cron/jobs/RebuildMavenIndexesCronJob.java) | `org.carlspring.strongbox.cron.jobs.RebuildMavenIndexesCronJob` |`storageId`
`repositoryId`|`basePath`| +| [Download Remote Indexes](https://github.com/strongbox/strongbox/blob/fea19c505ebf09f119e15e7359275a428c8c86ee/strongbox-storage/strongbox-storage-layout-providers/strongbox-storage-maven-layout/strongbox-storage-maven-layout-provider/src/main/java/org/carlspring/strongbox/cron/jobs/DownloadRemoteMavenIndexCronJob.java) | `org.carlspring.strongbox.cron.jobs.DownloadRemoteMavenIndexCronJob` |`storageId`
`repositoryId`|| +| [Remove Timestamped Snapshot Artifacts](https://github.com/strongbox/strongbox/blob/fea19c505ebf09f119e15e7359275a428c8c86ee/strongbox-storage/strongbox-storage-layout-providers/strongbox-storage-maven-layout/strongbox-storage-maven-layout-provider/src/main/java/org/carlspring/strongbox/cron/jobs/RemoveTimestampedMavenSnapshotCronJob.java) | `org.carlspring.strongbox.cron.jobs.RemoveTimestampedMavenSnapshotCronJob` ||`storageId`
`repositoryId`
`basePath`
`numberToKeep`
`keepPeriod`| ### Nuget-Specific Cron Task Configuration diff --git a/docs/user-guide/directory-structure.md b/docs/user-guide/directory-structure.md index d00700a2..6b47e65b 100644 --- a/docs/user-guide/directory-structure.md +++ b/docs/user-guide/directory-structure.md @@ -2,7 +2,7 @@ ## Strongbox Distribution -When you download and extract `strongbox-distribution.tar.gz` you will find the following directory structure: +When you download and extract `strongbox-distribution.tar.gz`, you will find the following directory structure: ### Directory structure @@ -23,7 +23,7 @@ When you download and extract `strongbox-distribution.tar.gz` you will find the The vault is the work area of the server. This includes things like the cache, location of the OrientDB files, storages and temporary directory. You can find this directory right next to where `strongbox-distribution` is located -(in other words - `strongbox-distribution/../strongbox-vault`). Check the [Application Properties](/user-guide/application-properties.md) +(in other words - `strongbox-distribution/../strongbox-vault`). Check the [Application Properties](./user-guide/application-properties.html) section to see which property to override to change the default location. ### Directory structure @@ -31,7 +31,7 @@ section to see which property to override to change the default location. * `strongbox-vault/` * `cache/` * `db/` - * [storages](/knowledge-base/storages/)/ + * [storages](../knowledge-base/storages.md)/ * `${storageId}/` * `${repositoryId}/` * [.index/](../developer-guide/maven-indexer.md#where-are-the-maven-indexes-located) diff --git a/docs/user-guide/ui/system-information.md b/docs/user-guide/ui/system-information.md index c978b3d5..0035c929 100644 --- a/docs/user-guide/ui/system-information.md +++ b/docs/user-guide/ui/system-information.md @@ -1,7 +1,7 @@ # System Information This module provides information about the environment where Strongbox is currently running. -To make your live easier, we've included a `search` filter so that you can find what you're looking for faster. +To make your life easier, we've included a `search` filter so that you can find what you're looking for faster. ## JVM Arguments diff --git a/docs/user-guide/ui/user-management.md b/docs/user-guide/ui/user-management.md index 86e46312..e7473553 100644 --- a/docs/user-guide/ui/user-management.md +++ b/docs/user-guide/ui/user-management.md @@ -1,9 +1,10 @@ ## Intro -The user management module allows you to list/add/update/delete users fine-tune their access level to Strongbox. +The user management module allows you to list/add/update/delete users and fine-tune their access level to Strongbox. ## Access Model TODO: Add mode information about this later. (SB-1339; SB-1285) + diff --git a/docs/user-guide/upgrading.md b/docs/user-guide/upgrading.md index 129686df..f069b8c1 100644 --- a/docs/user-guide/upgrading.md +++ b/docs/user-guide/upgrading.md @@ -1,7 +1,7 @@ # Upgrading Strongbox -We try to test everything as through as possible. However Strongbox is still under development and sometimes things -could go wrong. This is why +We try to test everything as thorough as possible. However, Strongbox is still under development and sometimes things +could go wrong. This is why: !!! danger **YOU SHOULD ALWAYS CREATE A BACKUP OF YOUR [`STRONGBOX_VAULT`](./application-properties.md) and