diff --git a/test/jdk/TEST.ROOT b/test/jdk/TEST.ROOT
index 94ff0660b487a416c973cadb36e3c31d2964e667..ea6422e57de2a34f5bb72802b07363b346a8cfa5 100644
--- a/test/jdk/TEST.ROOT
+++ b/test/jdk/TEST.ROOT
@@ -9,17 +9,41 @@
 # should be taken to handle test failures of intermittent or
 # randomness tests.
 #
-# A "headful" test requires a graphical environment to meaningfully
-# run. Tests that are not headful are "headless".
-# A test flagged with key sound needs audio devices on the system, this
-# may be accompanied by the headful keyword since audio device access 
+# A test flagged with cgroups uses cgroups.
+#
+# Notes on "client" keywords : headful sound printer multimon 
+# ===========================================================
+#
+# These keywords are there to help with test selection so that
+# tests that need a particular resource can be selected to run on a system
+# with that resource. Conversely "!somekeyword" can be used to exclude tests
+# on a system without such a resource.
+# Caution: If you are always excluding tests using any of these keywords then you
+# are likely missing many important tests.
+#
+# "headful". A "headful" test requires a graphical environment to meaningfully run.
+# This does not have to mean a physical host, since a VM can be configured as headful.
+# Tests that are not headful are "headless".
+# Note: all manual tests are assumed to be headful and do not need the keyword.
+#
+# "printer". Not all tests of printing APIs require a printer, but many do.
+# So a "printer" test requires a printer to be installed to do anything meaningful.
+# Tests may not fail if there is none, instead just silently return.
+# But they also may legitimately throw an Exception depending on the test.
+# Also printer tests are not necessarily headful, but some are, and some are automated.
+# 
+# "sound". Similarly, not all sound tests require audio devices, but many do.
+# A test flagged with key "sound" needs audio devices on the system.
+# Also they are not necessarily "headful", since they don't require a display etc.
+# But sometimes they may be accompanied by the headful keyword, since sound
 # is often linked to access to desktop resources and headful systems are
 # also more likely to have audio devices (ie meaning both input and output)
-# A test flagged with key "printer" requires a printer to succeed, else
-# throws a PrinterException or the like.
-# A test flagged with cgroups uses cgroups.
+#
+# "multimon" should be used in conjunction with headful and is used to identify
+# tests which require two displays connected.
 
-keys=2d dnd headful sound i18n intermittent printer randomness jfr cgroups
+keys=headful sound printer multimon \
+     i18n intermittent randomness jfr cgroups
 
 # Tests that must run in othervm mode
 othervm.dirs=java/awt java/beans javax/accessibility javax/imageio javax/sound javax/swing javax/print \
diff --git a/test/jdk/java/awt/print/PaintSetEnabledDeadlock/PaintSetEnabledDeadlock.java b/test/jdk/java/awt/Paint/PaintSetEnabledDeadlock/PaintSetEnabledDeadlock.java
similarity index 100%
rename from test/jdk/java/awt/print/PaintSetEnabledDeadlock/PaintSetEnabledDeadlock.java
rename to test/jdk/java/awt/Paint/PaintSetEnabledDeadlock/PaintSetEnabledDeadlock.java
diff --git a/test/jdk/java/awt/PrintJob/ConstrainedPrintingTest/ConstrainedPrintingTest.java b/test/jdk/java/awt/PrintJob/ConstrainedPrintingTest/ConstrainedPrintingTest.java
index 179b4594652f9a2220811a5e587a737b83c0c923..b284a0333166762ce1c1ab572efe524b6783dbe0 100644
--- a/test/jdk/java/awt/PrintJob/ConstrainedPrintingTest/ConstrainedPrintingTest.java
+++ b/test/jdk/java/awt/PrintJob/ConstrainedPrintingTest/ConstrainedPrintingTest.java
@@ -24,6 +24,7 @@
 /*
   @test
   @bug 4116029 4300383
+  @key printer
   @summary verify that child components can draw only inside their
            visible bounds
   @author das@sparc.spb.su area=awt.print
diff --git a/test/jdk/java/awt/PrintJob/EdgeTest/EdgeTest.java b/test/jdk/java/awt/PrintJob/EdgeTest/EdgeTest.java
index f7bf5e72a60a599487891b35496c0e7141f068c8..58f84b43fb29ffb23ffd56530a46b7d2371adc0a 100644
--- a/test/jdk/java/awt/PrintJob/EdgeTest/EdgeTest.java
+++ b/test/jdk/java/awt/PrintJob/EdgeTest/EdgeTest.java
@@ -24,9 +24,9 @@
 /**
  * @test
  * @bug 4092755
+ * @key printer
  * @summary Verifies that (0, 0) is the upper-left corner of the page, not
  *          the upper-left corner adjusted for the margins.
- * @author dpm
  * @run main/manual EdgeTest
  */
 
diff --git a/test/jdk/java/awt/PrintJob/HighResTest.java b/test/jdk/java/awt/PrintJob/HighResTest.java
index e802214fdaf9933097c9abac934478bf02deb1a4..dbf7d4a2ce6b61d71f7bca654ff035429f0bc143 100644
--- a/test/jdk/java/awt/PrintJob/HighResTest.java
+++ b/test/jdk/java/awt/PrintJob/HighResTest.java
@@ -26,7 +26,7 @@
   @test
   @bug 4227128 8066139
   @summary  Test printing at resolutions > 72dpi
-  @author dpm: area=awt.print
+  @key printer
   @run main/manual HighResTest
  */
 import java.awt.Button;
diff --git a/test/jdk/java/awt/PrintJob/JobAttrUpdateTest.java b/test/jdk/java/awt/PrintJob/JobAttrUpdateTest.java
index 186b9a6d8bac01cf76fc9762aa1b609961222983..cbc8d6a7ae8dd676ca91ce78c8e6eddc1e29e890 100644
--- a/test/jdk/java/awt/PrintJob/JobAttrUpdateTest.java
+++ b/test/jdk/java/awt/PrintJob/JobAttrUpdateTest.java
@@ -23,6 +23,7 @@
  /*
  * @test
  * @bug 6357905
+ * @key printer
  * @summary  JobAttributes.getFromPage() and getToPage() always returns 1
  * @run main/manual JobAttrUpdateTest
  */
diff --git a/test/jdk/java/awt/PrintJob/MultipleEnd/MultipleEnd.java b/test/jdk/java/awt/PrintJob/MultipleEnd/MultipleEnd.java
index b115e8d4a91db477cc2b2f2be07863964b1895c8..88b6a4720d93f6df426ed4dee2e9368e1960415c 100644
--- a/test/jdk/java/awt/PrintJob/MultipleEnd/MultipleEnd.java
+++ b/test/jdk/java/awt/PrintJob/MultipleEnd/MultipleEnd.java
@@ -23,7 +23,7 @@
 
 /**
  * @test
- * @key headful
+ * @key headful printer
  * @bug 4112758
  * @summary Checks that a second invocation of PrintJob.end() does not cause
  * an exception or segmentation violation.
diff --git a/test/jdk/java/awt/PrintJob/PageSetupDlgBlockingTest/PageSetupDlgBlockingTest.java b/test/jdk/java/awt/PrintJob/PageSetupDlgBlockingTest/PageSetupDlgBlockingTest.java
index 805a2fa5c2cae2360c9b76f8844a3adaf1ee82be..9fbf48f3eb467780bd4f70db0c6ccf10ada48e48 100644
--- a/test/jdk/java/awt/PrintJob/PageSetupDlgBlockingTest/PageSetupDlgBlockingTest.java
+++ b/test/jdk/java/awt/PrintJob/PageSetupDlgBlockingTest/PageSetupDlgBlockingTest.java
@@ -25,7 +25,7 @@
   @test
   @bug 4507585
   @summary Native modal dialog shouldn't block event dispatching when called on EventDispatchThread.
-  @author tav@sparc.spb.su: area=awt.PrintJob
+  @key printer
   @run main/manual=yesno PageSetupDlgBlockingTest
 
 */
diff --git a/test/jdk/java/awt/PrintJob/PrintArcTest/PrintArcTest.java b/test/jdk/java/awt/PrintJob/PrintArcTest/PrintArcTest.java
index 15cf121607ce81e3f169a4aba19efcb6b32c8e7d..ab969f68eb7efff5255a3dbc5175453649168555 100644
--- a/test/jdk/java/awt/PrintJob/PrintArcTest/PrintArcTest.java
+++ b/test/jdk/java/awt/PrintJob/PrintArcTest/PrintArcTest.java
@@ -23,10 +23,9 @@
 
 /*
  * @test
- * @key headful
+ * @key headful printer
  * @bug 4105609
  * @summary Test printing of drawArc preceded by drawString
- * @author robi.khan
  */
 
 import java.awt.*;
diff --git a/test/jdk/java/awt/PrintJob/PrintCheckboxTest/PrintCheckboxManualTest.java b/test/jdk/java/awt/PrintJob/PrintCheckboxTest/PrintCheckboxManualTest.java
index 33ef83bfddd85519519098dc96e6aeca390845eb..4fd3ee8ef16911f793efa0930b15f5d0cc7afaa7 100644
--- a/test/jdk/java/awt/PrintJob/PrintCheckboxTest/PrintCheckboxManualTest.java
+++ b/test/jdk/java/awt/PrintJob/PrintCheckboxTest/PrintCheckboxManualTest.java
@@ -26,7 +26,7 @@
   @bug 5045936 5055171
   @summary Tests that there is no ClassCastException thrown in printing
    checkbox and scrollbar with XAWT
-  @author art@sparc.spb.su
+  @key printer
   @run applet/manual=yesno PrintCheckboxManualTest.html
 */
 
diff --git a/test/jdk/java/awt/PrintJob/QuoteAndBackslashTest/QuoteAndBackslashTest.java b/test/jdk/java/awt/PrintJob/QuoteAndBackslashTest/QuoteAndBackslashTest.java
index dcc720de23e9121794168757b28878ef7d092949..c84671b6dc2550800a8dbabccce53b2f9aaae914 100644
--- a/test/jdk/java/awt/PrintJob/QuoteAndBackslashTest/QuoteAndBackslashTest.java
+++ b/test/jdk/java/awt/PrintJob/QuoteAndBackslashTest/QuoteAndBackslashTest.java
@@ -23,11 +23,10 @@
 
 /**
  * @test
- * @key headful
+ * @key headful printer
  * @bug 4040668
  * @summary Checks that banner titles which contain double quotation marks
  * or backslashes still print correctly.
- * @author dpm
  */
 
 import java.awt.*;
diff --git a/test/jdk/java/awt/PrintJob/RoundedRectTest/RoundedRectTest.java b/test/jdk/java/awt/PrintJob/RoundedRectTest/RoundedRectTest.java
index a8af7b585f11318aeaed1817427bd3d6c2e2e3ec..650203889c7e96c2b564e380e574e38640b4ca8d 100644
--- a/test/jdk/java/awt/PrintJob/RoundedRectTest/RoundedRectTest.java
+++ b/test/jdk/java/awt/PrintJob/RoundedRectTest/RoundedRectTest.java
@@ -23,10 +23,9 @@
 
 /**
  * @test
- * @key headful
+ * @key headful printer
  * @bug 4061440
  * @summary Checks that rounded rectangles print correctly.
- * @author dpm
  */
 
 import java.awt.*;
diff --git a/test/jdk/java/awt/PrintJob/SaveDialogTitleTest.java b/test/jdk/java/awt/PrintJob/SaveDialogTitleTest.java
index 4e502290f94bce99a1e99fbb6cad40dd3da8f8ac..b0d7c9cd238a5a7acad9d04c8969bc80acae6cf0 100644
--- a/test/jdk/java/awt/PrintJob/SaveDialogTitleTest.java
+++ b/test/jdk/java/awt/PrintJob/SaveDialogTitleTest.java
@@ -24,6 +24,7 @@
 /*
  * @test
  * @bug 4851363 8025988 8025990
+ * @key printer
  * @summary Tests the save to file dialog has a title.
  * @run main/manual=yesno/othervm SaveDialogTitleTest
  */
diff --git a/test/jdk/java/awt/PrintJob/Security/SecurityDialogTest.java b/test/jdk/java/awt/PrintJob/Security/SecurityDialogTest.java
index 3bda65e0a714cdc71e508e09bb8271844c171369..b84afc6eb9b96d7447a7dc1ac6dcaf77fc223294 100644
--- a/test/jdk/java/awt/PrintJob/Security/SecurityDialogTest.java
+++ b/test/jdk/java/awt/PrintJob/Security/SecurityDialogTest.java
@@ -23,7 +23,7 @@
 
 /**
  * @test
- * @key headful
+ * @key headful printer
  * @bug 6195901 6195923 6195928 6195933 6491273 6888734
  * @summary No SecurityException should be thrown when printing to a file
             using the given policy.
diff --git a/test/jdk/java/awt/PrintJob/TestPrintJobFrameAssociation.java b/test/jdk/java/awt/PrintJob/TestPrintJobFrameAssociation.java
index 1dd861cf325dfbe3b16fe7a21997e8493012ea85..2a58cb724d74d20f13b5f21cf904f42ea41d3bf0 100644
--- a/test/jdk/java/awt/PrintJob/TestPrintJobFrameAssociation.java
+++ b/test/jdk/java/awt/PrintJob/TestPrintJobFrameAssociation.java
@@ -23,6 +23,7 @@
 /*
  * @test
  * @bug 8154218
+ * @key printer
  * @summary  Verifies if owner Frame is associated with print dialog
  * @run main/manual TestPrintJobFrameAssociation
  */
