index.xml 29.1 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Getting-starteds on </title>
    <link>http://beta.seedstack.org/getting-started/</link>
    <description>Recent content in Getting-starteds on </description>
    <generator>Hugo -- gohugo.io</generator>
    <atom:link href="http://beta.seedstack.org/getting-started/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Browser-only W20 project</title>
      <link>http://beta.seedstack.org/getting-started/project-templates/w20/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>http://beta.seedstack.org/getting-started/project-templates/w20/</guid>
      <description>

&lt;p&gt;If you need to create a browser-only Single Page Application, you can use the &lt;a href=&#34;http://beta.seedstack.org/docs/w20&#34;&gt;Web framework&lt;/a&gt; independently from
other SeedStack components. This type of application can invoke backend(s) written with any technology through REST
APIs.&lt;/p&gt;

&lt;p&gt;This type of application is composed of static files only which are best served by specialized infrastructure, like
an optimized Web server or even a Content Delivery Network (CDN). They can also be served as a part of a backend application.&lt;/p&gt;

&lt;h1 id=&#34;creation:b065d86b471b21f15342b99dbea0790a&#34;&gt;Creation&lt;/h1&gt;

&lt;p&gt;&amp;hellip;&lt;/p&gt;

&lt;h1 id=&#34;result:b065d86b471b21f15342b99dbea0790a&#34;&gt;Result&lt;/h1&gt;

&lt;p&gt;If the process is successful, you should see a structure similar to the following:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-plain&#34;&gt;- bower_components       &amp;lt;-- Dependencies go here
      
- fragments              &amp;lt;-- Application fragments go here, one per directory
    - ...
    
- bower.json
- index.html             &amp;lt;-- Application master page 
- w20.app.json           &amp;lt;-- Application configuration                   
&lt;/code&gt;&lt;/pre&gt;
</description>
    </item>
    
    <item>
      <title>Distribution</title>
      <link>http://beta.seedstack.org/getting-started/distribution/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>http://beta.seedstack.org/getting-started/distribution/</guid>
      <description>

&lt;p&gt;SeedStack modular design involves a lot of small modules that focus on a particular technology or scope. This enables you
to cherry-pick the modules you really need for your projects and not more. It also allows us to update components
independently, in their own lifecycle, without disruption to other parts of the stack.&lt;/p&gt;

&lt;p&gt;Usually, managing projects with numerous dependent modules, each with their own lifecycle, can be a complex task. Not so
much with the SeedStack distribution which &lt;strong&gt;automatically handles the dependency management for you&lt;/strong&gt;. The main benefits of
using the distribution over manual management of dependencies are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All component versions are managed so you won&amp;rsquo;t need to worry about it for any SeedStack dependency,&lt;/li&gt;
&lt;li&gt;Components that are part of a distribution are tested and validated together,&lt;/li&gt;
&lt;li&gt;The distribution provides &lt;em&gt;composite dependencies&lt;/em&gt; which regroups components that are frequently used together,&lt;/li&gt;
&lt;li&gt;The distribution provides the corresponding project archetypes and code generators.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Using a distribution in your project is almost always the recommended way to go.&lt;/strong&gt; It has no additional cost in build
time. Composite dependencies can sometimes add unwanted dependencies but they can be easily excluded or you can choose
to not use the composites at all while still having the benefits of dependency management.&lt;/p&gt;

&lt;div class=&#34;callout callout-info&#34;&gt;
    &lt;div style=&#34;display:table; width: 100%&#34;&gt;
        &lt;div style=&#34;display:table-cell; width: 50px; vertical-align: middle;&#34;&gt;
            
            
                &lt;i class=&#34;fa fa-info-circle icon-2x&#34; style=&#34;line-height: 30px;&#34;&gt;&lt;/i&gt;
            
            
            
        &lt;/div&gt;
        &lt;div style=&#34;display:table-cell; vertical-align: middle;&#34;&gt;
            &lt;p&gt;Each organization can create its own tailored distribution(s) which can include cherry-picked SeedStack components
along with the organization private components and extensions to the stack. We provide a reference Open-Source
distribution that can be used as-is or as a base for customization.&lt;/p&gt;

&lt;p&gt;This page is only about the reference distribution. For more information about creating your own distribution, please
check &lt;a href=&#34;create-your-own&#34;&gt;this page&lt;/a&gt;.&lt;/p&gt;

        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;h1 id=&#34;dependency-management:d680e8a854a7cbad6d490c445cba2eba&#34;&gt;Dependency management&lt;/h1&gt;

