This is an automated email from the ASF dual-hosted git repository. jamesbognar pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/juneau.git
commit a50ebeb91e509763329f8bc2929f28d9e358b887 Author: JamesBognar <[email protected]> AuthorDate: Wed Jun 22 07:43:20 2022 -0400 Javadocs --- juneau-doc/src/main/javadoc/overview.html | 223 ++++++--------------- juneau-doc/src/main/javadoc/resources/docs.txt | 4 - .../src/main/javadoc/resources/fragments/toc.html | 6 - 3 files changed, 61 insertions(+), 172 deletions(-) diff --git a/juneau-doc/src/main/javadoc/overview.html b/juneau-doc/src/main/javadoc/overview.html index cbb12975d..c6ebbcc38 100644 --- a/juneau-doc/src/main/javadoc/overview.html +++ b/juneau-doc/src/main/javadoc/overview.html @@ -131,25 +131,25 @@ <tr class='dark bb'> <td rowspan="4" style='text-align:center;font-weight:bold;padding:20px;'>Examples</td> - <td class='code'><a class='doclink' href='#juneau-examples-core'>juneau-examples-core</a></td> + <td class='code'>juneau-examples-core</td> <td> Juneau Core API examples. </td> </tr> <tr class='dark bb'> - <td class='code'><a class='doclink' href='#juneau-examples-rest'>juneau-examples-rest</a></td> + <td class='code'>juneau-examples-rest</td> <td> Juneau REST API examples. </td> </tr> <tr class='dark bb'> - <td class='code'><a class='doclink' href='#juneau-examples-rest-jetty'>juneau-examples-rest-jetty</a></td> + <td class='code'>juneau-examples-rest-jetty</td> <td> Juneau REST API examples using Jetty deployment. </td> </tr> <tr class='dark bb'> - <td class='code'><a class='doclink' href='#juneau-examples-rest-springboot'>juneau-examples-rest-springboot</a></td> + <td class='code'>juneau-examples-rest-springboot</td> <td> Juneau REST API examples using Spring Boot deployment. </td> @@ -506,12 +506,6 @@ <li><p><a class='doclink' href='#my-springboot-microservice.msm.Building'>Building and Running from Command-Line</a><span class='update'>created: 8.0.0</span></p> </ol> <li><p class='toc2'><a class='doclink' href='#juneau-petstore'>juneau-pestore</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p> - <ol> - <li><p><a class='doclink' href='#juneau-petstore.jp.Installing'>Installing in Eclipse</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p> - <li><p><a class='doclink' href='#juneau-petstore.jp.Running'>Running Petstore manually</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p> - <li><p><a class='doclink' href='#juneau-petstore.jp.Building'>Building and Running from Command-Line (Using Dockerfiles)</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p> - <li><p><a class='doclink' href='#juneau-petstore.jp.App'>About Petstore App</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p> - </ol> <li><p class='toc2'><a class='doclink' href='#Glossaries'>Glossaries</a><span class='update'>created: 8.1.3</span></p> <ol> <li><p><a class='doclink' href='#Glossaries.g.LanguageSupport'>Language Support</a><span class='update'>created: 8.1.3</span></p> @@ -679,7 +673,7 @@ </tr> <tr class='dark bb'> <td rowspan="2" style='text-align:center;font-weight:bold;padding:20px;' class='code'>juneau-examples</td> - <td class='code'><a class='doclink' href='#juneau-examples-core'>juneau-examples-core</a></td> + <td class='code'>juneau-examples-core</td> <td> <ul> <li>Core code examples @@ -688,7 +682,7 @@ <td></td> </tr> <tr class='dark bb'> - <td class='code'><a class='doclink' href='#juneau-examples-rest'>juneau-examples-rest</a></td> + <td class='code'>juneau-examples-rest</td> <td> <ul> <li>REST code examples @@ -27651,134 +27645,6 @@ TODO </p> </div> - -<!-- ==================================================================================================== --> - -<h3 class='topic' onclick='toggle(this)'><a href='#juneau-petstore.jp.Installing' id='juneau-petstore.jp.Installing'>16.1 - Installing in Eclipse</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></h3> -<div class='topic'><!-- START: 16.1 - juneau-petstore.jp.Installing --> -<div class='topic'> - <p> - How to import Petstore to Eclipse or Spring Tool Suite: <br><br> - <ol> - <li>File --> </li> - <li>Import --> </li> - <li>Existing Maven Projects--></li> - <li>Browse existing projects--> juneau-petstore</li> - </ol> - </p> -</div> -</div><!-- END: 16.1 - juneau-petstore.jp.Installing --> - -<!-- ==================================================================================================== --> - -<h3 class='topic' onclick='toggle(this)'><a href='#juneau-petstore.jp.Running' id='juneau-petstore.jp.Running'>16.2 - Running Petstore manually</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></h3> -<div class='topic'><!-- START: 16.2 - juneau-petstore.jp.Running --> -<div class='topic'> - <p> - How to run Petstore --Java Backend-- in Eclipse or Spring Tool Suite: <br><br> - <ol> - <li>App.java --> Run as Spring Boot App </li> - <li>Main.java --> Run as Spring Boot App </li> - </ol> - </p> - <p> - How to run Petstore --React Frontend-- with npm: <br><br> - <ol> - <li>Install latest node.js </li> - <li>Inside folder "Pets" run command: npm install </li> - <li>Inside folder "Pets" run command: npm start </li> - </ol> - </p> -</div> -</div><!-- END: 16.2 - juneau-petstore.jp.Running --> - -<!-- ==================================================================================================== --> - -<h3 class='topic' onclick='toggle(this)'><a href='#juneau-petstore.jp.Building' id='juneau-petstore.jp.Building'>16.3 - Building and Running from Command-Line (Using Dockerfiles)</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></h3> -<div class='topic'><!-- START: 16.3 - juneau-petstore.jp.Building --> -<div class='topic'> - <p> - How to build and run Petstore using Docker: <br> - <ol> - <li>Go to the folder "juneau-petstore" and run this command: - <br> - docker build . -t petstore && docker run -p 5000:5000 petstore</li> - <br> - <li>Go to the folder "pets" and run this command: - <br> - docker run --rm -it -p 3000:3000 -v $(pwd):/usr/src/app pets </li> - </ol> - </p> -</div> -</div><!-- END: 16.3 - juneau-petstore.jp.Building --> - -<!-- ==================================================================================================== --> - -<h3 class='topic' onclick='toggle(this)'><a href='#juneau-petstore.jp.App' id='juneau-petstore.jp.App'>16.4 - About Petstore App</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></h3> -<div class='topic'><!-- START: 16.4 - juneau-petstore.jp.App --> -<div class='topic'> - <div style="width: 70%;"> - <h3 style="color: blue;"> - What is the Petstore app? - </h3> - <p> - - Petstore is a simple CRUD (Create, Read, Update and Delete) application, - which is meant to demonstrate the advantages of the Apache Juneau library. - It is a live example showing how any JAVA back-end developer can use Juneau for parsing, - POJO serialization and sending different types of serialized POJOs over REST. - - </p> - <h3>What's the project layout?</h3> - <p> Petstore application consists of three main parts, which are connected over REST: - <ul> - <li>Database: Apache Derby.</li> - <li>Server: Java Spring Boot. </li> - <li>Client: Java Spring Boot or React.</li> - </ul> - </p> - - <p> Java back-end and front-end runs on: http://localhost:5000; - <br>React front-end runs on: http://localhost:3000. - </p> - - <p> Project is based on a standard Spring Boot project structure. There are Models, Repositories, Services. - <br>The main difference here - no Controller classes or @RestController annotations. - Instead of it, we use PetStore.java interface class where REST calls are mapped with different methods. - </p> - <p>Petstore has three types of DTO objects (database entities): Pets, Orders and Users. </p> - <p>All methods for creating, reading, updating or deleting database entities (pets, orders or users) are provided in - PetStoreService.java class. </p> - <p> Example Pet, Order and User objects are created at program - startup and saved in the database using JPA (Java Persistence API) and PetStoreService methods.</p> - - <h3>How does it work ?</h3> - <p> - <ul> - - <li>To get the data which should be displayed, Petstore app client - sends http request GET to the back-end server. The response data goes - over the REST connection where POJOs get serialized. - Petstore client can get and display different types of the same POJO: - simple (standard) json format and other (not standard) formats. - - <li>Response data (array of objects) in standard JSON format here is used to generate table content - (for example, all Pets in Store).</li> - - <li>Other types of these objects are displayed in the page section "Content types". - Here you can get the same POJOs displayed in different formats: json simple, json schema, - www form urlencoded, octal/msg, html, html schema, html stripped, openapi, plain text, uon, xml, xml - schema, xml soap. - </li> - <li>All readable table content and visual representation of the different content types are generated from - the response data.</li> - </ul> - - </p> - - </div> -</div> -</div><!-- END: 16.4 - juneau-petstore.jp.App --> </div><!-- END: 16 - juneau-petstore --> <!-- ==================================================================================================== --> @@ -35862,27 +35728,20 @@ <div class='topic'><!-- START: 9.0.0 --> <div class='topic'> <p> - Juneau 9.0.0 is a major release. + Juneau 9.0.0 is a major release. Deprecated APIs that have been accumulating over time have been removed. + The underlying code has undergone significant refactoring to ease maintainability and improve overall performance. </p> <h5 class='topic w800'>General changes</h5> <ul class='spaced-list'> - <li>Configuration property names that are enabled by default have been replaced with disabler properties. - <br>For example, <jsf>BEAN_useInterfaceProxies</jsf> which was enabled by default has been replaced with <jsf>BEAN_disableUseInterfaceProxies</jsf>. + <li> + Configuration properties have been removed entirely. They have been replaced with a standard builder-based + architecture. In addition to making the code more maintainable, it also improves performance when + creating new serializers/parsers/rest clients (and others). </ul> <h5 class='topic w800'>juneau-marshall</h5> <ul class='spaced-list'> - <li> - New {@del org.apache.juneau.annotation.Marshalled @Marshalled} annotation for non-bean classes. - <li> - New {@link org.apache.juneau.annotation.Bean#example() @Bean(example)} annotation. - <li> - Changes to {@link org.apache.juneau.annotation.Bean @Bean} annotation. - <ul> - <li><c>@Bean(bpi|bpx|bpro|bpwo)</c> replaced with <c>@Bean(properties|propertiesExclude|propertiesReadOnly|propertiesWriteOnly|p|xp|ro|o)</c> - <li>New {@link org.apache.juneau.annotation.Bean#example() @Bean(example)} annotation. - </ul> <li> Eliminated the various <c><ja>@XConfig</ja>(applyX={...})</c> annotations and replaced them with the ability to apply targeted annotations directly to configuration classes and methods (such as REST classes/methods). @@ -35892,7 +35751,7 @@ <ja>@UrlEncoding</ja>(onClass=MyList.<jk>class</jk>,expandedParams=<jk>true</jk>) <jk>public class</jk> MyRestClass { - <ja>@RestMethod</ja>(...) + <ja>@RestOp</ja>(...) <ja>@Bean</ja>(on=<js>"MyBean1,MyBean2"</js>,sort=<jk>false</jk>) <ja>@UrlEncoding</ja>(onClass=MyList.<jk>class</jk>,expandedParams=<jk>false</jk>) <jk>public</jk> Object myRestMethod() { ... } @@ -35907,41 +35766,81 @@ <jc>// Shortened form</jc> <ja>@RemoteOp</ja>(<js>"PUT /foo"</js>) </p> + <li> + New annotations: {@link org.apache.juneau.http.remote.RemoteGet}/{@link org.apache.juneau.http.remote.RemotePut}/{@link org.apache.juneau.http.remote.RemotePost}/{@link org.apache.juneau.http.remote.RemoteDelete} + <li> + Significant refactoring of the classes in the {@link org.apache.juneau.http} package and subpackages. Attempts were made to make classes as natural + extensions to the Apache HttpComponents APIs. Significant new functionality here. + <li> + New {@link org.apache.juneau.annotation.Marshalled @Marshalled} annotation for non-bean classes. + <li> + New {@link org.apache.juneau.annotation.Bean#example() @Bean(example)} annotation. + <li> + New {@link org.apache.juneau.annotation.BeanConfig#ignoreUnknownEnumValues() @BeanConfig(ignoreUnknownEnumValues)} annotation and support for ignoring + unknown enum values during parsing. + <li> + Java Serialized Object marshalling support has been removed entirely due to security risks with usage (better safe than sorry). </ul> <h5 class='topic w800'>juneau-rest-server</h5> <ul class='spaced-list'> <li> - Removed deprecated APIs. + Significant refactoring done to allow for many extensible aspects of the API to be performed through injected beans + in Spring. These include logging, debugging, REST method arg types, static files, file finders, swagger creators, thrown stores, response + processors, serializers/parsers, JSON schema generators, statistics gathering stores, and default request attributes/headers and response + headers. + <li> + Defining REST resources with predefined marshalling support is now much simpler. You now extend from a basic REST servlet/object + class and then include an interface with predefined common annotations. + <p class='bcode'> + <jc>// A root resource that supports JSON/HTML marshalling.</jc> + <jk>public class</jk> MyRootResources <jk>extends</jk> BasicRestServletGroup <jk>implements</jk> BasicJsonHtmlConfig { ... } + + <jc>// A child resource that supports all available marshalling.</jc> + <jk>public class</jk> MyChildResource <jk>extends</jk> BasicRestObject <jk>implements</jk> BasicUniversalConfig { ... } + </p> + REST servlets/objects are in the {@link org.apache.juneau.rest.servlet} package and REST configs are in the {@link org.apache.juneau.rest.config} package. <li> - Removed the <c><ja>@RestMethod</ja>(name)</c> annotation. Use <c><ja>@RestMethod</ja>(method)</c> instead. + <ja>@RestMethod</ja> annotation has been replaced with + {@link org.apache.juneau.http.remote.RemoteGet} / {@link org.apache.juneau.http.remote.RemotePut} / {@link org.apache.juneau.http.remote.RemotePost} / {@link org.apache.juneau.http.remote.RemoteDelete} + / {@link org.apache.juneau.http.remote.RemoteOp} <li> - New shortened form {@del org.apache.juneau.rest.annotation.RestMethod#value()} for specifying http method name and path. + New shortened form {@link org.apache.juneau.rest.annotation.RestOp#value()} for specifying http method name and path. <p class='bcode'> <jc>// Normal form</jc> - <ja>@RestMethod</ja>(method=<jsf>PUT</jsf>, path=<js>"/{propertyName}"</js>) + <ja>@RestOp</ja>(method=<jsf>PUT</jsf>, path=<js>"/{propertyName}"</js>) <jc>// Shortened form</jc> - <ja>@RestMethod</ja>(<js>"PUT /{propertyName}"</js>) + <ja>@RestOp</ja>(<js>"PUT /{propertyName}"</js>) </p> + </ul> + + <h5 class='topic w800'>juneau-dto</h5> + <ul class='spaced-list'> <li> - <c><ja>@RestMethod</ja>(name)</c> annotation. Use <c><ja>@RestMethod</ja>(method)</c> instead. + Addition of OpenAPI 3.0 ({@link org.apache.juneau.dto.openapi3} package). </ul> <h5 class='topic w800'>juneau-rest-server-springboot</h5> <ul class='spaced-list'> + <li> + The requirement for using <c>JuneauRestInitializer</c> during App initialization to use bean injection has been eliminated. + Instead, root resources should simply extend from {@link org.apache.juneau.rest.springboot.BasicSpringRestServlet} and {@link org.apache.juneau.rest.springboot.BasicSpringRestServletGroup}. + These will automatically hook into the Spring Boot framework for resolution of REST children and various extension beans added + to the REST API framework. </ul> <h5 class='topic w800'>juneau-rest-client</h5> <ul class='spaced-list'> <li> - Replaced deprecated APIs with new RestClient API introduced in 8.2.0. + While the general usage pattern stays the same, the REST client code has undergone significant rewriting. It is now more inline + as an extension of the Apache HttpClient library. Much new functionality such as support for fluent assertions has been added. </ul> <h5 class='topic w800'>juneau-rest-mock</h5> <ul class='spaced-list'> <li> - Replaced deprecated APIs with new RestClient API introduced in 8.2.0. + Entirely rewritten. Changes too many to list. </ul> </div> </div><!-- END: 9.0.0 --> diff --git a/juneau-doc/src/main/javadoc/resources/docs.txt b/juneau-doc/src/main/javadoc/resources/docs.txt index 17f2de699..dc3e8e5ca 100644 --- a/juneau-doc/src/main/javadoc/resources/docs.txt +++ b/juneau-doc/src/main/javadoc/resources/docs.txt @@ -204,10 +204,6 @@ jmr.RootProperty = #juneau-marshall-rdf.jmr.RdfDetails.jmr.RootProperty, Overvie jmr.Serializers = #juneau-marshall-rdf.jmr.RdfDetails.jmr.Serializers, Overview > juneau-marshall-rdf > RDF Details > RDF Serializers jmr.TypedLiterals = #juneau-marshall-rdf.jmr.RdfDetails.jmr.TypedLiterals, Overview > juneau-marshall-rdf > RDF Details > Typed Literals jmr.UriProperties = #juneau-marshall-rdf.jmr.RdfDetails.jmr.UriProperties, Overview > juneau-marshall-rdf > RDF Details > URI Properties -jp.App = #juneau-petstore.jp.App, Overview > juneau-pestore > About Petstore App -jp.Building = #juneau-petstore.jp.Building, Overview > juneau-pestore > Building and Running from Command-Line (Using Dockerfiles) -jp.Installing = #juneau-petstore.jp.Installing, Overview > juneau-pestore > Installing in Eclipse -jp.Running = #juneau-petstore.jp.Running, Overview > juneau-pestore > Running Petstore manually jrc.Authentication = #juneau-rest-client.jrc.Authentication, Overview > juneau-rest-client > Authentication jrc.AuthenticationBASIC = #juneau-rest-client.jrc.Authentication.jrc.AuthenticationBASIC, Overview > juneau-rest-client > Authentication > BASIC Authentication jrc.AuthenticationForm = #juneau-rest-client.jrc.Authentication.jrc.AuthenticationForm, Overview > juneau-rest-client > Authentication > FORM-based Authentication diff --git a/juneau-doc/src/main/javadoc/resources/fragments/toc.html b/juneau-doc/src/main/javadoc/resources/fragments/toc.html index b507228ef..73bdb79c4 100644 --- a/juneau-doc/src/main/javadoc/resources/fragments/toc.html +++ b/juneau-doc/src/main/javadoc/resources/fragments/toc.html @@ -360,12 +360,6 @@ <li><p><a class='doclink' href='{OVERVIEW_URL}#my-springboot-microservice.msm.Building'>Building and Running from Command-Line</a><span class='update'>created: 8.0.0</span></p> </ol> <li><p class='toc2'><a class='doclink' href='{OVERVIEW_URL}#juneau-petstore'>juneau-pestore</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p> - <ol> - <li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-petstore.jp.Installing'>Installing in Eclipse</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p> - <li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-petstore.jp.Running'>Running Petstore manually</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p> - <li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-petstore.jp.Building'>Building and Running from Command-Line (Using Dockerfiles)</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p> - <li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-petstore.jp.App'>About Petstore App</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p> - </ol> <li><p class='toc2'><a class='doclink' href='{OVERVIEW_URL}#Glossaries'>Glossaries</a><span class='update'>created: 8.1.3</span></p> <ol> <li><p><a class='doclink' href='{OVERVIEW_URL}#Glossaries.g.LanguageSupport'>Language Support</a><span class='update'>created: 8.1.3</span></p>