diff --git a/test/jdk/java/awt/PrintJob/Text/stringwidth.sh b/test/jdk/java/awt/PrintJob/Text/stringwidth.sh
index 32bce9e728bc8d4ced1da461cc927e6c31e5a436..fea11e5ba5f70a3369b3fa2395f2baf31f5f1481 100644
--- a/test/jdk/java/awt/PrintJob/Text/stringwidth.sh
+++ b/test/jdk/java/awt/PrintJob/Text/stringwidth.sh
@@ -23,6 +23,7 @@
 #
 #   @test      
 #   @bug        4692562
+#   @key printer
 #   @summary    Requirement: Windows with printer installed.  It should print with text "Hello World".
 #   @compile StringWidth.java
 #   @run shell/manual stringwidth.sh
diff --git a/test/jdk/java/awt/print/Dialog/DestinationTest.java b/test/jdk/java/awt/print/Dialog/DestinationTest.java
index 8bb9403b566b476444bbe6b0d498af76cadcbcc0..933fba3042b074e4af225c2118f1abedb11ddb36 100644
--- a/test/jdk/java/awt/print/Dialog/DestinationTest.java
+++ b/test/jdk/java/awt/print/Dialog/DestinationTest.java
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 4846344 4851365 4851321 4851316 4863656 5046198 6293139
+ * @key printer
  * @summary Confirm that cancelling the dialog will not prompt for file.
  * @run main/manual DestinationTest
  */
diff --git a/test/jdk/java/awt/print/Dialog/DialogCopies.java b/test/jdk/java/awt/print/Dialog/DialogCopies.java
index 39d15461de8d1c7ab05e11e974c7fea6f2b29eed..1fb874a9d57dab0d7d92ba4390f5887c80069cd4 100644
--- a/test/jdk/java/awt/print/Dialog/DialogCopies.java
+++ b/test/jdk/java/awt/print/Dialog/DialogCopies.java
@@ -24,6 +24,7 @@
 /*
  * @test
  * @bug 6357858
+ * @key printer
  * @summary Job must reports the number of copies set in the dialog.
  * @run main/manual DialogCopies
  */
diff --git a/test/jdk/java/awt/print/Dialog/DialogOrient.java b/test/jdk/java/awt/print/Dialog/DialogOrient.java
index 92b3c65e64262263a5e1620bb3e8dadd499415c2..982e51548bf2a2d77c6912e017e109f2f3eb2808 100644
--- a/test/jdk/java/awt/print/Dialog/DialogOrient.java
+++ b/test/jdk/java/awt/print/Dialog/DialogOrient.java
@@ -24,6 +24,7 @@
 /*
   @test
   @bug 6594374
+  @key printer
   @summary  Confirm that the orientation is as specified.
   @run main/manual DialogOrient
 */
diff --git a/test/jdk/java/awt/print/Dialog/DialogOwnerTest.java b/test/jdk/java/awt/print/Dialog/DialogOwnerTest.java
index 45156e8590aa0ba38cc84c486645f0b16ab3d5fd..11c854ecfc342eee913232a2768f5301198e5733 100644
--- a/test/jdk/java/awt/print/Dialog/DialogOwnerTest.java
+++ b/test/jdk/java/awt/print/Dialog/DialogOwnerTest.java
@@ -23,6 +23,7 @@
 
 /* @test
    @bug 8203796
+   @key printer
    @run main/manual DialogOwnerTest
    @summary Test DialogOwner API
 */
diff --git a/test/jdk/java/awt/print/Dialog/DialogType.java b/test/jdk/java/awt/print/Dialog/DialogType.java
index 00b07930cf07cbbeaf4889d2afee11a5efa61a5e..472b89e44f213bcc8a6462c1f2857204447934b7 100644
--- a/test/jdk/java/awt/print/Dialog/DialogType.java
+++ b/test/jdk/java/awt/print/Dialog/DialogType.java
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 6568874
+ * @key printer
  * @summary Verify the native dialog works with attribute sets.
  * @run main/manual=yesno DialogType
  */
diff --git a/test/jdk/java/awt/print/Dialog/MediaInPrintable.java b/test/jdk/java/awt/print/Dialog/MediaInPrintable.java
index a800f69c74da2a5d8adb029b0a5b1d4507928a3e..cb74cb140f55c58fe4ef1402806d8e809bff0a33 100644
--- a/test/jdk/java/awt/print/Dialog/MediaInPrintable.java
+++ b/test/jdk/java/awt/print/Dialog/MediaInPrintable.java
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 4869575 6361766
+ * @key printer
  * @summary Setting orientation in the page format does not have any effect on the printout. To test 6361766, the application must exit.
  * @run main/manual MediaInPrintable
  */
diff --git a/test/jdk/java/awt/print/Dialog/PaperSizeError.java b/test/jdk/java/awt/print/Dialog/PaperSizeError.java
index 970c7df2fcc23172855340bf3091e7005e510615..fea7bb85af87372e5a330fd3300f22b51a0298dc 100644
--- a/test/jdk/java/awt/print/Dialog/PaperSizeError.java
+++ b/test/jdk/java/awt/print/Dialog/PaperSizeError.java
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 6360339
+ * @key printer
  * @summary Test for fp error in paper size calculations.
  * @run main/manual PaperSizeError
  */
diff --git a/test/jdk/java/awt/print/Dialog/PrintApplet.java b/test/jdk/java/awt/print/Dialog/PrintApplet.java
index ecd9920571c6ad92da89de86f45149248fef10bc..c8a3cd955feed07b4a437a6f1bea272519b745a9 100644
--- a/test/jdk/java/awt/print/Dialog/PrintApplet.java
+++ b/test/jdk/java/awt/print/Dialog/PrintApplet.java
@@ -24,6 +24,7 @@
 /*
   @test
   @bug 5024549
+  @key printer
   @summary   Pass if dialogs are modal.
   @run applet/manual PrintApplet.html
 */
diff --git a/test/jdk/java/awt/print/Dialog/PrintDialog.java b/test/jdk/java/awt/print/Dialog/PrintDialog.java
index 870db01a98574e26754639418941b789a5f5fe37..c81ebfbc45246f180264769e4c7292341109b6f2 100644
--- a/test/jdk/java/awt/print/Dialog/PrintDialog.java
+++ b/test/jdk/java/awt/print/Dialog/PrintDialog.java
@@ -24,6 +24,7 @@
 /*
   @test
   @bug 6342748
+  @key printer
   @summary  Pass if dialogs display correctly
   @run main/manual PrintDialog
 */
diff --git a/test/jdk/java/awt/print/Dialog/PrintDlgPageable.java b/test/jdk/java/awt/print/Dialog/PrintDlgPageable.java
index d447874f72aeb257fe31e55aa82b804dacb04d38..eadd3cf9cb6bc8d86ba5e62b70c5eae632835485 100644
--- a/test/jdk/java/awt/print/Dialog/PrintDlgPageable.java
+++ b/test/jdk/java/awt/print/Dialog/PrintDlgPageable.java
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 4869502 4869539
+ * @key printer
  * @summary Confirm that ToPage is populated for argument =2. Range is disabled for argument = 0.
  * @run main/manual PrintDlgPageable
  */