&lt;p&gt;To benefit from the dependency management of the distribution, just add the following dependency management snippet
to your root pom.xml:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;dependencyManagement&amp;gt;
    &amp;lt;dependencies&amp;gt;
        &amp;lt;dependency&amp;gt;
            &amp;lt;groupId&amp;gt;org.seedstack&amp;lt;/groupId&amp;gt;
            &amp;lt;artifactId&amp;gt;seedstack-bom&amp;lt;/artifactId&amp;gt;
            &amp;lt;version&amp;gt;???&amp;lt;/version&amp;gt;
            &amp;lt;type&amp;gt;pom&amp;lt;/type&amp;gt;
            &amp;lt;scope&amp;gt;import&amp;lt;/scope&amp;gt;
        &amp;lt;/dependency&amp;gt;
    &amp;lt;dependencies&amp;gt;
&amp;lt;dependencyManagement&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;All components under &lt;code&gt;org.seedstack.*&lt;/code&gt; group identifiers are managed.&lt;/p&gt;

&lt;h1 id=&#34;composite-dependencies:d680e8a854a7cbad6d490c445cba2eba&#34;&gt;Composite dependencies&lt;/h1&gt;

&lt;p&gt;Composites are POM-type dependencies that can be added to your various project modules. They regroup multiple modules
that a frequently used together and often necessary in SeedStack application. To add a composite dependency to one of
your modules, add the following dependency snippet:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;org.seedstack&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;???-composite&amp;lt;/artifactId&amp;gt;
    &amp;lt;type&amp;gt;pom&amp;lt;/type&amp;gt;
&amp;lt;/dependency&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;There are several types of composites targeted for different needs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;domain&lt;/code&gt; composite is intended for use as a dependency to standalone domain modules,&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;rest&lt;/code&gt; composite is intended for use as a dependency to REST micro-services (without UI).&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;web&lt;/code&gt; composite is intended for use as a dependency to classic Web applications.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;batch&lt;/code&gt; composite is intended for use as a dependency to standalone batch jobs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;div class=&#34;callout callout-tips&#34;&gt;
    &lt;div style=&#34;display:table; width: 100%&#34;&gt;
        &lt;div style=&#34;display:table-cell; width: 50px; vertical-align: middle;&#34;&gt;
            
                &lt;i class=&#34;fa fa-lightbulb-o icon-2x&#34; style=&#34;line-height: 30px;&#34;&gt;&lt;/i&gt;
            
            
            
            
        &lt;/div&gt;
        &lt;div style=&#34;display:table-cell; vertical-align: middle;&#34;&gt;
            &lt;p&gt;It is recommended to only use one composite per project module. Note that you can add any additional dependency you may require (such as add-ons), besides the composite.&lt;/p&gt;

        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;h1 id=&#34;archetypes-and-generators:d680e8a854a7cbad6d490c445cba2eba&#34;&gt;Archetypes and generators&lt;/h1&gt;

&lt;p&gt;The distribution also contains archetypes for different patterns. They provide an easy way to start developping java web applications, batches, implement domains and rest modules.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Introduction</title>
      <link>http://beta.seedstack.org/getting-started/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>http://beta.seedstack.org/getting-started/</guid>
      <description>

&lt;p&gt;&lt;strong&gt;SeedStack is a comprehensive software development stack&lt;/strong&gt; aimed at application or service creation. It addresses both
backend and frontend needs in a modular yet seamless solution. It means that you can cherry-pick the components or
choose to take advantage of the full stack for maximum development speed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SeedStack is strongly opinionated&lt;/strong&gt; and, as such, not an ubiquitous solution for every need. Its main focus is on helping
you to build better applications or services, ones that will be valuable assets in the long run and that you can evolve
and maintain as long as needed. It does so by providing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A highly modular architecture,&lt;/li&gt;
&lt;li&gt;Integration of a wide range of curated technologies,&lt;/li&gt;
&lt;li&gt;Easy-to-use building blocks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;SeedStack is designed with enterprise-class requirements in mind&lt;/strong&gt;. High modularity, powerful configuration, advanced
security, self-monitoring or side-channel administrative commands are typical examples of such features. They are easy
to configure if you need them and won&amp;rsquo;t get in your way if you don&amp;rsquo;t. In fact, SeedStack high modularity allows you to
only include the features you really need for each project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SeedStack is customizable and extensible at multiple levels&lt;/strong&gt;. Beyond configuring and extending each component, you can
tailor the whole stack to your personal or organization needs. The concept of distribution allows you to create a custom
solution with its own component choices, conventions and templates that you can then apply to all your organization
projects. We provide a reference Open-Source distribution for common needs but massive gains can be found by creating
your own (proprietary or not), especially if your organization is mid-sized or large.&lt;/p&gt;

