Matt RaibleMatt Raible is a Web Developer and Java Champion. Connect with him on LinkedIn.

The Angular Mini-Book The Angular Mini-Book is a guide to getting started with Angular. You'll learn how to develop a bare-bones application, test it, and deploy it. Then you'll move on to adding Bootstrap, Angular Material, continuous integration, and authentication.

Spring Boot is a popular framework for building REST APIs. You'll learn how to integrate Angular with Spring Boot and use security best practices like HTTPS and a content security policy.

For book updates, follow @angular_book on Twitter.

The JHipster Mini-Book The JHipster Mini-Book is a guide to getting started with hip technologies today: Angular, Bootstrap, and Spring Boot. All of these frameworks are wrapped up in an easy-to-use project called JHipster.

This book shows you how to build an app with JHipster, and guides you through the plethora of tools, techniques and options you can use. Furthermore, it explains the UI and API building blocks so you understand the underpinnings of your great application.

For book updates, follow @jhipster-book on Twitter.

10+ YEARS


Over 10 years ago, I wrote my first blog post. Since then, I've authored books, had kids, traveled the world, found Trish and blogged about it all.

Ant and JUnit.

I reduced the build.xml file on my project drastically this morning (more than 900 lines). I used to have a task per testcase and was able to consolidate from this:

<!-- =================================================================== -->
<!--            Run the UserDAO test                                     -->
<!-- =================================================================== -->
<target name="test.userDAO" depends="compile">
  <echo message="Running UserDAO Test -------------------"/>
  <junit printsummary="yes" haltonfailure="yes" 
    haltonerror="yes" fork="yes">
      <jvmarg value="-Djunit.conf=./src/onpoint/PersistenceTestValues.ini"/>
      <classpath>
          <pathelement path="${webapp.target}/WEB-INF/classes"/>
      </classpath>
      <classpath refid="classpath"/>
      <formatter type="plain" usefile="false"/>
      <test name="com.onpoint.webapp.persistence.UserDAOTest"/>
  </junit>
</target>

To this:

<!-- =================================================================== -->
<!--            Run all the Persistence tests                            -->
<!-- =================================================================== -->
<target name="test.persistence" depends="compile">
    <echo message="Running Persistence Tests -------------------"/>
    <junit printsummary="yes" haltonfailure="yes" 
	  haltonerror="yes" fork="yes">
      <jvmarg value="-Djunit.conf=./src/onpoint/PersistenceTestValues.ini"/>
      <classpath>
          <path refid="classpath"/>
          <pathelement path="${webapp.target}/WEB-INF/classes"/>
      </classpath>
      <formatter type="plain" usefile="false"/>
      <test name="com.onpoint.webapp.persistence.${testcase}" if="testcase"/>
      <batchtest unless="testcase">
          <fileset dir="${webapp.target}/WEB-INF/classes" 
              includes="**/persistence/*Test.class"/>
      </batchtest>
  </junit>
</target>

And I got to remove the AllTests.java file in the persistence package! You probably knew this already, but just in case...

Thanks to Erik Hatcher for Java Development with Ant. I studied this book for three hours yesterday and it's already increasing my productivity! I hope to finish it by tomorrow afternoon - only 300 pages to go. It's pretty cool when you're reading someone's book and getting e-mails from them at the same time.

Posted in General at Oct 17 2002, 04:37:09 AM MDT Add a Comment
Comments:

Post a Comment:
  • HTML Syntax: Allowed