diff --git a/test/jdk/java/awt/print/Dialog/RestoreActiveWindowTest/RestoreActiveWindowTest.java b/test/jdk/java/awt/print/Dialog/RestoreActiveWindowTest/RestoreActiveWindowTest.java
index 8d29dbb58490fd2db67f25ea6dba5127e4298eb6..2d2e00f2ed7a87d9f131e1795fa501f854aae638 100644
--- a/test/jdk/java/awt/print/Dialog/RestoreActiveWindowTest/RestoreActiveWindowTest.java
+++ b/test/jdk/java/awt/print/Dialog/RestoreActiveWindowTest/RestoreActiveWindowTest.java
@@ -24,6 +24,7 @@
 /*
  * @test
  * @bug 6365992 6379599 8137137
+ * @key printer
  * @summary REG: Showing and disposing a native print dialog makes the main
  *  frame inactive, Win32
  * @run main/manual RestoreActiveWindowTest
diff --git a/test/jdk/java/awt/print/Headless/HeadlessPrinterJob.java b/test/jdk/java/awt/print/Headless/HeadlessPrinterJob.java
index ff7a22ec8a3e2e30a8eb25009cc79a972df6a303..143c898e32ace57e3596d4ed259483be17fb6aff 100644
--- a/test/jdk/java/awt/print/Headless/HeadlessPrinterJob.java
+++ b/test/jdk/java/awt/print/Headless/HeadlessPrinterJob.java
@@ -31,6 +31,7 @@ import java.awt.print.*;
 
 /*
  * @test
+ * @key printer
  * @summary Check that PrinterJob constructor and methods do not throw unexpected
  *          exceptions in headless mode
  * @run main/othervm -Djava.awt.headless=true HeadlessPrinterJob
diff --git a/test/jdk/java/awt/print/MissedFontFamilyName/PrintFontWithMissedFontFamilyTest.java b/test/jdk/java/awt/print/MissedFontFamilyName/PrintFontWithMissedFontFamilyTest.java
index a6808282f37aaa73867b76cc517fd1ba28a5391b..af655f2d69e8428d837d5593a8ad9839d8cb58ae 100644
--- a/test/jdk/java/awt/print/MissedFontFamilyName/PrintFontWithMissedFontFamilyTest.java
+++ b/test/jdk/java/awt/print/MissedFontFamilyName/PrintFontWithMissedFontFamilyTest.java
@@ -25,6 +25,7 @@
 /**
  * @test
  * @bug 8265761
+ * @key printer
  * @requires (os.family == "windows")
  * @summary Font with missed font family name is not properly printed on Windows
  * @run main/othervm/manual PrintFontWithMissedFontFamilyTest
diff --git a/test/jdk/java/awt/print/PageFormat/CustomPaper.java b/test/jdk/java/awt/print/PageFormat/CustomPaper.java
index 3b8e83d5c1b22917b68028fc9a3fe8340b162f7a..1976a20c01f12155ec9bc2a106b73c30fe8af4aa 100644
--- a/test/jdk/java/awt/print/PageFormat/CustomPaper.java
+++ b/test/jdk/java/awt/print/PageFormat/CustomPaper.java
@@ -25,7 +25,7 @@
  * @test
  * @bug 4355514
  * @bug 4385157
- * @author Jennifer Godinez
+ * @key printer
  * @summary Prints a rectangle to show the imageable area of a
  *          12in x 14in custom paper size.
  * @run main/manual CustomPaper
diff --git a/test/jdk/java/awt/print/PageFormat/ImageableAreaTest.java b/test/jdk/java/awt/print/PageFormat/ImageableAreaTest.java
index 7bf37415e6e7d0ed6590928e6a8b498f2dd591fc..07f458704a53a5549da8e5ff9affb9b7e58921dc 100644
--- a/test/jdk/java/awt/print/PageFormat/ImageableAreaTest.java
+++ b/test/jdk/java/awt/print/PageFormat/ImageableAreaTest.java
@@ -47,7 +47,7 @@ import javax.swing.table.TableModel;
  * @test
  * @bug 8044444 8081491
  * @summary The output's 'Page-n' footer does not show completely
- * @author Alexandr Scherbatiy
+ * @key printer
  * @run main/manual ImageableAreaTest
  */
 public class ImageableAreaTest {
diff --git a/test/jdk/java/awt/print/PageFormat/NullPaper.java b/test/jdk/java/awt/print/PageFormat/NullPaper.java
index 0bae3aa95921dbdf5368f924e456629da29c4024..1a9000b61350c74e38402358d012430a961a3a3c 100644
--- a/test/jdk/java/awt/print/PageFormat/NullPaper.java
+++ b/test/jdk/java/awt/print/PageFormat/NullPaper.java
@@ -23,13 +23,11 @@
 
 /*
   @test
-  @key headful
   @bug 4199506
   @summary  java.awt.print.PageFormat.setpaper(Paper paper)
                  assertion test fails by not throwing
                  NullPointerException when a null paper instance is
                  passed as argument and this is specified in the doc.
-  @author rbi: area=PageFormat
   @run main NullPaper
 */
 
@@ -46,9 +44,6 @@
 
  */
 
-import java.awt.*;
-import java.awt.event.*;
-import java.awt.geom.*;
 import java.awt.print.*;
 
 // This test is a "main" test as applets would need Runtime permission
@@ -154,7 +149,6 @@ public class NullPaper {
    public static synchronized void pass()
     {
       System.out.println( "The test passed." );
-      System.out.println( "The test is over, hit  Ctl-C to stop Java VM" );
       //first check if this is executing in main thread
       if ( mainThread == Thread.currentThread() )
        {
@@ -180,7 +174,6 @@ public class NullPaper {
    public static synchronized void fail( String whyFailed )
     {
       System.out.println( "The test failed: " + whyFailed );
-      System.out.println( "The test is over, hit  Ctl-C to stop Java VM" );
       //check if this called from main thread
       if ( mainThread == Thread.currentThread() )
        {
diff --git a/test/jdk/java/awt/print/PageFormat/Orient.java b/test/jdk/java/awt/print/PageFormat/Orient.java
index ac3bb1ed8405489f7fd457adb690dec2792f5f5f..ea6facaf5704227d0952538b105b3507e7e3bd42 100644
--- a/test/jdk/java/awt/print/PageFormat/Orient.java
+++ b/test/jdk/java/awt/print/PageFormat/Orient.java
@@ -27,7 +27,7 @@
   @summary  Confirm that the you get three pages of output, one
             each in portrait, landscape, and reverse landscape
             orientations.
-  @author rbi: area=PageFormat
+  @key printer
   @run main/manual Orient
 */
 
diff --git a/test/jdk/java/awt/print/PageFormat/PageFormatFromAttributes.java b/test/jdk/java/awt/print/PageFormat/PageFormatFromAttributes.java
index e552db507de93198ef6bc4dd9e25d3d7cbfc1e75..b5ac83969f2b396395b6a4f4a6485db91aefebb4 100644
--- a/test/jdk/java/awt/print/PageFormat/PageFormatFromAttributes.java
+++ b/test/jdk/java/awt/print/PageFormat/PageFormatFromAttributes.java
@@ -25,6 +25,7 @@
  * @test
  * @bug 4500750 6848799 8028584
  * @summary Tests creating page format from attributes
+ * @key printer
  * @run main PageFormatFromAttributes
  */
 import java.awt.print.*;
diff --git a/test/jdk/java/awt/print/PageFormat/PageSetupDialog.java b/test/jdk/java/awt/print/PageFormat/PageSetupDialog.java
index 98da138ac223991c841dd9732a07180e4d94eb77..5284793ef01539651b4ddb033c67d251cd8e0b61 100644
--- a/test/jdk/java/awt/print/PageFormat/PageSetupDialog.java
+++ b/test/jdk/java/awt/print/PageFormat/PageSetupDialog.java
@@ -28,7 +28,7 @@
  * @bug 6358747
  * @bug 6574633
  * @summary Page setup dialog settings
- * @author prr
+ * @key printer
  * @run main/manual PageSetupDialog
  */
 
diff --git a/test/jdk/java/awt/print/PageFormat/PrintContentCutOffTest.java b/test/jdk/java/awt/print/PageFormat/PrintContentCutOffTest.java
index d2362cdc81536277aeea596e30d52eb37277f8e5..df07741c9076d11738326a7564ecdedf5a2a6b05 100644
--- a/test/jdk/java/awt/print/PageFormat/PrintContentCutOffTest.java
+++ b/test/jdk/java/awt/print/PageFormat/PrintContentCutOffTest.java
@@ -24,6 +24,7 @@
 
 /**
  * @test
+ * @key printer
  * @bug 8295737
  * @summary macOS: Print content cut off when width > height with portrait orientation
  * @run main/othervm/manual PrintContentCutOffTest
diff --git a/test/jdk/java/awt/print/PageFormat/ReverseLandscapeTest.java b/test/jdk/java/awt/print/PageFormat/ReverseLandscapeTest.java
index 2c6544f4af178c1caa397298fa0f30bcd6ae436c..850123aa9a8afb5ca8aa2b68fd726279941403c5 100644
--- a/test/jdk/java/awt/print/PageFormat/ReverseLandscapeTest.java
+++ b/test/jdk/java/awt/print/PageFormat/ReverseLandscapeTest.java
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @key headful
+ * @key headful printer
  * @bug 4254954
  * @summary PageFormat would fail on solaris when setting orientation
  */
diff --git a/test/jdk/java/awt/print/PageFormat/SetOrient.html b/test/jdk/java/awt/print/PageFormat/SetOrient.html
index e500872ff0548994191368772ba7702769f88abe..422d64e4610f1c991e7da16d083c8f0033a85ba2 100644
--- a/test/jdk/java/awt/print/PageFormat/SetOrient.html
+++ b/test/jdk/java/awt/print/PageFormat/SetOrient.html
@@ -27,6 +27,7 @@
    @bug 4186119
    @summary Confirm that the clip and transform of the Graphics2D is
             affected by the landscape orientation of the PageFormat.
+   @key printer
    @run applet/manual=yesno SetOrient.html
   -->
 <html>
diff --git a/test/jdk/java/awt/print/PageFormat/SmallPaperPrinting.java b/test/jdk/java/awt/print/PageFormat/SmallPaperPrinting.java
index e03e9f283b2708e0f00e6eed2da0c62ff1112918..e936cd047de7b24d914a7ff3745e6e22d38d86b3 100644
--- a/test/jdk/java/awt/print/PageFormat/SmallPaperPrinting.java
+++ b/test/jdk/java/awt/print/PageFormat/SmallPaperPrinting.java
@@ -21,43 +21,56 @@
  * questions.
  */
 
-   import java.awt.*;
-   import java.awt.print.*;
+import java.awt.Graphics;
+import java.awt.print.PageFormat;
+import java.awt.print.Paper;
+import java.awt.print.Printable;
+import java.awt.print.PrinterException;
+import java.awt.print.PrinterJob;
 
-   public class SmallPaperPrinting
-   {
-      public static void main(String args[])
-      {
-        System.out.println("----------------- Instructions --------------------");
-        System.out.println("Arguments: (none)  - paper width=1,     height=.0001");
-        System.out.println("              1    - paper width=.0001, height=1");
-        System.out.println("              2    - paper width=-1,    height=1");
-        System.out.println("A passing test should catch a PrinterException");
-        System.out.println("and should display \"Print error: (exception msg)\".");
-        System.out.println("---------------------------------------------------\n");
-         PrinterJob job = PrinterJob.getPrinterJob();
-         PageFormat format = job.defaultPage();
-         Paper paper = format.getPaper();
+/*
+ * @test
+ * @key printer
+ * @run main/othervm SmallPaperPrinting
+ * @run main/othervm SmallPaperPrinting 1
+ * @run main/othervm SmallPaperPrinting 2
+ */
+
+public class SmallPaperPrinting
+{
+   public static void main(String args[]) {
+      System.out.println("----------------- Instructions --------------------");
+      System.out.println("Arguments: (none)  - paper width=1,     height=.0001");
+      System.out.println("              1    - paper width=.0001, height=1");
+      System.out.println("              2    - paper width=-1,    height=1");
+      System.out.println("A passing test should catch a PrinterException");
+      System.out.println("and should display \"Print error: (exception msg)\".");
+      System.out.println("---------------------------------------------------\n");
+      PrinterJob job = PrinterJob.getPrinterJob();
+      PageFormat format = job.defaultPage();
+      Paper paper = format.getPaper();
 
-         double w = 1, h = .0001;  // Generates ArithmeticException: / by zero.
-         if(args.length > 0 && args[0].equals("1")) {
-            w = .0001;  h = 1; }  // Generates IllegalArgumentException.
-         else if(args.length > 0 && args[0].equals("2")) {
-            w = -1;  h = 1; }  // Generates NegativeArraySizeException.
-         paper.setSize(w, h);
-         paper.setImageableArea(0, 0, w, h);
-         format.setPaper(paper);
-         job.setPrintable(
-               new Printable() {
-                  public int print(Graphics g, PageFormat page_format, int page) {
-                     return NO_SUCH_PAGE;
-                  }
-               }, format);
+      double w = 1, h = .0001;  // Generates ArithmeticException: / by zero.
+      if (args.length > 0 && args[0].equals("1")) {
+          w = .0001;  h = 1;
+      }  // Generates IllegalArgumentException.
+      else if (args.length > 0 && args[0].equals("2")) {
+          w = -1;  h = 1;
+      }  // Generates NegativeArraySizeException.
+      paper.setSize(w, h);
+      paper.setImageableArea(0, 0, w, h);
+      format.setPaper(paper);
+      job.setPrintable(
+            new Printable() {
+               public int print(Graphics g, PageFormat page_format, int page) {
+                  return NO_SUCH_PAGE;
+               }
+            }, format);
 
-         try {
-            job.print(); }
-            catch(PrinterException e) {
-               System.err.println("Print error:\n" + e.getMessage()); // Passing test!
-            }
+      try {
+          job.print();
+      } catch (PrinterException e) {
+          System.err.println("Print error:\n" + e.getMessage()); // Passing test!
       }
    }
+}
diff --git a/test/jdk/java/awt/print/PageFormat/ValidateCustom.java b/test/jdk/java/awt/print/PageFormat/ValidateCustom.java
index e15eebf9bc42db589449a779bb9a520096f35d23..2521609ee4faf0d9ec02d80b2bb0d7059e7bfdec 100644
--- a/test/jdk/java/awt/print/PageFormat/ValidateCustom.java
+++ b/test/jdk/java/awt/print/PageFormat/ValidateCustom.java
@@ -24,7 +24,7 @@
 /*
  * @test
  * @bug 4414987
- * @author Jennifer Godinez
+ * @key printer
  * @summary Displays width & height of validated custom paper size
  * @run main/manual ValidateCustom
  */
diff --git a/test/jdk/java/awt/print/PageFormat/WrongPaperForBookPrintingTest.java b/test/jdk/java/awt/print/PageFormat/WrongPaperForBookPrintingTest.java
index 5c4410e0ee440cc1b9351ec963f50550bd811fb6..1015fab4ed6ec24ae1bca3867485eebe5230706a 100644
--- a/test/jdk/java/awt/print/PageFormat/WrongPaperForBookPrintingTest.java
+++ b/test/jdk/java/awt/print/PageFormat/WrongPaperForBookPrintingTest.java
@@ -22,7 +22,7 @@
  */
 
 /* @test
-   @key headful
+   @key printer
    @bug 8201818
    @summary Printing attributes break page size set via "java.awt.print.Book"
             object
diff --git a/test/jdk/java/awt/print/PageFormat/WrongPaperPrintingTest.java b/test/jdk/java/awt/print/PageFormat/WrongPaperPrintingTest.java
index 77b46031487d4fd8afd7e20516a0e4f1e9c0e618..d96d4a4c33626e0e7825f1927008eb08088969e6 100644
--- a/test/jdk/java/awt/print/PageFormat/WrongPaperPrintingTest.java
+++ b/test/jdk/java/awt/print/PageFormat/WrongPaperPrintingTest.java
@@ -23,6 +23,7 @@
 
 /* @test
    @bug 8167102 8181659
+   @key printer
    @summary PrintRequestAttributeSet breaks page size set using PageFormat
    @run main/manual WrongPaperPrintingTest
  */
diff --git a/test/jdk/java/awt/print/PathPrecisionScaleFactor/PathPrecisionScaleFactorShapeTest.java b/test/jdk/java/awt/print/PathPrecisionScaleFactor/PathPrecisionScaleFactorShapeTest.java
index 3b90d1e2068f3a972688365d51ab0f42702f9622..9a626eae364742e274be6108e843a9cc0979f02e 100644
--- a/test/jdk/java/awt/print/PathPrecisionScaleFactor/PathPrecisionScaleFactorShapeTest.java
+++ b/test/jdk/java/awt/print/PathPrecisionScaleFactor/PathPrecisionScaleFactorShapeTest.java
@@ -25,6 +25,7 @@
 /**
  * @test
  * @bug 8262470
+ * @key printer
  * @requires (os.family == "windows")
  * @summary Check thay shapes are properly painted with the precision scale factor
  * @run main/othervm/manual PathPrecisionScaleFactorShapeTest
diff --git a/test/jdk/java/awt/print/PathPrecisionScaleFactor/PathPrecisionScaleFactorTextTest.java b/test/jdk/java/awt/print/PathPrecisionScaleFactor/PathPrecisionScaleFactorTextTest.java
index 9b20ab4748a225f8090077a8092c61f0f60f9eb8..f959ec9ca7c58ceb56dca9fc399df3f45210e655 100644
--- a/test/jdk/java/awt/print/PathPrecisionScaleFactor/PathPrecisionScaleFactorTextTest.java
+++ b/test/jdk/java/awt/print/PathPrecisionScaleFactor/PathPrecisionScaleFactorTextTest.java
@@ -25,6 +25,7 @@
 /**
  * @test
  * @bug 8262470
+ * @key printer
  * @requires (os.family == "windows")
  * @summary Check that a GlyphVector outline is printed with good quility on low dpi printers
  * @run main/othervm/manual PathPrecisionScaleFactorTextTest
diff --git a/test/jdk/java/awt/print/PrinterJob/BannerTest.java b/test/jdk/java/awt/print/PrinterJob/BannerTest.java
index e061e240400642f1e441048a0e180e38c9b060cd..e98bfaaf8d6690d3944f89d1750f82231a4c59c5 100644
--- a/test/jdk/java/awt/print/PrinterJob/BannerTest.java
+++ b/test/jdk/java/awt/print/PrinterJob/BannerTest.java
@@ -23,6 +23,7 @@
 /*
  * @test
  * @bug 6575247 8170579
+ * @key printer
  * @summary  Verifies if Banner page is printed
  * @requires os.family == "solaris"
  * @run main/manual BannerTest
diff --git a/test/jdk/java/awt/print/PrinterJob/Cancel/PrinterJobCancel.java b/test/jdk/java/awt/print/PrinterJob/Cancel/PrinterJobCancel.java
index 0ad27cb5a53ea705b43c8a80ff1d72e1b6ac7a11..20197224f56d5d0b16bfa9069018ffebaa72f328 100644
--- a/test/jdk/java/awt/print/PrinterJob/Cancel/PrinterJobCancel.java
+++ b/test/jdk/java/awt/print/PrinterJob/Cancel/PrinterJobCancel.java
@@ -25,7 +25,7 @@
  * @test
  * @bug 4245280
  * @summary PrinterJob not cancelled when PrinterJob.cancel() is used
- * @author prr
+ * @key printer
  * @run main/manual PrinterJobCancel
  */
 
diff --git a/test/jdk/java/awt/print/PrinterJob/Collate2DPrintingTest.java b/test/jdk/java/awt/print/PrinterJob/Collate2DPrintingTest.java
index 8d08da6a4a595cf1c7407e9f7145c412bb596c30..754030c4e9e6c3feabe1b925959bc6393840cd91 100644
--- a/test/jdk/java/awt/print/PrinterJob/Collate2DPrintingTest.java
+++ b/test/jdk/java/awt/print/PrinterJob/Collate2DPrintingTest.java
@@ -25,6 +25,7 @@
  * @test
  * @bug 6362683 8012381
  * @summary Collation should work.
+ * @key printer
  * @run main/manual Collate2DPrintingTest
  */
 import java.awt.*;
diff --git a/test/jdk/java/awt/print/PrinterJob/CompareImageable.java b/test/jdk/java/awt/print/PrinterJob/CompareImageable.java
index 79a78c3b5a88004cc39aaebc42ae20efc28b000f..aec27d09d931a6eb4915ca98c1f25437531b8f98 100644
--- a/test/jdk/java/awt/print/PrinterJob/CompareImageable.java
+++ b/test/jdk/java/awt/print/PrinterJob/CompareImageable.java
@@ -24,6 +24,7 @@
 /*
   @test
   @bug 4748055
+  @key printer
   @summary   PASS if the values are same in both cases (2 and 3) below.
   @run main/manual CompareImageable
 */
diff --git a/test/jdk/java/awt/print/PrinterJob/CustomFont/CustomFont.java b/test/jdk/java/awt/print/PrinterJob/CustomFont/CustomFont.java
index 2b6c91fc0532b0964b2de77cbed0d3a666cfc519..e12b7fe16890ced6e81eec06e1a2189d0cc69005 100644
--- a/test/jdk/java/awt/print/PrinterJob/CustomFont/CustomFont.java
+++ b/test/jdk/java/awt/print/PrinterJob/CustomFont/CustomFont.java
@@ -25,7 +25,7 @@
   @test
   @bug 4386025 8231243
   @summary fonts not in win32 font directory print incorrectly.
-  @author prr: area=PrinterJob
+  @key printer
   @run main/manual CustomFont
 */
 import java.io.*;
diff --git a/test/jdk/java/awt/print/PrinterJob/CustomPrintService/PrintDialog.java b/test/jdk/java/awt/print/PrinterJob/CustomPrintService/PrintDialog.java
index d18ee86878de61999a444e839e456ec07a8f1bda..cf37cf0cfa758703453c109b50f432248c6fcf1a 100644
--- a/test/jdk/java/awt/print/PrinterJob/CustomPrintService/PrintDialog.java
+++ b/test/jdk/java/awt/print/PrinterJob/CustomPrintService/PrintDialog.java
@@ -30,7 +30,6 @@ import javax.print.PrintServiceLookup;
  * @bug 6870661
  * @summary Verify that no native dialog is opened for a custom PrintService
  * @run main/manual PrintDialog
- * @author reinhapa
  */
 public class PrintDialog {
 
diff --git a/test/jdk/java/awt/print/PrinterJob/CustomPrintService/SetPrintServiceTest.java b/test/jdk/java/awt/print/PrinterJob/CustomPrintService/SetPrintServiceTest.java
index 9c3ebe7d9217e7ae320b2dddf383cf909f86f491..5a7fb526e9d6bde3b529c4581800cb95c39b81b3 100644
--- a/test/jdk/java/awt/print/PrinterJob/CustomPrintService/SetPrintServiceTest.java
+++ b/test/jdk/java/awt/print/PrinterJob/CustomPrintService/SetPrintServiceTest.java
@@ -28,7 +28,6 @@ import java.awt.print.PrinterJob;
  * @test
  * @bug 6870661
  * @summary tests setPrintService() with a custom implementation
- * @author reinhapa
  */
 public class SetPrintServiceTest {
 
diff --git a/test/jdk/java/awt/print/PrinterJob/DeviceScale.java b/test/jdk/java/awt/print/PrinterJob/DeviceScale.java
index 7320eda70c911c65bf5f12d3a5c616b82244504a..008b5d2f0fa9fb10851fabadb2d2a97fd2377c01 100644
--- a/test/jdk/java/awt/print/PrinterJob/DeviceScale.java
+++ b/test/jdk/java/awt/print/PrinterJob/DeviceScale.java
@@ -21,7 +21,7 @@
  * questions.
  */
 
-/* @test 1.2 02/05/15
+/* @test
    @bug 4810363 4924441
    @key printer
    @run main DeviceScale
diff --git a/test/jdk/java/awt/print/PrinterJob/DlgAttrsBug.java b/test/jdk/java/awt/print/PrinterJob/DlgAttrsBug.java
index dc31ffda1fdf25f28d17e2966387546f1e0ac5d7..93fecd486a312a14f1958c790f2dc085bbce0334 100644
--- a/test/jdk/java/awt/print/PrinterJob/DlgAttrsBug.java
+++ b/test/jdk/java/awt/print/PrinterJob/DlgAttrsBug.java
@@ -23,6 +23,7 @@
 /*
  * @test
  * @bug 8061258
+ * @key printer
  * @summary  PrinterJob's native Print Dialog does not reflect
  *           specified Copies or Page Ranges
  * @run main/manual DlgAttrsBug
diff --git a/test/jdk/java/awt/print/PrinterJob/DrawImage.java b/test/jdk/java/awt/print/PrinterJob/DrawImage.java
index 977dc946a9248bf23136a016c80be805252b3a22..2fcc710719cd3c068cacc2cea3542df8f8cc3b71 100644
--- a/test/jdk/java/awt/print/PrinterJob/DrawImage.java
+++ b/test/jdk/java/awt/print/PrinterJob/DrawImage.java
@@ -24,8 +24,8 @@
 /**
  * @test
  * @bug 4329866
+ * @key printer
  * @summary Confirm that no printing exception is generated.
- * @author jgodinez
  * @run main/manual DrawImage
  */
 
diff --git a/test/jdk/java/awt/print/PrinterJob/DrawStringMethods.java b/test/jdk/java/awt/print/PrinterJob/DrawStringMethods.java
index 37bb3e045a558741871c81d2bc12d24e81866870..f5417ebae4d177ab9dbda59a9d94841b93b180a8 100644
--- a/test/jdk/java/awt/print/PrinterJob/DrawStringMethods.java
+++ b/test/jdk/java/awt/print/PrinterJob/DrawStringMethods.java
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 4185019
+ * @key printer
  * @summary Confirm that all of the drawString methods on Graphics2D
  *          work for printer graphics objects.
  * @run main/manual DrawStringMethods
diff --git a/test/jdk/java/awt/print/PrinterJob/EmptyFill.java b/test/jdk/java/awt/print/PrinterJob/EmptyFill.java
index ddf8ebb0150c93fa491b62547ba70f9bafaa7cc1..3da1689bc3d2df5313dce826e06181176945e634 100644
--- a/test/jdk/java/awt/print/PrinterJob/EmptyFill.java
+++ b/test/jdk/java/awt/print/PrinterJob/EmptyFill.java
@@ -66,11 +66,11 @@ public class EmptyFill implements Printable {
        }
        ByteArrayOutputStream baos = new ByteArrayOutputStream(4096);
        StreamPrintService svc = spfs[0].getPrintService(baos);
-
-       PrinterJob pj = PrinterJob.getPrinterJob();
        if (svc == null) {
-           return;
+           throw new RuntimeException("Could not create postscript stream");
        }
+
+       PrinterJob pj = PrinterJob.getPrinterJob();
        pj.setPrintService(svc);
        pj.setPrintable(new EmptyFill());
        pj.print();
diff --git a/test/jdk/java/awt/print/PrinterJob/GetMediasTest.java b/test/jdk/java/awt/print/PrinterJob/GetMediasTest.java
index c70d377c6ef2ec9bafdae92575e90a7fddf7dce4..f4ff1643b00187e78520319cabf366523df805fb 100644
--- a/test/jdk/java/awt/print/PrinterJob/GetMediasTest.java
+++ b/test/jdk/java/awt/print/PrinterJob/GetMediasTest.java
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 6653384
+ * @key printer
  * @summary No exception should be thrown.
  * @run main GetMediasTest
  */
diff --git a/test/jdk/java/awt/print/PrinterJob/ImagePrinting/ImageTypes.java b/test/jdk/java/awt/print/PrinterJob/ImagePrinting/ImageTypes.java
index c33dc0f6718c5dd507b2e123294a03d996016554..af655b75d36448875ceb5a7ece5da2137b87e554 100644
--- a/test/jdk/java/awt/print/PrinterJob/ImagePrinting/ImageTypes.java
+++ b/test/jdk/java/awt/print/PrinterJob/ImagePrinting/ImageTypes.java
@@ -25,7 +25,7 @@
  * @test
  * @bug 4521945 7006865
  * @summary Test printing images of different types.
- * @author prr
+ * @key printer
  * @run main/manual ImageTypes
  */
 
diff --git a/test/jdk/java/awt/print/PrinterJob/ImagePrinting/PrintARGBImage.java b/test/jdk/java/awt/print/PrinterJob/ImagePrinting/PrintARGBImage.java
index 4bef1cce0f5af5e935070c9cf8d25531f83942b8..e16dc17c24f7d51272ee807f95c41a38054fbb95 100644
--- a/test/jdk/java/awt/print/PrinterJob/ImagePrinting/PrintARGBImage.java
+++ b/test/jdk/java/awt/print/PrinterJob/ImagePrinting/PrintARGBImage.java
@@ -34,6 +34,7 @@ import java.lang.reflect.InvocationTargetException;
 /*
  * @test
  * @bug 6581756
+ * @key printer
  * @library ../../../regtesthelpers
  * @build PassFailJFrame
  * @summary Test printing of images which need to have src area clipped
diff --git a/test/jdk/java/awt/print/PrinterJob/InitToBlack.java b/test/jdk/java/awt/print/PrinterJob/InitToBlack.java
index a4d7dd0a9589c5c3fb1d605cd7df927d5da1f5e5..7ca5846fd4722d3b771c91a5b44b4363fda64c3e 100644
--- a/test/jdk/java/awt/print/PrinterJob/InitToBlack.java
+++ b/test/jdk/java/awt/print/PrinterJob/InitToBlack.java
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 4184565
+ * @key printer
  * @summary Confirm that the default foreground color on a printer
  *          graphics object is black so that rendering will appear
  *          without having to execute setColor first.
diff --git a/test/jdk/java/awt/print/PrinterJob/InvalidPage.java b/test/jdk/java/awt/print/PrinterJob/InvalidPage.java
index f84bd2c0d7858c79ffd8ad47d85538191a066130..fd0130320523a3a846ca68d712d5f850537275d0 100644
--- a/test/jdk/java/awt/print/PrinterJob/InvalidPage.java
+++ b/test/jdk/java/awt/print/PrinterJob/InvalidPage.java
@@ -25,7 +25,7 @@
  * @test InvalidPage.java
  * @bug 4671634 6506286
  * @summary Invalid page format can crash win32 JRE
- * @author prr
+ * @key printer
  * @run main/manual InvalidPage
  */
 
diff --git a/test/jdk/java/awt/print/PrinterJob/JobName/PrinterJobName.java b/test/jdk/java/awt/print/PrinterJob/JobName/PrinterJobName.java
index a6c6544591258df97320d18b357753a25f7ae1c2..f1b99487788c47fe900c995ba7bd2c4135ac759f 100644
--- a/test/jdk/java/awt/print/PrinterJob/JobName/PrinterJobName.java
+++ b/test/jdk/java/awt/print/PrinterJob/JobName/PrinterJobName.java
@@ -25,7 +25,7 @@
  * @test
  * @bug 4205601
  * @summary setJobName should be used by PrinterJob
- * @author prr
+ * @key printer
  * @run main/manual PrinterJobName
  */
 
diff --git a/test/jdk/java/awt/print/PrinterJob/LandscapeStackOverflow.java b/test/jdk/java/awt/print/PrinterJob/LandscapeStackOverflow.java
index fc65dc9ddab1e5b09fcebaff31719e631f9a80a0..398939d125d9124721909ee5e1096f8d080498e2 100644
--- a/test/jdk/java/awt/print/PrinterJob/LandscapeStackOverflow.java
+++ b/test/jdk/java/awt/print/PrinterJob/LandscapeStackOverflow.java
@@ -22,7 +22,7 @@
  */
 /*
  * @test
- * @key headful printer
+ * @key printer
  * @bug 6842011 8158758
  * @summary Test if StackOverflowError occurs during printing landscape with
  *          scale and transform.
diff --git a/test/jdk/java/awt/print/PrinterJob/Legal/PrintTest.java b/test/jdk/java/awt/print/PrinterJob/Legal/PrintTest.java
index b4c708e27857a10a007bc1ff0dc42daccee81ed6..f5ee1c4d65a792778a1be188d379b039f91cbff2 100644
--- a/test/jdk/java/awt/print/PrinterJob/Legal/PrintTest.java
+++ b/test/jdk/java/awt/print/PrinterJob/Legal/PrintTest.java
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 4886069 8023045
+ * @key printer
  * @summary Confirm that printer recognizes the Legal selection either by
  *          prompting the user to put Legal paper or automatically selecting
  *          the tray containing Legal Paper.  The printout image should not
diff --git a/test/jdk/java/awt/print/PrinterJob/LinearGradientPrintingTest.java b/test/jdk/java/awt/print/PrinterJob/LinearGradientPrintingTest.java
index ab1ab17aa7fea21bc022803b799a5372f407dcf8..456b77614a3e2427e27e2c8b4bc2a43dae1987d6 100644
--- a/test/jdk/java/awt/print/PrinterJob/LinearGradientPrintingTest.java
+++ b/test/jdk/java/awt/print/PrinterJob/LinearGradientPrintingTest.java
@@ -24,6 +24,7 @@
  * @test
  * @bug 8162796
  * @summary  Verifies if LinearGradientPaint is printed in osx
+ * @key printer
  * @run main/manual LinearGradientPrintingTest
  */
 import java.awt.BorderLayout;
diff --git a/test/jdk/java/awt/print/PrinterJob/MultiMonPrintDlgTest.java b/test/jdk/java/awt/print/PrinterJob/MultiMonPrintDlgTest.java
index 4086f663a5c865e70a0a68665b1944473ea4bc9f..9da6e64fedcf9d880c8e0a0a0889a8dadb37bf4e 100644
--- a/test/jdk/java/awt/print/PrinterJob/MultiMonPrintDlgTest.java
+++ b/test/jdk/java/awt/print/PrinterJob/MultiMonPrintDlgTest.java
@@ -37,6 +37,7 @@ import javax.swing.SwingUtilities;
 /**
  * @test
  * @bug 8138749
+ * @key printer multimon
  * @summary PrinterJob.printDialog() does not support multi-mon,
  *           always displayed on primary
  * @run main/manual MultiMonPrintDlgTest
diff --git a/test/jdk/java/awt/print/PrinterJob/MultiThread/MultiThreadTest.java b/test/jdk/java/awt/print/PrinterJob/MultiThread/MultiThreadTest.java
index 8282a052ee18b7ca3f89c779e21e901ae1627845..609cc6f988b600b8316dbfd6eebb07119ed08b6b 100644
--- a/test/jdk/java/awt/print/PrinterJob/MultiThread/MultiThreadTest.java
+++ b/test/jdk/java/awt/print/PrinterJob/MultiThread/MultiThreadTest.java
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 4922036
+ * @key printer
  * @summary Confirm that no Exception is thrown and 2 identical output is produced.
  * @run main/manual MultiThreadTest
  */
diff --git a/test/jdk/java/awt/print/PrinterJob/NumCopies.java b/test/jdk/java/awt/print/PrinterJob/NumCopies.java
index c851e2403d0f9624508cd7432ea72a0c08ceccea..119bcab6f7a1adfb03958b10a3b6f059ad95a5b8 100644
--- a/test/jdk/java/awt/print/PrinterJob/NumCopies.java
+++ b/test/jdk/java/awt/print/PrinterJob/NumCopies.java
@@ -25,7 +25,7 @@
  * @test
  * @bug 4258003
  * @summary Checks the right number of copies are printed
- * @author prr
+ * @key printer
  * @run main/manual NumCopies
  */
 
diff --git a/test/jdk/java/awt/print/PrinterJob/PageDialogMarginTest.java b/test/jdk/java/awt/print/PrinterJob/PageDialogMarginTest.java
index de47e70f63920be35c79467c70b2ed35e7acf2a1..1931de988d14e51383c56ae8b0df7e0aeeba0f37 100644
--- a/test/jdk/java/awt/print/PrinterJob/PageDialogMarginTest.java
+++ b/test/jdk/java/awt/print/PrinterJob/PageDialogMarginTest.java
@@ -24,6 +24,7 @@
 /*
  * @test
  * @bug      6801613
+ * @key printer
  * @summary  Verifies if cross-platform pageDialog and printDialog top margin
  *           entry is working
  * @run      main/manual PageDialogMarginTest
diff --git a/test/jdk/java/awt/print/PrinterJob/PageDialogMarginValidation.java b/test/jdk/java/awt/print/PrinterJob/PageDialogMarginValidation.java
index d71f84f18793cdb2a9a2671e591fdff89ac2a1b4..674266e7fc8ec2e91718921460f50c1e7b192046 100644
--- a/test/jdk/java/awt/print/PrinterJob/PageDialogMarginValidation.java
+++ b/test/jdk/java/awt/print/PrinterJob/PageDialogMarginValidation.java
@@ -23,6 +23,7 @@
 /*
  * @test
  * @bug 6509729
+ * @key printer
  * @summary  Verifies pageDialog margin validation is correct
  * @run main/manual PageDialogMarginValidation
  */
diff --git a/test/jdk/java/awt/print/PrinterJob/PageDialogTest.java b/test/jdk/java/awt/print/PrinterJob/PageDialogTest.java
index 8a8f9839ddf390cce07b71199dc5dfc9d489ceb8..eea118733de4fb0e332062b75bc3620b4be78b61 100644
--- a/test/jdk/java/awt/print/PrinterJob/PageDialogTest.java
+++ b/test/jdk/java/awt/print/PrinterJob/PageDialogTest.java
@@ -24,6 +24,7 @@
 /*
    @test
    @bug 6302514
+   @key printer
    @run main/manual PageDialogTest
    @summary A toolkit modal dialog should not be blocked by Page/Print dialog.
 */
diff --git a/test/jdk/java/awt/print/PrinterJob/PageDlgApp.java b/test/jdk/java/awt/print/PrinterJob/PageDlgApp.java
index e07e8ffd6cfc01ed36ead825c7fe6d8fc1ccffed..96d5f64486defc2a7fb615664abf9eacff235c7e 100644
--- a/test/jdk/java/awt/print/PrinterJob/PageDlgApp.java
+++ b/test/jdk/java/awt/print/PrinterJob/PageDlgApp.java
@@ -31,6 +31,7 @@ import javax.swing.SwingUtilities;
 /**
  * @test
  * @bug 8067059
+ * @key printer
  * @run main/manual PageDlgApp
  * @summary Test if cancelling dialog returns null when
  *          PrinterJob.pageDialog() with DialogSelectionType.NATIVE is called
diff --git a/test/jdk/java/awt/print/PrinterJob/PageDlgPrnButton.java b/test/jdk/java/awt/print/PrinterJob/PageDlgPrnButton.java
index 45a1c71a44a6777eb6d5ac174fe991904eac1178..6c000dc7f5fb600371e3d14d058e0276f753007f 100644
--- a/test/jdk/java/awt/print/PrinterJob/PageDlgPrnButton.java
+++ b/test/jdk/java/awt/print/PrinterJob/PageDlgPrnButton.java
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 4956397
+ * @key printer
  * @run main/manual PageDlgPrnButton
  */
 
diff --git a/test/jdk/java/awt/print/PrinterJob/PageDlgStackOverflowTest.java b/test/jdk/java/awt/print/PrinterJob/PageDlgStackOverflowTest.java
index ffe695d6f487e6c82ed0b0db599c2ba19265ce40..048b81f273d63022987da5b70926c448094add48 100644
--- a/test/jdk/java/awt/print/PrinterJob/PageDlgStackOverflowTest.java
+++ b/test/jdk/java/awt/print/PrinterJob/PageDlgStackOverflowTest.java
@@ -28,6 +28,7 @@ import javax.print.attribute.standard.DialogTypeSelection;
 /**
  * @test
  * @bug 8039412
+ * @key printer
  * @run main/manual PageDlgStackOverflowTest
  * @summary Calling pageDialog() after printDialog with
  *          DialogTypeSelection.NATIVE should not result in StackOverflowError
diff --git a/test/jdk/java/awt/print/PrinterJob/PageFormatChange.java b/test/jdk/java/awt/print/PrinterJob/PageFormatChange.java
index 7cb9a2bd3ffb38b09e614f46ef8d62e70e351c23..3cb4254c64fb994a58ef465c1cd34105821a861c 100644
--- a/test/jdk/java/awt/print/PrinterJob/PageFormatChange.java
+++ b/test/jdk/java/awt/print/PrinterJob/PageFormatChange.java
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 6359283
+ * @key printer
  * @summary pagedialog needs to update based on change of printer.
  * @run main/manual PageFormatChange
  */
diff --git a/test/jdk/java/awt/print/PrinterJob/PageRanges.java b/test/jdk/java/awt/print/PrinterJob/PageRanges.java
index 9bfd79eacce493872d1c8ce8a37abfe8c471a3a5..accde99ae95658af48e7443878959eaf3f2cb0e6 100644
--- a/test/jdk/java/awt/print/PrinterJob/PageRanges.java
+++ b/test/jdk/java/awt/print/PrinterJob/PageRanges.java
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 6575331
+ * @key printer
  * @summary The specified pages should be printed.
  * @run main/manual=yesno PageRanges
  */
diff --git a/test/jdk/java/awt/print/PrinterJob/PolylinePrintingTest.java b/test/jdk/java/awt/print/PrinterJob/PolylinePrintingTest.java
index 14a04d5542f49faead2fca001cb252d1a1f57adf..7d8568c01f98c039b043311ba1484205ee3c1c1d 100644
--- a/test/jdk/java/awt/print/PrinterJob/PolylinePrintingTest.java
+++ b/test/jdk/java/awt/print/PrinterJob/PolylinePrintingTest.java
@@ -23,6 +23,7 @@
 
 /**
  * @bug 8041902
+ * @key printer
  * @summary Test printing of wide poly lines.
  * @run main/manual=yesno PolylinePrintingTest
  */
diff --git a/test/jdk/java/awt/print/PrinterJob/PrintAWTImage.java b/test/jdk/java/awt/print/PrinterJob/PrintAWTImage.java
index 2612ca6bdadd42519f0cdb3f9544de32a6b7b8d1..2397931b4fc9fb7d6b5bed9c699f87f428ca1855 100644
--- a/test/jdk/java/awt/print/PrinterJob/PrintAWTImage.java
+++ b/test/jdk/java/awt/print/PrinterJob/PrintAWTImage.java
@@ -23,6 +23,7 @@
 /**
  * @test
  * @bug 4257262 6708509
+ * @key printer
  * @summary Image should be sent to printer.
 * @run main/manual PrintAWTImage
  */
diff --git a/test/jdk/java/awt/print/PrinterJob/PrintAllFonts.java b/test/jdk/java/awt/print/PrinterJob/PrintAllFonts.java
index 59ebf21ee5bac3ef677e8a4bdb30690696e34251..0c9f8afb7696c502ca9293eb361135b580706cc6 100644
--- a/test/jdk/java/awt/print/PrinterJob/PrintAllFonts.java
+++ b/test/jdk/java/awt/print/PrinterJob/PrintAllFonts.java
@@ -23,9 +23,11 @@
 
 /**
  *
+ * test
  * @bug 4884389 7183516
+ * @key printer
  * @summary Font specified with face name loses style on printing
- * @run main/manual PrintRotatedText
+ * @run main/manual PrintAllFonts
  */
 
 import java.awt.*;
diff --git a/test/jdk/java/awt/print/PrinterJob/PrintAttributeUpdateTest.java b/test/jdk/java/awt/print/PrinterJob/PrintAttributeUpdateTest.java
index 1b69e0b8b365b77098832dd11a13a3214a171633..fd92f5deda89b7324d18ce3200955e5f82bb0b36 100644
--- a/test/jdk/java/awt/print/PrinterJob/PrintAttributeUpdateTest.java
+++ b/test/jdk/java/awt/print/PrinterJob/PrintAttributeUpdateTest.java
@@ -24,6 +24,7 @@
  /*
   @test
   @bug 8042713 8170578
+  @key printer
   @summary  Print Dialog does not update attribute set with page range
   @run main/manual PrintAttributeUpdateTest
  */
diff --git a/test/jdk/java/awt/print/PrinterJob/PrintBadImage.java b/test/jdk/java/awt/print/PrinterJob/PrintBadImage.java
index ad3b3fd5d83cb902ebe656dc3bf158eedc500ef1..48e4503db7041508c898954800215695f8acb46f 100644
--- a/test/jdk/java/awt/print/PrinterJob/PrintBadImage.java
+++ b/test/jdk/java/awt/print/PrinterJob/PrintBadImage.java
@@ -25,7 +25,7 @@
  * @test
  * @bug 4398853
  * @summary Printing shouldn't hang on bad images
- * @author prr
+ * @key printer
  * @run main/manual PrintBadImage
  */
 
diff --git a/test/jdk/java/awt/print/PrinterJob/PrintCompoundString.java b/test/jdk/java/awt/print/PrinterJob/PrintCompoundString.java
index 82560d8964bf17f4349d5a0d2c3a9c2a9f8afdbd..95cebd9976565c96556078e40b66bead1c5fa589 100644
--- a/test/jdk/java/awt/print/PrinterJob/PrintCompoundString.java
+++ b/test/jdk/java/awt/print/PrinterJob/PrintCompoundString.java
@@ -25,7 +25,7 @@
  * @test
  * @bug 4396835
  * @summary Compound font string not printing.
- * @author prr
+ * @key printer
  * @run main/manual PrintCompoundString
  */
 
diff --git a/test/jdk/java/awt/print/PrinterJob/PrintDialog.java b/test/jdk/java/awt/print/PrinterJob/PrintDialog.java
index 9ab5d63f641c970ef5d597d6681a8bf05fe724f7..fa9569e1aa74e439f191557e752594a068835ecc 100644
--- a/test/jdk/java/awt/print/PrinterJob/PrintDialog.java
+++ b/test/jdk/java/awt/print/PrinterJob/PrintDialog.java
@@ -25,7 +25,7 @@
   @test PrintDialog.java
   @bug 4257903
   @summary  Confirm that the you see the print dialog.
-  @author prr: area=PrinterJob
+  @key printer
   @run main/manual PrintDialog
 */
 
diff --git a/test/jdk/java/awt/print/PrinterJob/PrintDialogCancel.java b/test/jdk/java/awt/print/PrinterJob/PrintDialogCancel.java
index 4fe3d29fe5bcc4e46f4c54326b1885af424c5310..b2d3d3a22307510c44ec030751d67887bd6948fe 100644
--- a/test/jdk/java/awt/print/PrinterJob/PrintDialogCancel.java
+++ b/test/jdk/java/awt/print/PrinterJob/PrintDialogCancel.java
@@ -25,7 +25,7 @@
   @test
   @bug 4398231
   @summary  Confirm that the print dialog returns false when cancelled.
-  @author prr: area=PrinterJob
+  @key printer
   @run main/manual PrintDialogCancel
 */
 
diff --git a/test/jdk/java/awt/print/PrinterJob/PrintDlgPageable.java b/test/jdk/java/awt/print/PrinterJob/PrintDlgPageable.java
index f6a74f9f965cb2a92393054a994961f2cc34853e..6d1d8bcf6dfb6f9367081ca6c627c8399d1dd1d6 100644
--- a/test/jdk/java/awt/print/PrinterJob/PrintDlgPageable.java
+++ b/test/jdk/java/awt/print/PrinterJob/PrintDlgPageable.java
@@ -23,6 +23,7 @@
 /*
  * @test
  * @bug 4885375
+ * @key printer
  * @summary  Verifies if PageRanges To Field is populated based on Pageable
  *           for COMMON print dialog
  * @run main/manual PrintDlgPageable
diff --git a/test/jdk/java/awt/print/PrinterJob/PrintDlgSelectionAttribTest.java b/test/jdk/java/awt/print/PrinterJob/PrintDlgSelectionAttribTest.java
index 98585478626674d41d3ebbdd842232734167f860..65adee3f4f9f9d63e798d0da8f579300da885b7c 100644
--- a/test/jdk/java/awt/print/PrinterJob/PrintDlgSelectionAttribTest.java
+++ b/test/jdk/java/awt/print/PrinterJob/PrintDlgSelectionAttribTest.java
@@ -23,6 +23,7 @@
  /*
  * @test
  * @bug 6529030 8159134
+ * @key printer
  * @summary  Verifies if Java Printing: Selection radiobutton gets enabled.
  * @requires (os.family == "windows")
  * @run main/manual PrintDlgSelectionAttribTest
diff --git a/test/jdk/java/awt/print/PrinterJob/PrintFontStyle.java b/test/jdk/java/awt/print/PrinterJob/PrintFontStyle.java
index 3d67246eac23db73b1b06fbbcc0d4163abe96097..f9997d443a2dad61bb7762775aaef2d868f3405e 100644
--- a/test/jdk/java/awt/print/PrinterJob/PrintFontStyle.java
+++ b/test/jdk/java/awt/print/PrinterJob/PrintFontStyle.java
@@ -21,6 +21,13 @@
  * questions.
  */
 
+/*
+ * Not enabled as a test. Needs some work.
+ * test
+ * @key printer
+ * @run main/manual PrintFontStyle
+ */
+
 import java.awt.*;
 import java.awt.print.*;
 import java.awt.GraphicsEnvironment;
diff --git a/test/jdk/java/awt/print/PrinterJob/PrintGlyphVectorTest.java b/test/jdk/java/awt/print/PrinterJob/PrintGlyphVectorTest.java
index bd921b5162df69faec8983239cbafe08e1f863ed..696cf1b74454e341c6ac4414544a283e25fa274f 100644
--- a/test/jdk/java/awt/print/PrinterJob/PrintGlyphVectorTest.java
+++ b/test/jdk/java/awt/print/PrinterJob/PrintGlyphVectorTest.java
@@ -24,6 +24,7 @@
 /*
  * @test
  * @bug 8029204
+ * @key printer
  * @library ../../regtesthelpers
  * @build PassFailJFrame
  * @summary Tests GlyphVector is printed in the correct location
diff --git a/test/jdk/java/awt/print/PrinterJob/PrintImage.java b/test/jdk/java/awt/print/PrinterJob/PrintImage.java
index 7f632bfa94ccba2469050ca2dcd124ec85f87262..7eed8c2c276f8ab0157e4b97f06043998470bc97 100644
--- a/test/jdk/java/awt/print/PrinterJob/PrintImage.java
+++ b/test/jdk/java/awt/print/PrinterJob/PrintImage.java
@@ -25,7 +25,7 @@
  * @test %I %W
  * @bug 4298489
  * @summary Confirm that output is same as screen.
- * @author jgodinez
+ * @key printer
  * @run main/manual PrintImage
  */
 import java.awt.*;
diff --git a/test/jdk/java/awt/print/PrinterJob/PrintLatinCJKTest.java b/test/jdk/java/awt/print/PrinterJob/PrintLatinCJKTest.java
index f6221aa57064b4f345d2170986d6d02c5b5acfd4..5ffb34540ced4f5828e262c770f8e6f745ade027 100644
--- a/test/jdk/java/awt/print/PrinterJob/PrintLatinCJKTest.java
+++ b/test/jdk/java/awt/print/PrinterJob/PrintLatinCJKTest.java
@@ -27,6 +27,7 @@
  * @library ../../regtesthelpers
  * @build PassFailJFrame
  * @summary JDK7 Printing: CJK and Latin Text in string overlap
+ * @key printer
  * @run main/manual PrintLatinCJKTest
  */
 
diff --git a/test/jdk/java/awt/print/PrinterJob/PrintNullString.java b/test/jdk/java/awt/print/PrinterJob/PrintNullString.java
index 7e3101c6b30e1e45a66387e6f741bfdcfb6c52b2..b46db6a1447bac1c92445293caac428e670370e0 100644
--- a/test/jdk/java/awt/print/PrinterJob/PrintNullString.java
+++ b/test/jdk/java/awt/print/PrinterJob/PrintNullString.java
@@ -25,7 +25,7 @@
  * @test
  * @bug 4223328
  * @summary Printer graphics must behave the same as screen graphics
- * @author prr
+ * @key printer
  * @run main/manual PrintNullString
  */
 
diff --git a/test/jdk/java/awt/print/PrinterJob/PrintParenString.java b/test/jdk/java/awt/print/PrinterJob/PrintParenString.java
index dc6d544d12645c250ebdaf01ec6a0cd6eedbbc40..f3ed7ec1f3ea4dcd380761fe903ee5910a513b42 100644
--- a/test/jdk/java/awt/print/PrinterJob/PrintParenString.java
+++ b/test/jdk/java/awt/print/PrinterJob/PrintParenString.java
@@ -25,7 +25,7 @@
  * @test
  * @bug 4399442
  * @summary Brackets should be quoted in Postscript output
- * @author prr
+ * @key printer
  * @run main/manual PrintParenString
  */
 
diff --git a/test/jdk/java/awt/print/PrinterJob/PrintRotatedText.java b/test/jdk/java/awt/print/PrinterJob/PrintRotatedText.java
index 5f5a6fa69d65e38871d4a978ca855cb2281aa663..deabc0e69991cfc77bad8180032b1f9eb9af0078 100644
--- a/test/jdk/java/awt/print/PrinterJob/PrintRotatedText.java
+++ b/test/jdk/java/awt/print/PrinterJob/PrintRotatedText.java
@@ -26,7 +26,7 @@
  * @bug 4271596
  * @bug 4460699
  * @summary Rotated text printing
- * @author prr
+ * @key printer
  * @run main/manual PrintRotatedText
  */
 
diff --git a/test/jdk/java/awt/print/PrinterJob/PrintTest.java b/test/jdk/java/awt/print/PrinterJob/PrintTest.java
index 3c3febe414c8360fb336473e620d822c3badb084..321293877aba5fbd79df6b9dad5e3caa3f6430bb 100644
--- a/test/jdk/java/awt/print/PrinterJob/PrintTest.java
+++ b/test/jdk/java/awt/print/PrinterJob/PrintTest.java
@@ -23,6 +23,7 @@
 /*
  * @test
  * @bug 8151590
+ * @key printer
  * @summary  All radio button should be selected when we call
  *            setDefaultSelection(JobAttributes.DefaultSelectionType.ALL);
  * @run main/manual PrintTest
diff --git a/test/jdk/java/awt/print/PrinterJob/PrintTestLexmarkIQ.java b/test/jdk/java/awt/print/PrinterJob/PrintTestLexmarkIQ.java
index cb82100efb00e151538e659bcbf51efcf2ca8279..a5c7110c5d5a113a73abc08cd7c5c89ddca1b4f7 100644
--- a/test/jdk/java/awt/print/PrinterJob/PrintTestLexmarkIQ.java
+++ b/test/jdk/java/awt/print/PrinterJob/PrintTestLexmarkIQ.java
@@ -25,6 +25,7 @@
  * @bug 6966350 8160882
  * @summary Verifies if Empty pages are printed on Lexmark E352dn PS3
  *           with "1200 IQ" setting
+ * @key printer
  * @run main/manual PrintTestLexmarkIQ
  */
 import java.awt.BorderLayout;
diff --git a/test/jdk/java/awt/print/PrinterJob/PrintTextLayout.java b/test/jdk/java/awt/print/PrinterJob/PrintTextLayout.java
index 2dfd10ccd3202197defa46c417c968562328c127..9560c6b86ff73548b04f970724427e90a0117f01 100644
--- a/test/jdk/java/awt/print/PrinterJob/PrintTextLayout.java
+++ b/test/jdk/java/awt/print/PrinterJob/PrintTextLayout.java
@@ -25,7 +25,7 @@
  * @test
  * @bug 4480930
  * @summary TextLayout prints as filled shapes
- * @author prr
+ * @key printer
  * @run main/manual PrintTextLayout
  */
 
diff --git a/test/jdk/java/awt/print/PrinterJob/PrintTextTest.java b/test/jdk/java/awt/print/PrinterJob/PrintTextTest.java
index c7d9c984b64c56c8c9a06bd2be0b08cc2a08103c..95bf177aa2f111ecdc5455786c75c8e8b8ece74f 100644
--- a/test/jdk/java/awt/print/PrinterJob/PrintTextTest.java
+++ b/test/jdk/java/awt/print/PrinterJob/PrintTextTest.java
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 6425068 7157659 8132890
+ * @key printer
  * @summary Confirm that text prints where we expect to the length we expect.
  * @run main/manual=yesno PrintTextTest
  */
diff --git a/test/jdk/java/awt/print/PrinterJob/PrintTranslatedFont.java b/test/jdk/java/awt/print/PrinterJob/PrintTranslatedFont.java
index fefa737990bac075628b0f609d1b6484686f2a50..51ff6ce57a7dd81c7d81f75ebc5e4a38364fdce5 100644
--- a/test/jdk/java/awt/print/PrinterJob/PrintTranslatedFont.java
+++ b/test/jdk/java/awt/print/PrinterJob/PrintTranslatedFont.java
@@ -24,8 +24,8 @@
 /**
  * @test
  * @bug 6359734
+ * @key printer
  * @summary Test that fonts with a translation print where they should.
- * @author prr
  * @run main/manual PrintTranslatedFont
  */
 
diff --git a/test/jdk/java/awt/print/PrinterJob/PrintVolatileImage.java b/test/jdk/java/awt/print/PrinterJob/PrintVolatileImage.java
index 82a7c9ed83d6e8e9867fc80efce7fc089776cadc..d594b5a31dd8f8e8794d8f1a13fef5b58efeca57 100644
--- a/test/jdk/java/awt/print/PrinterJob/PrintVolatileImage.java
+++ b/test/jdk/java/awt/print/PrinterJob/PrintVolatileImage.java
@@ -25,7 +25,7 @@
  * @test
  * @bug 4511023
  * @summary Image should be sent to printer, no exceptions thrown
- * @author prr
+ * @key printer
  * @run main/manual PrintVolatileImage
  */
 
diff --git a/test/jdk/java/awt/print/PrinterJob/PrinterDialogsModalityTest/PrinterDialogsModalityTest.html b/test/jdk/java/awt/print/PrinterJob/PrinterDialogsModalityTest/PrinterDialogsModalityTest.html
index 3b6b87f6b03e99cea7dbcd9ed9f541256fcb1dfc..9cfb86bd47976c460e685858b8548afd20f48ecb 100644
--- a/test/jdk/java/awt/print/PrinterJob/PrinterDialogsModalityTest/PrinterDialogsModalityTest.html
+++ b/test/jdk/java/awt/print/PrinterJob/PrinterDialogsModalityTest/PrinterDialogsModalityTest.html
@@ -25,8 +25,8 @@
 <!--  
   @test
   @bug 4784285 4785920
+  @key printer
   @summary check whether Print- and Page- dialogs are modal and correct window activated after their closing
-  @author Your Name: area=PrinterJob.modality
   @run applet/manual=yesno PrinterDialogsModalityTest.html
   -->
 <head>
diff --git a/test/jdk/java/awt/print/PrinterJob/PrinterDialogsModalityTest/PrinterDialogsModalityTest.java b/test/jdk/java/awt/print/PrinterJob/PrinterDialogsModalityTest/PrinterDialogsModalityTest.java
index 2178697b1709b55c408282d29f500bdb48f794f5..bb40832e36fc8dd21ef54f79c141abd4982fb3b4 100644
--- a/test/jdk/java/awt/print/PrinterJob/PrinterDialogsModalityTest/PrinterDialogsModalityTest.java
+++ b/test/jdk/java/awt/print/PrinterJob/PrinterDialogsModalityTest/PrinterDialogsModalityTest.java
@@ -24,8 +24,8 @@
 /*
   test
   @bug 4784285 4785920
+  @key printer
   @summary check whether Print- and Page- dialogs are modal and correct window activated after their closing
-  @author son@sparc.spb.su: area=PrinterJob.modality
   @run applet/manual=yesno PrinterDialogsModalityTest.html
 */
 
diff --git a/test/jdk/java/awt/print/PrinterJob/PrinterJobDialogBugDemo.java b/test/jdk/java/awt/print/PrinterJob/PrinterJobDialogBugDemo.java
index d06d08dcbe3bed0546a0e56353cce9a253f664ae..d7a18300bd7c92d24665a26047d16bb8ac2bb522 100644
--- a/test/jdk/java/awt/print/PrinterJob/PrinterJobDialogBugDemo.java
+++ b/test/jdk/java/awt/print/PrinterJob/PrinterJobDialogBugDemo.java
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 4775862
+ * @key printer
  * @run main/manual PrinterJobDialogBugDemo
  */
 import java.awt.BorderLayout;
diff --git a/test/jdk/java/awt/print/PrinterJob/RadialGradientPrintingTest.java b/test/jdk/java/awt/print/PrinterJob/RadialGradientPrintingTest.java
index 61c9faeda247bd7d4e66c8794d6cdf454e139859..8cd538f1d62642a3530fb76757d1b0cb8a3711bf 100644
--- a/test/jdk/java/awt/print/PrinterJob/RadialGradientPrintingTest.java
+++ b/test/jdk/java/awt/print/PrinterJob/RadialGradientPrintingTest.java
@@ -23,6 +23,7 @@
 /*
  * @test
  * @bug 8162796
+ * @key printer
  * @summary  Verifies if RadialGradientPaint is printed in osx
  * @run main/manual RadialGradientPrintingTest
  */
diff --git a/test/jdk/java/awt/print/PrinterJob/RemoveListener.java b/test/jdk/java/awt/print/PrinterJob/RemoveListener.java
index 2a467a438a3cfcd56484e9481a37fdb145fb1204..0818cd7e7f4c84139829ebcf2f9693ada0f0f7fa 100644
--- a/test/jdk/java/awt/print/PrinterJob/RemoveListener.java
+++ b/test/jdk/java/awt/print/PrinterJob/RemoveListener.java
@@ -22,8 +22,9 @@
  */
 
 /*
- * @test 1.1 01/05/17
+ * @test
  * @bug 4459889
+ * @key printer
  * @summary No NullPointerException should occur.
  * @run main RemoveListener
 */
diff --git a/test/jdk/java/awt/print/PrinterJob/SameService.java b/test/jdk/java/awt/print/PrinterJob/SameService.java
index 4073b55fb924141f1332a77ec80cd022c233e7d6..611cea9ecdb756390693fb59de3c764dc5b18568 100644
--- a/test/jdk/java/awt/print/PrinterJob/SameService.java
+++ b/test/jdk/java/awt/print/PrinterJob/SameService.java
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 6446094
+ * @key printer
  * @summary Don't re-create print services.
  * @run main SameService
  */
diff --git a/test/jdk/java/awt/print/PrinterJob/ScaledText/ScaledText.java b/test/jdk/java/awt/print/PrinterJob/ScaledText/ScaledText.java
index a440db4f2f9ba5820a2e1bf7eeac56f688375960..22da44311178126e113e8441cc66f52c1977e531 100644
--- a/test/jdk/java/awt/print/PrinterJob/ScaledText/ScaledText.java
+++ b/test/jdk/java/awt/print/PrinterJob/ScaledText/ScaledText.java
@@ -25,7 +25,7 @@
   @test
   @bug 4291373
   @summary  Printing of scaled text is wrong / disappearing
-  @author prr: area=PrinterJob
+  @key printer
   @run main/manual ScaledText
 */
 import java.awt.*;
diff --git a/test/jdk/java/awt/print/PrinterJob/SecurityDialogTest.java b/test/jdk/java/awt/print/PrinterJob/SecurityDialogTest.java
index c5d356c6118aa77deb274604465db25e378b7860..d6a9efeb97c518452d2927ee67451280be7eca22 100644
--- a/test/jdk/java/awt/print/PrinterJob/SecurityDialogTest.java
+++ b/test/jdk/java/awt/print/PrinterJob/SecurityDialogTest.java
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 4937672 5100706 6252456
+ * @key printer
  * @run main/othervm/manual -Djava.security.manager=allow SecurityDialogTest
  */
 
diff --git a/test/jdk/java/awt/print/PrinterJob/SetCopies/Test.java b/test/jdk/java/awt/print/PrinterJob/SetCopies/Test.java
index 7b8d9ce7c0094173909dd5df768ade24795e8543..b32d716bbee3eb6d7c896020290b7fe41defa56f 100644
--- a/test/jdk/java/awt/print/PrinterJob/SetCopies/Test.java
+++ b/test/jdk/java/awt/print/PrinterJob/SetCopies/Test.java
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 4694495
+ * @key printer
  * @summary Check that the dialog shows copies = 3.
  * @run main/manual Test
  */
diff --git a/test/jdk/java/awt/print/PrinterJob/SwingUIText.java b/test/jdk/java/awt/print/PrinterJob/SwingUIText.java
index c1e47638023c0a05ac970c40579dde3f2b310c74..5fcd5e391581a8731558501f941d0a41803681e5 100644
--- a/test/jdk/java/awt/print/PrinterJob/SwingUIText.java
+++ b/test/jdk/java/awt/print/PrinterJob/SwingUIText.java
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 6488219 6560738 7158350 8017469
+ * @key printer
  * @summary Test that text printed in Swing UI measures and looks OK.
  * @run main/manual=yesno PrintTextTest
  */
diff --git a/test/jdk/java/awt/print/PrinterJob/TestCheckSystemDefaultBannerOption.java b/test/jdk/java/awt/print/PrinterJob/TestCheckSystemDefaultBannerOption.java
index b9e18d3439383aa53d5567fb078b7040ac325461..ca07c05a6ef16b2deb4941c946bfa3f5f2be4f22 100644
--- a/test/jdk/java/awt/print/PrinterJob/TestCheckSystemDefaultBannerOption.java
+++ b/test/jdk/java/awt/print/PrinterJob/TestCheckSystemDefaultBannerOption.java
@@ -23,6 +23,7 @@
 /*
  * @test
  * @bug 8165947 8170579
+ * @key printer
  * @summary  Verifies System default banner page option is honoured by jdk
  * @requires os.family == "linux"
  * @run main/manual TestCheckSystemDefaultBannerOption
diff --git a/test/jdk/java/awt/print/PrinterJob/TestMediaTraySelection.java b/test/jdk/java/awt/print/PrinterJob/TestMediaTraySelection.java
index f75336c2c0debb110e8b2e98f0746cf4c7bf196d..6a5a91ac89e7e8c2055e02d9df449df4dc578c45 100644
--- a/test/jdk/java/awt/print/PrinterJob/TestMediaTraySelection.java
+++ b/test/jdk/java/awt/print/PrinterJob/TestMediaTraySelection.java
@@ -24,6 +24,7 @@
  * @bug 6357887 8165146 8234393
  * @summary  Verifies if selected printertray is used
  * @requires (os.family == "linux" | os.family == "mac")
+ * @key printer
  * @run main/manual TestMediaTraySelection
  */
 
diff --git a/test/jdk/java/awt/print/PrinterJob/TestPageDlgFrameAssociation.java b/test/jdk/java/awt/print/PrinterJob/TestPageDlgFrameAssociation.java
index 32ee61ad1c6bb3e5345f2696c9bbe5f53aef47ae..5ca2cda4b601e338cdde5baddcf846dc8f555261 100644
--- a/test/jdk/java/awt/print/PrinterJob/TestPageDlgFrameAssociation.java
+++ b/test/jdk/java/awt/print/PrinterJob/TestPageDlgFrameAssociation.java
@@ -23,6 +23,7 @@
 /*
  * @test
  * @bug 7064425 6948907
+ * @key printer
  * @summary  Verifies if owner Frame is associated with page dialog of PrinterJob
  * @run main/manual TestPageDlgFrameAssociation
  */
diff --git a/test/jdk/java/awt/print/PrinterJob/TestPrintDlgFrameAssociation.java b/test/jdk/java/awt/print/PrinterJob/TestPrintDlgFrameAssociation.java
index d1d54307ab55b1de7265f9671f4ab185e6276b8d..e5d58c8baea739704af03a260be0fb3ad5e3efbc 100644
--- a/test/jdk/java/awt/print/PrinterJob/TestPrintDlgFrameAssociation.java
+++ b/test/jdk/java/awt/print/PrinterJob/TestPrintDlgFrameAssociation.java
@@ -23,6 +23,7 @@
 /*
  * @test
  * @bug 7064425 6948907
+ * @key printer
  * @summary  Verifies if owner Frame is associated with print dialog of PrinterJob
  * @run main/manual TestPrintDlgFrameAssociation
  */
diff --git a/test/jdk/java/awt/print/PrinterJob/TexturePaintPrintingTest.java b/test/jdk/java/awt/print/PrinterJob/TexturePaintPrintingTest.java
index 8ac81c8bbad25601d1cbc3751a4e320fa47cc729..3d8c6815f9552ba2a23976426220bacab9a2b9fe 100644
--- a/test/jdk/java/awt/print/PrinterJob/TexturePaintPrintingTest.java
+++ b/test/jdk/java/awt/print/PrinterJob/TexturePaintPrintingTest.java
@@ -23,6 +23,7 @@
 /*
  * @test
  * @bug 8040635
+ * @key printer
  * @summary  Verifies if TexturePaint is printed in osx
  * @run main/manual TexturePaintPrintingTest
  */
diff --git a/test/jdk/java/awt/print/PrinterJob/ThinLines.java b/test/jdk/java/awt/print/PrinterJob/ThinLines.java
index 2d880a4400672bafa16ab02cd355e3bb95e3a053..f8e4e60b31969974a5ad4a0f237c6d0d2f0cea78 100644
--- a/test/jdk/java/awt/print/PrinterJob/ThinLines.java
+++ b/test/jdk/java/awt/print/PrinterJob/ThinLines.java
@@ -25,7 +25,7 @@
   @test
   @bug 4190081
   @summary  Confirm that the you see "Z" shapes on the printed page.
-  @author prr/rbi: area=PrinterJob
+  @key printer
   @run main/manual ThinLines
 */
 
diff --git a/test/jdk/java/awt/print/PrinterJob/ValidatePage/ValidatePage.java b/test/jdk/java/awt/print/PrinterJob/ValidatePage/ValidatePage.java
index 8c9f81b11df16531876d38dcc36ecbde1c268b6c..ccf0bed43bbbea55072bc2c89194465089414ddb 100644
--- a/test/jdk/java/awt/print/PrinterJob/ValidatePage/ValidatePage.java
+++ b/test/jdk/java/awt/print/PrinterJob/ValidatePage/ValidatePage.java
@@ -24,8 +24,8 @@
 /**
  * @test
  * @bug 4252108 6229507
+ * @key printer
  * @summary PrinterJob.validatePage() is unimplemented.
- * @author prr
  * @run main/manual ValidatePage
  */
 
diff --git a/test/jdk/java/awt/print/PrinterJob/XparColor.java b/test/jdk/java/awt/print/PrinterJob/XparColor.java
index dd39578f2cb37f2633830d56d628cf513f990a09..9a85a78af558a7610e6e53e16f9b46fba0d8edb3 100644
--- a/test/jdk/java/awt/print/PrinterJob/XparColor.java
+++ b/test/jdk/java/awt/print/PrinterJob/XparColor.java
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 4179262
+ @ @key printer
  * @summary Confirm that transparent colors are printed correctly. The
  * printout should show transparent rings with increasing darkness toward
  * the center.
diff --git a/test/jdk/java/awt/print/PrinterJob/raster/RasterTest.java b/test/jdk/java/awt/print/PrinterJob/raster/RasterTest.java
index 56adc8552f7cc1d1e5dde94dca826a290348f0cb..297094299135eb1181ac069b3e6388212b4382f5 100644
--- a/test/jdk/java/awt/print/PrinterJob/raster/RasterTest.java
+++ b/test/jdk/java/awt/print/PrinterJob/raster/RasterTest.java
@@ -25,7 +25,7 @@
  * @test
  * @bug 4242639
  * @summary Printing quality problem on Canon and NEC
- * @author prr
+ * @key printer
  * @run main/manual RasterTest
  */
 import java.awt.*;
diff --git a/test/jdk/java/awt/print/RemotePrinterStatusRefresh/RemotePrinterStatusRefresh.java b/test/jdk/java/awt/print/RemotePrinterStatusRefresh/RemotePrinterStatusRefresh.java
index 3bfedb463a7fbe083a5dcc8daab583208b0fb3e0..7768c54481a767d3d87ef7b9d98f95102339d910 100644
--- a/test/jdk/java/awt/print/RemotePrinterStatusRefresh/RemotePrinterStatusRefresh.java
+++ b/test/jdk/java/awt/print/RemotePrinterStatusRefresh/RemotePrinterStatusRefresh.java
@@ -23,6 +23,7 @@
 
 /*
  * @test
+ * @key printer
  * @bug 8153732 8212202 8221263 8221412 8222108 8263311
  * @requires (os.family == "Windows")
  * @summary Windows remote printer changes do not reflect in lookupPrintServices()
diff --git a/test/jdk/java/awt/print/bug8023392/bug8023392.html b/test/jdk/java/awt/print/bug8023392/bug8023392.html
index c51ae001e2e1fc0a277ac4b58c4ec51f1d7b67dd..178fba9b230e128481e4c6f6ce47d6123395a396 100644
--- a/test/jdk/java/awt/print/bug8023392/bug8023392.html
+++ b/test/jdk/java/awt/print/bug8023392/bug8023392.html
@@ -26,7 +26,7 @@
   @test
   @bug 8023392
   @summary Swing text components printed with spaces between chars
-  @author Anton Nashatyrev
+  @key printer
   @modules java.desktop/sun.swing
   @run applet/manual=yesno bug8023392.html
   -->
diff --git a/test/jdk/java/awt/print/bug8023392/bug8023392.java b/test/jdk/java/awt/print/bug8023392/bug8023392.java
index 071c9021ddffb5934dbc38a30974ca7e02e76f16..d792562ea25a802cc2979a9d38a6fef939d5a552 100644
--- a/test/jdk/java/awt/print/bug8023392/bug8023392.java
+++ b/test/jdk/java/awt/print/bug8023392/bug8023392.java
@@ -25,7 +25,7 @@
   test
   @bug 8023392 8259232
   @summary Swing text components printed with spaces between chars
-  @author Anton Nashatyrev
+  @key printer
   @run applet/manual=yesno bug8023392.html
 */
 
diff --git a/test/jdk/javax/print/DialogMargins.java b/test/jdk/javax/print/DialogMargins.java
index cb5b488369c6f38ee19257b81424031e465c5f68..ca45a1690a61f2270eec7653e13647e2afbb9c79 100644
--- a/test/jdk/javax/print/DialogMargins.java
+++ b/test/jdk/javax/print/DialogMargins.java
@@ -24,12 +24,12 @@
 /**
  * @test
  * @bug 4485755 6361370 6448717 5080051 6939417 8016343
+ * @key printer
  * @summary dialog doesn't have way to specify margins
  *          for 6361370, verify exception for offline printer in Windows
  *          for 6448717, faster display of print dialog
  *          for 6500903, verify status of printer if accepting jobs or not
  *          for 8016343, verify printing to non-default printer
- * @author prr
  * @run main/manual DialogMargins
  */
 
diff --git a/test/jdk/javax/print/LookupServices.java b/test/jdk/javax/print/LookupServices.java
index 7f6b9f1f6043feb182428ce1dc3473c1a29e1c77..a5685dbc57c17fda8e445dccd8d2401eae3bf97e 100644
--- a/test/jdk/javax/print/LookupServices.java
+++ b/test/jdk/javax/print/LookupServices.java
@@ -24,6 +24,7 @@
 /*
  * @test
  * @bug 4510477 6520186
+ * @key printer
  * @summary No crash with HP OfficeJet 600 installed.
  * @run main LookupServices
 */
diff --git a/test/jdk/javax/print/PrintServiceLookup/GetPrintServices.java b/test/jdk/javax/print/PrintServiceLookup/GetPrintServices.java
index 544428566cb9d651967fa9090619a5abd1d2678b..092f7f17da550390679edcb6bf734a0af3be4ed3 100644
--- a/test/jdk/javax/print/PrintServiceLookup/GetPrintServices.java
+++ b/test/jdk/javax/print/PrintServiceLookup/GetPrintServices.java
@@ -29,6 +29,7 @@ import javax.print.attribute.standard.PrinterName;
 
 /*
  * @test
+ * @key printer
  * @bug 8013810 8025439
  * @summary Test that print service returned without filter are of the same class
  *          as with name filter
diff --git a/test/jdk/javax/print/PrintSubInputStream/Example.java b/test/jdk/javax/print/PrintSubInputStream/Example.java
index 27acae8af6eff452759bd144e563127576d225b2..b2aa913dccb47d5b97abb0a33c6d6ceb121ec9af 100644
--- a/test/jdk/javax/print/PrintSubInputStream/Example.java
+++ b/test/jdk/javax/print/PrintSubInputStream/Example.java
@@ -23,9 +23,9 @@
 
 /**
  * @test
+ * key printer
  * @bug 4700712 4707777
  * @summary Should submit only 1 job in Windows and print only 1 page.
- * @author jgodinez
  * @run main/manual Example
  */
 import java.awt.*;
diff --git a/test/jdk/javax/print/ServiceUIPropBtnTest.java b/test/jdk/javax/print/ServiceUIPropBtnTest.java
index ccb57ba40376a1c0ff679436ae6bb2c1f2d3bc42..189b9b3ac25e8ba8b8161bb8ae83ae4060553bb6 100644
--- a/test/jdk/javax/print/ServiceUIPropBtnTest.java
+++ b/test/jdk/javax/print/ServiceUIPropBtnTest.java
@@ -23,6 +23,7 @@
 
 /* @test
    @bug 8246742
+   @key printer
    @summary Verifies ServiceUI.printDialog does not support properties dialog
    @run main/manual ServiceUIPropBtnTest
  */
diff --git a/test/jdk/javax/print/TextFlavorTest.java b/test/jdk/javax/print/TextFlavorTest.java
index f703e8aacc5766ff40d8ff8a8c0fa5afc9121d2f..18b5e08f6b497b48b02766a64107cc21080c87d4 100644
--- a/test/jdk/javax/print/TextFlavorTest.java
+++ b/test/jdk/javax/print/TextFlavorTest.java
@@ -24,6 +24,7 @@
 /*
   @test
   @bug 6334074 8022536
+  @key printer
   @summary test supported text flavors reported properly
   @run main TextFlavorTest
 */
diff --git a/test/jdk/javax/print/attribute/Chroma.java b/test/jdk/javax/print/attribute/Chroma.java
index 5968f9514095034063d15a8d98103993943e8924..60ce9f6719ac6f02a954cb0ad3c70d70e197648a 100644
--- a/test/jdk/javax/print/attribute/Chroma.java
+++ b/test/jdk/javax/print/attribute/Chroma.java
@@ -21,7 +21,7 @@
  * questions.
  */
 /*
- * @test 1.3 01/05/11
+ * @test
  * @bug 4456750
  * @summary Test for supported chromaticity values with null DocFlavor.
  *          No exception should be thrown.
diff --git a/test/jdk/javax/print/attribute/CollateAttr.java b/test/jdk/javax/print/attribute/CollateAttr.java
index 5ea8a78be37546bcf1d41cade9d7d4ad6c9fe46d..0c6cef60bce901e6e079c36b4afb380fb489f20c 100644
--- a/test/jdk/javax/print/attribute/CollateAttr.java
+++ b/test/jdk/javax/print/attribute/CollateAttr.java
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 6574117
+ * @key printer
  * @summary Verify no NPE testing service support of SheetCollate
  * @run main CollateAttr
  */
diff --git a/test/jdk/javax/print/attribute/PSCopiesFlavorTest.java b/test/jdk/javax/print/attribute/PSCopiesFlavorTest.java
index 25b5d955fa5553aa540e7d8d0b59ccb5fba02eb4..3f78fa3853744a275d01684a82c64847b6063d47 100644
--- a/test/jdk/javax/print/attribute/PSCopiesFlavorTest.java
+++ b/test/jdk/javax/print/attribute/PSCopiesFlavorTest.java
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 6527316 6732647
+ * @key printer
  * @summary Copies isn't supported for PS flavors.
  * @run main PSCopiesFlavorTest
  */
diff --git a/test/jdk/javax/print/attribute/PrintResAttr.java b/test/jdk/javax/print/attribute/PrintResAttr.java
index c5467b32532750c06702f15680a8f6504a3017db..dee94ae1b78d06fa6ebb71d3109a1f2b35b50862 100644
--- a/test/jdk/javax/print/attribute/PrintResAttr.java
+++ b/test/jdk/javax/print/attribute/PrintResAttr.java
@@ -23,6 +23,7 @@
 
 /**
  * @test
+ * @key printer
  * @bug 8048328
  * @summary CUPS Printing does not report supported printer resolutions.
  * @run main PrintResAttr
diff --git a/test/jdk/javax/print/attribute/ServiceDialogTest.java b/test/jdk/javax/print/attribute/ServiceDialogTest.java
index bce24e749cf6857b374825e6386afbbddf51614d..626325ab1a4171dbcce642848ec31d91bb06e270 100644
--- a/test/jdk/javax/print/attribute/ServiceDialogTest.java
+++ b/test/jdk/javax/print/attribute/ServiceDialogTest.java
@@ -25,6 +25,7 @@
 /**
  * @test
  * @bug 4910388 4871089 4998624
+ * @key printer
  * @summary Confirm that
  *      1. After choosing Reverse Landscape in the system default print
  *       Print Service (2nd in the list), it
diff --git a/test/jdk/javax/print/attribute/ServiceDialogValidateTest.java b/test/jdk/javax/print/attribute/ServiceDialogValidateTest.java
index 929f76869cff31ada9245cdc50ffdfa8db5abbad..3598d4ae7bd04ae546890f480f6cf90a2ce05d2a 100644
--- a/test/jdk/javax/print/attribute/ServiceDialogValidateTest.java
+++ b/test/jdk/javax/print/attribute/ServiceDialogValidateTest.java
@@ -23,6 +23,7 @@
 /*
  * @test
  * @bug 5049012 8163922
+ * @key printer
  * @summary Verify if PrintToFile option is disabled for flavors that do not
  *          support Destination
  * @requires (os.family == "linux")
diff --git a/test/jdk/javax/print/attribute/ServiceDlgPageRangeTest.java b/test/jdk/javax/print/attribute/ServiceDlgPageRangeTest.java
index ab17680cefc2a64a92b999d05fe07fc4277ce145..5d38d4b1e11dc40559eb7058bc9a0c790dadd077 100644
--- a/test/jdk/javax/print/attribute/ServiceDlgPageRangeTest.java
+++ b/test/jdk/javax/print/attribute/ServiceDlgPageRangeTest.java
@@ -23,6 +23,7 @@
 /*
  * @test
  * @bug 5080098 8164205
+ * @key printer
  * @summary Verify if PageRanges option is disabled for Non service-formatted
  *          flavors.
  * @run main/manual ServiceDlgPageRangeTest
diff --git a/test/jdk/javax/print/attribute/ServiceDlgSheetCollateTest.java b/test/jdk/javax/print/attribute/ServiceDlgSheetCollateTest.java
index 4f80acc29aab2d426f59f219222daa647a49966a..dd569639f259774a46a864ca9ca9f5477214e425 100644
--- a/test/jdk/javax/print/attribute/ServiceDlgSheetCollateTest.java
+++ b/test/jdk/javax/print/attribute/ServiceDlgSheetCollateTest.java
@@ -23,6 +23,7 @@
 /*
  * @test
  * @bug 5080830
+ * @key printer
  * @summary Verify if SheetCollate option is disabled for flavors that do not
  *          support SheetCollate
  * @run main/manual ServiceDlgSheetCollateTest
diff --git a/test/jdk/javax/print/attribute/Services_getDocFl.java b/test/jdk/javax/print/attribute/Services_getDocFl.java
index ca926b39928345a6528b6485c6c60638ed027505..63986e46a9383722cadce2b8d9eb30f151fea9fe 100644
--- a/test/jdk/javax/print/attribute/Services_getDocFl.java
+++ b/test/jdk/javax/print/attribute/Services_getDocFl.java
@@ -28,6 +28,7 @@ import javax.print.attribute.HashPrintRequestAttributeSet;
 
 /*
  * @test
+ * @key printer
  * @bug 4901243 8040139 8167291
  * @summary JPG, GIF, and PNG DocFlavors (URL) should be supported if Postscript is supported.
  * @run main Services_getDocFl
diff --git a/test/jdk/javax/print/attribute/SidesAttributeTest.java b/test/jdk/javax/print/attribute/SidesAttributeTest.java
index 60454f304076dbea2ed0eea233f0a2f303738031..09890c7211bce876c52785a0329d0d52889f353b 100644
--- a/test/jdk/javax/print/attribute/SidesAttributeTest.java
+++ b/test/jdk/javax/print/attribute/SidesAttributeTest.java
@@ -25,6 +25,7 @@
 /*
  * @test
  * @bug JDK-8311033
+ * @key printer
  * @summary [macos] PrinterJob does not take into account Sides attribute
  * @run main/manual SidesAttributeTest
  */
diff --git a/test/jdk/javax/print/attribute/TestUnsupportedResolution.java b/test/jdk/javax/print/attribute/TestUnsupportedResolution.java
index 0ecf842af2aa419eeecdd2bdcdad54b80dd2088e..78e7e93c5f535a6f66f6aae6a95d8fadfdb1a412 100644
--- a/test/jdk/javax/print/attribute/TestUnsupportedResolution.java
+++ b/test/jdk/javax/print/attribute/TestUnsupportedResolution.java
@@ -25,6 +25,7 @@
 /**
  * @test
  * @bug 8033277
+ * @key printer
  * @summary Confirm that scaling of printout is correct.  Manual comparison with printout using a supported resolution is needed.
  * @run main/manual TestUnsupportedResolution
  */
diff --git a/test/jdk/javax/print/attribute/autosense/PrintAutoSenseData.java b/test/jdk/javax/print/attribute/autosense/PrintAutoSenseData.java
index f5ddc0d15e27515fc01ef43ecd95af4bd22619d4..008e0917342a30f1801d4eda475317e49fd040c2 100644
--- a/test/jdk/javax/print/attribute/autosense/PrintAutoSenseData.java
+++ b/test/jdk/javax/print/attribute/autosense/PrintAutoSenseData.java
@@ -24,6 +24,7 @@
 /*
  * @test
  * @bug 4468109 8021583
+ * @key printer
  * @summary Test for printing AUTOSENSE DocFlavor.  No exception should be thrown.
  * @run main PrintAutoSenseData
 */