&lt;h1 id=&#34;composition:d680e8a854a7cbad6d490c445cba2eba&#34;&gt;Composition&lt;/h1&gt;

&lt;p&gt;SeedStack is made of three major frameworks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The Java framework&lt;/strong&gt;, also known as Seed, is the foundation of the application or service backend. Its role is to
provide access to a range of technologies from application code.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The Web framework&lt;/strong&gt;, also known as W20, is the foundation of the application Web frontend if any. At its core, it
seamlessly integrates RequireJS and AngularJS to enable the creation of composite Web frontends. It also provides a
complete Bootstrap-based UI solution.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The Business framework&lt;/strong&gt; is the foundation of your business code. Based on the Domain-Driven Design
methodology, it implements all its concepts as read-to-use building blocks. It also provides various services often
needed around business code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&#34;img/stack.svg&#34; alt=&#34;Stack diagram&#34; /&gt;&lt;/p&gt;

&lt;p&gt;Modularity is at the heart of SeedStack so you can tailor the solution to your exact needs by adding only the relevant
components. Components are mostly independent of each other and, although there are dependencies between some of them,
they are kept to a minimum.&lt;/p&gt;

&lt;div class=&#34;callout callout-info&#34;&gt;
    &lt;div style=&#34;display:table; width: 100%&#34;&gt;
        &lt;div style=&#34;display:table-cell; width: 50px; vertical-align: middle;&#34;&gt;
            
            
                &lt;i class=&#34;fa fa-info-circle icon-2x&#34; style=&#34;line-height: 30px;&#34;&gt;&lt;/i&gt;
            
            
            
        &lt;/div&gt;
        &lt;div style=&#34;display:table-cell; vertical-align: middle;&#34;&gt;
            &lt;p&gt;There are two main technologies found in SeedStack:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Java&lt;/strong&gt; components which are distributed as Maven artifacts on &lt;a href=&#34;http://search.maven.org&#34;&gt;Maven Central&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HTML/CSS/JS&lt;/strong&gt; components which are distributed with &lt;a href=&#34;http://bower.io/search/&#34;&gt;Bower&lt;/a&gt;. These components are also
repackaged as Maven artifacts if Bower is unavailable in your environment.&lt;/li&gt;
&lt;/ul&gt;

        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Java RESTful project</title>
      <link>http://beta.seedstack.org/getting-started/project-templates/rest/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>http://beta.seedstack.org/getting-started/project-templates/rest/</guid>
      <description>

&lt;p&gt;A Java RESTful project is a minimalist mono-module project which produces a WAR artifact. It can rely on one or more
&lt;a href=&#34;../domain&#34;&gt;reusable domains&lt;/a&gt; and/or embed its own business logic. This type of project is intended for lightweight
RESTful projects like micro-services.&lt;/p&gt;

&lt;h1 id=&#34;creation&#34;&gt;Creation&lt;/h1&gt;

&lt;p&gt;To create a Java RESTful project from scratch, execute the following command:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;mvn org.seedstack:seedstack-maven-plugin:generate -Dtype=rest
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This will invoke the generate goal of the SeedStack maven plugin which will select the latest version
of the SeedStack distribution and use its &lt;a href=&#34;http://search.maven.org/#browse%7C-1094006884&#34;&gt;REST Maven archetype&lt;/a&gt;.
The process is interactive and will ask you a few questions about the project to be created.&lt;/p&gt;

&lt;h1 id=&#34;result&#34;&gt;Result&lt;/h1&gt;

&lt;p&gt;If the creation process is successful, you should see a unique module like the following:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-plain&#34;&gt;- myservice

    Contains the REST APIs and optionally the business logic behind them. This logic
    is often offloaded in reusable domain(s).
&lt;/code&gt;&lt;/pre&gt;
</description>
    </item>
    
    <item>
      <title>Java batch project</title>
      <link>http://beta.seedstack.org/getting-started/project-templates/batch/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>http://beta.seedstack.org/getting-started/project-templates/batch/</guid>
      <description>

&lt;p&gt;&amp;hellip;&lt;/p&gt;

&lt;h1 id=&#34;creation:65a4801df191460c3f6228cb5f043d6d&#34;&gt;Creation&lt;/h1&gt;

&lt;p&gt;To create a Java batch project project from scratch, execute the following command:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;mvn org.seedstack:seedstack-maven-plugin:generate -Dtype=batch
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This will invoke the generate goal of the SeedStack maven plugin which will select the latest version
of the SeedStack distribution and use its batch Maven archetype. The process is interactive and will ask you a few
questions about the project to be created.&lt;/p&gt;

&lt;h1 id=&#34;result:65a4801df191460c3f6228cb5f043d6d&#34;&gt;Result&lt;/h1&gt;

&lt;p&gt;If the creation process is successful, you should see a unique module similar to the following:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-plain&#34;&gt;- mybatch

    Contain the domain layer (if not in its own module), the applicative layer,
    the batch definition along with the related infrastructure and configuration.
&lt;/code&gt;&lt;/pre&gt;
</description>
    </item>
    
    <item>
      <title>Java classic Web project</title>
      <link>http://beta.seedstack.org/getting-started/project-templates/webapp/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>http://beta.seedstack.org/getting-started/project-templates/webapp/</guid>
      <description>

&lt;p&gt;A Java Web application project is a typical WAR-style project. It has an application module of JAR type, containing
application logic and possibly business domain logic if not separated to another module. It also has a Web module of
WAR type, containing Web-related code. It is deployed as a standard WAR.&lt;/p&gt;

&lt;h1 id=&#34;creation:e26d0c0afc9804b9baddb71e41688447&#34;&gt;Creation&lt;/h1&gt;

&lt;p&gt;To create a Java Web application project from scratch, execute the following command:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;mvn org.seedstack:seedstack-maven-plugin:generate -Dtype=web
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This will invoke the generate goal of the SeedStack maven plugin which will select the latest version
of the SeedStack distribution and use it &lt;a href=&#34;http://search.maven.org/#browse%7C1221480962&#34;&gt;Web Maven archetype&lt;/a&gt;.
The process is interactive and will ask you a few questions about the project to be created.&lt;/p&gt;

&lt;h1 id=&#34;result:e26d0c0afc9804b9baddb71e41688447&#34;&gt;Result&lt;/h1&gt;

&lt;p&gt;If the creation process is successful, you should see a structure similar to the following:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-plain&#34;&gt;- myapp

    Maven parent module used to regroup common pom.xml configuration.
    All dependency management should go here.

  - myapp-app

    Contains the domain (if not in its own module), the application logic
    along with the related infrastructure and configuration.

  - myapp-web

    Contains the Web interfaces code (REST resources, representations). May
    contain multiple interfaces (REST API + Web Services for instance).
    May contain additional resources needed by those interfaces (like static
    Web resources).
&lt;/code&gt;&lt;/pre&gt;
</description>
    </item>
    
    <item>
      <title>Project types</title>
      <link>http://beta.seedstack.org/getting-started/project-templates/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>http://beta.seedstack.org/getting-started/project-templates/</guid>
      <description>

&lt;p&gt;SeedStack-based projects can be created from scratch but we propose a number of predefined project templates in the SeedStack
reference distribution that can be generated from &lt;a href=&#34;https://maven.apache.org/guides/introduction/introduction-to-archetypes.html&#34;&gt;Maven archetypes&lt;/a&gt;
or &lt;a href=&#34;http://yeoman.io/&#34;&gt;Yeoman generators&lt;/a&gt;. We recommend that you use these project templates, especially if you are
new to SeedStack as they provide several benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;They are immediately executable and deployable after generation,&lt;/li&gt;
&lt;li&gt;They follow best practices, providing clean code organization and good modularity,&lt;/li&gt;
&lt;li&gt;They are easy to use and provide fast onboarding.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&#34;reference-project-templates&#34;&gt;Reference project templates&lt;/h1&gt;

&lt;p&gt;The following project templates are available from the reference distribution:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;webapp&#34;&gt;Java Web application&lt;/a&gt; template (backend + frontend),&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;rest&#34;&gt;Java RESTful service&lt;/a&gt; template (backend only),&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;batch&#34;&gt;Batch job&lt;/a&gt; template (backend only),&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;domain&#34;&gt;Reusable business domain&lt;/a&gt; template (reusable component),&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;w20&#34;&gt;W20 Single Page Applications&lt;/a&gt; template (frontend-only).&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&#34;callout callout-info&#34;&gt;
    &lt;div style=&#34;display:table; width: 100%&#34;&gt;
        &lt;div style=&#34;display:table-cell; width: 50px; vertical-align: middle;&#34;&gt;
            
            
                &lt;i class=&#34;fa fa-info-circle icon-2x&#34; style=&#34;line-height: 30px;&#34;&gt;&lt;/i&gt;
            
            
            
        &lt;/div&gt;
        &lt;div style=&#34;display:table-cell; vertical-align: middle;&#34;&gt;
            &lt;p&gt;Note that SeedStack is designed with extension in mind so you can design your own project types and provide archetypes
and code generators for them in a &lt;a href=&#34;../distribution/create-your-own&#34;&gt;custom distribution&lt;/a&gt;.&lt;/p&gt;

        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;h1 id=&#34;project-structure&#34;&gt;Project structure&lt;/h1&gt;

&lt;p&gt;Each project template has its own layout, adapted to the&lt;/p&gt;

&lt;h2 id=&#34;java-modules&#34;&gt;Java modules&lt;/h2&gt;

&lt;p&gt;When creating a project from a reference template, the
The following directory structure is recommended for all Java modules:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-plain&#34;&gt;- src

  - it  &amp;lt;-- for integration tests if any
    - java
    - resources
    
  - main
    - java
      - org.myorganization... 
    - resources
      - META-INF
        - configuration  &amp;lt;-- location of the module configuration files if any
          - ...
          
  - test  &amp;lt;-- for unit tests
    - java
    - resources
    
- pom.xml
&lt;/code&gt;&lt;/pre&gt;

&lt;h1 id=&#34;inner-structure-of-web-fragments&#34;&gt;Inner structure of Web fragments&lt;/h1&gt;

&lt;p&gt;Browser-only Web application are based upon the notion of &amp;laquo;W20 fragments&amp;raquo; which regroups various resources needed to provide
one or more feature(s). The following structure is recommended for all W20 fragments:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-plain&#34;&gt;- i18n                  &amp;lt;-- Localization files if any
- modules               &amp;lt;-- JS modules
- templates             &amp;lt;-- HTML templates
                        
- specs                 &amp;lt;-- Tests
- mocks                 &amp;lt;-- Mocks for tests

- my-fragment.w20.json  &amp;lt;-- fragment manifest 
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;div class=&#34;callout callout-info&#34;&gt;
    &lt;div style=&#34;display:table; width: 100%&#34;&gt;
        &lt;div style=&#34;display:table-cell; width: 50px; vertical-align: middle;&#34;&gt;
            
            
                &lt;i class=&#34;fa fa-info-circle icon-2x&#34; style=&#34;line-height: 30px;&#34;&gt;&lt;/i&gt;
            
            
            
        &lt;/div&gt;
        &lt;div style=&#34;display:table-cell; vertical-align: middle;&#34;&gt;
            &lt;p&gt;You can learn more about fragments &lt;a href=&#34;http://beta.seedstack.org/docs/w20/concepts/fragment&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;

        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Reusable domain project</title>
      <link>http://beta.seedstack.org/getting-started/project-templates/domain/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>http://beta.seedstack.org/getting-started/project-templates/domain/</guid>
      <description>

&lt;p&gt;If you are using the &lt;a href=&#34;http://beta.seedstack.org/docs/business&#34;&gt;business framework&lt;/a&gt; you can choose to write your domain in its own module for
reuse and modularity purposes. In that case, each domain (e.g. each business context) should go in its own project.&lt;/p&gt;

&lt;h1 id=&#34;creation&#34;&gt;Creation&lt;/h1&gt;

&lt;p&gt;To create a reusable domain project project from scratch, execute the following command:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;mvn org.seedstack:seedstack-maven-plugin:generate -Dtype=domain
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This will invoke the generate goal of the SeedStack maven plugin which will select the latest version
of the SeedStack distribution and use its &lt;a href=&#34;http://search.maven.org/#browse%7C1573518700&#34;&gt;domain Maven archetype&lt;/a&gt;.
The process is interactive and will ask you a few questions about the project to be created.&lt;/p&gt;

&lt;h1 id=&#34;result&#34;&gt;Result&lt;/h1&gt;

&lt;p&gt;If the creation process is successful, you should see a unique module like the following:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-plain&#34;&gt;- mydomain

    Contains a domain layer on its own. No application logic nor any infrastructure 
    should be placed here.
&lt;/code&gt;&lt;/pre&gt;
</description>
    </item>
    
    <item>
      <title>Tutorial</title>
      <link>http://beta.seedstack.org/getting-started/tutorial/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>http://beta.seedstack.org/getting-started/tutorial/</guid>
      <description>

&lt;p&gt;Welcome to the SeedStack 15-minutes tutorial! It is intended to walk you through the most interesting features
of SeedStack, by making you build a simple Web application from scratch.&lt;/p&gt;

&lt;div class=&#34;callout callout-info&#34;&gt;
    &lt;div style=&#34;display:table; width: 100%&#34;&gt;
        &lt;div style=&#34;display:table-cell; width: 50px; vertical-align: middle;&#34;&gt;
            
            
                &lt;i class=&#34;fa fa-info-circle icon-2x&#34; style=&#34;line-height: 30px;&#34;&gt;&lt;/i&gt;
            
            
            
        &lt;/div&gt;
        &lt;div style=&#34;display:table-cell; vertical-align: middle;&#34;&gt;
            &lt;p&gt;SeedStack can be used for any type of project and provides templates for several &lt;a href=&#34;../project-types&#34;&gt;predefined project types&lt;/a&gt;.
This tutorial is focused on a &lt;strong&gt;&lt;a href=&#34;../project-types/webapp&#34;&gt;classic Web application project&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;h1 id=&#34;create-the-project:d680e8a854a7cbad6d490c445cba2eba&#34;&gt;Create the project&lt;/h1&gt;

&lt;p&gt;The first step is to create the Web application using the latest project template:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-plain&#34;&gt;mvn org.seedstack:seedstack-maven-plugin:generate -Dtype=web
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The generator will ask you a few questions, below are the recommended answers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Project group id: &lt;code&gt;org.myorg&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Project artifact id: &lt;code&gt;my-app&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This will create a &lt;code&gt;my-app&lt;/code&gt; project in the current directory, with the following layout:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-plain&#34;&gt;my-app       &amp;lt;-- root module
    |-app
    |-web
&lt;/code&gt;&lt;/pre&gt;

&lt;h1 id=&#34;first-build:d680e8a854a7cbad6d490c445cba2eba&#34;&gt;First build&lt;/h1&gt;

&lt;p&gt;The just-created project is immediately buildable. Go into the root module directory (&lt;code&gt;my-app&lt;/code&gt;) and run the following command:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-plain&#34;&gt;mvn clean install
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If it is the first time you build a SeedStack project on your computer, it could take a little time to download all
dependencies.&lt;/p&gt;

&lt;h1 id=&#34;first-run:d680e8a854a7cbad6d490c445cba2eba&#34;&gt;First run&lt;/h1&gt;

&lt;p&gt;You can now run the project using the pre-configured Maven Jetty plugin. Go into the web module directory (&lt;code&gt;my-app/web&lt;/code&gt;)
directory and run the following command:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-plain&#34;&gt;mvn jetty:run
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If the log showed &lt;code&gt;Seed Web application started&lt;/code&gt;, you can display the Web UI by pointing your Browser of choice at
&lt;a href=&#34;http://localhost:8080&#34;&gt;http://localhost:8080&lt;/a&gt;. You can now import the project in your IDE if desired.&lt;/p&gt;

&lt;p&gt;&lt;div class=&#34;callout callout-info&#34;&gt;
    &lt;div style=&#34;display:table; width: 100%&#34;&gt;
        &lt;div style=&#34;display:table-cell; width: 50px; vertical-align: middle;&#34;&gt;
            
            
                &lt;i class=&#34;fa fa-info-circle icon-2x&#34; style=&#34;line-height: 30px;&#34;&gt;&lt;/i&gt;
            
            
            
        &lt;/div&gt;
        &lt;div style=&#34;display:table-cell; vertical-align: middle;&#34;&gt;
            &lt;p&gt;If you don&amp;rsquo;t import the project in a development environment that handles the compile/deploy/run cycle, remember to
rebuild the whole project after each modification and before restarting the jetty plugin. You can do so by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Killing the currently running Jetty server by hitting Ctrl-C,&lt;/li&gt;
&lt;li&gt;Going into the root project directory (&lt;code&gt;my-app&lt;/code&gt;) and execute the &lt;code&gt;mvn clean install&lt;/code&gt; command,&lt;/li&gt;
&lt;li&gt;Going into the web project directory (&lt;code&gt;my-app/web&lt;/code&gt;) and execute the &lt;code&gt;mvn jetty:run&lt;/code&gt; command.&lt;/li&gt;
&lt;/ul&gt;

        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>