├── .gitignore ├── CONTRIBUTING.adoc ├── Copyright.adoc ├── Copyright.html ├── DISCLAIMER.txt ├── Jfx-Mac-Readme.html ├── LICENSE.txt ├── Makefile ├── README.adoc ├── Rdemo-web ├── StatsApp │ └── app.R ├── runR └── runStatsApp ├── TODO.txt ├── ai ├── .gitignore ├── README.adoc ├── mystery-image.png ├── pom.xml └── src │ └── main │ └── java │ ├── ai │ └── Constants.java │ ├── chatgpt │ └── ChatGptApiDemo.java │ └── langchain4j │ ├── Converse.java │ ├── LangChain4JContactFinder.java │ ├── LangChain4JImageMaker.java │ ├── LangChain4JOllama.java │ ├── LangChain4JSimplePrompt.java │ └── LangChain4jImageInference.java ├── desktop ├── .classpath ├── .gitignore ├── .project ├── imagedemo.adoc ├── pom.xml └── src │ ├── main │ ├── java │ │ ├── charts │ │ │ └── XChartDemo.java │ │ ├── desktop │ │ │ ├── BrowserCheck.java │ │ │ └── DesktopDemo.java │ │ ├── evals │ │ │ └── EvalServer.java │ │ ├── graphics │ │ │ ├── .gitignore │ │ │ ├── AudioPlay.java │ │ │ ├── ComponentColors.frag │ │ │ ├── CreateAndSaveImage.java │ │ │ ├── Digitizer.java │ │ │ ├── DrawImageDemo.java │ │ │ ├── DrawStringDemo.java │ │ │ ├── DrawStringDemo2.java │ │ │ ├── DropShadow.java │ │ │ ├── FontDemo.java │ │ │ ├── FontDemoLabel.java │ │ │ ├── FontLister.java │ │ │ ├── GetImage.java │ │ │ ├── GfxDemo.java │ │ │ ├── GfxDemo2.java │ │ │ ├── GfxDemoCanvas.java │ │ │ ├── GradientFill.java │ │ │ ├── GraphReader.java │ │ │ ├── Grapher.java │ │ │ ├── Grapher.txt │ │ │ ├── GridImageCanvas.java │ │ │ ├── Grids.java │ │ │ ├── ImageThumbnail.java │ │ │ ├── ImageView.java │ │ │ ├── JMFPlayer.java │ │ │ ├── Kellyag_.ttf │ │ │ ├── Layers.java │ │ │ ├── MediaTrackerDemo.frag │ │ │ ├── MemImage.java │ │ │ ├── MouseDrag.java │ │ │ ├── MouseDragClip.java │ │ │ ├── PaintComponent.java │ │ │ ├── PaintDemo.java │ │ │ ├── PaintMethods.java │ │ │ ├── PixCanvas.java │ │ │ ├── PolygonFill.java │ │ │ ├── ReadWriteImage.java │ │ │ ├── ShowOnAllScreens.java │ │ │ ├── TTFontDemo.java │ │ │ ├── TextFormat.java │ │ │ ├── TexturedText.java │ │ │ ├── TiledImageComponent.java │ │ │ ├── VlcjVideo.java │ │ │ ├── background.gif │ │ │ ├── descr.txt │ │ │ ├── duke.gif │ │ │ ├── policy.txt │ │ │ └── update.frag │ │ ├── gui │ │ │ ├── ActionsDemo.java │ │ │ ├── BordLayDemo.java │ │ │ ├── BordLayDemo2.java │ │ │ ├── BordLayPanel.java │ │ │ ├── ButtonDemo.java │ │ │ ├── ButtonDemo2L.java │ │ │ ├── ButtonDemo2a.java │ │ │ ├── ButtonDemo2b.java │ │ │ ├── ButtonMetadata.java │ │ │ ├── ClipboardDemo.java │ │ │ ├── CompRunner.java │ │ │ ├── ContentPane.java │ │ │ ├── EDTInfo.java │ │ │ ├── ErrorHandler.java │ │ │ ├── ErrorHandlerDemo.java │ │ │ ├── FedexTrack.java │ │ │ ├── FileTree.java │ │ │ ├── FlowLayoutSimple.java │ │ │ ├── FontChooserDemo.java │ │ │ ├── GlassPaneExample.java │ │ │ ├── GoToPage.java │ │ │ ├── GridLayDemo.java │ │ │ ├── HelpDemo.java │ │ │ ├── JColorChooserDemo.java │ │ │ ├── JDialogIssues.java │ │ │ ├── JFileChooserDemo.java │ │ │ ├── JFileFilter.java │ │ │ ├── JFrameDemo.java │ │ │ ├── JFrameDemoMain.java │ │ │ ├── JFrameDemoSafe.java │ │ │ ├── JFrameFlowLayout.java │ │ │ ├── JFrameSimple.java │ │ │ ├── JGoodiesLayoutDemo.java │ │ │ ├── JIFrameDemo.java │ │ │ ├── JLabelHTMLDemo.java │ │ │ ├── JLayerDemo.java │ │ │ ├── JListDemo.java │ │ │ ├── JListModelDemo.java │ │ │ ├── JOptionPaneDemo.java │ │ │ ├── JOptionStringAndComboBox.java │ │ │ ├── JTableSysProps.java │ │ │ ├── JTextAreaDemo.java │ │ │ ├── JTreeDemo.java │ │ │ ├── JTreeSimple.java │ │ │ ├── LNFSwitcher.java │ │ │ ├── LabelText.moved.html │ │ │ ├── ListDemo.java │ │ │ ├── ListenerReuse.java │ │ │ ├── MVC │ │ │ │ ├── MVCDemo.graffle │ │ │ │ ├── MVCDemo.java │ │ │ │ ├── Model.java │ │ │ │ ├── TextView.java │ │ │ │ ├── index.html │ │ │ │ ├── mvc-jbutton.graffle │ │ │ │ └── mvc-viewctl.graffle │ │ │ ├── MVCLoop.java │ │ │ ├── MacOsUiHints.java │ │ │ ├── MenuCascade.java │ │ │ ├── MenuShortcuts.java │ │ │ ├── MoreChoices.java │ │ │ ├── MyCanvas.java │ │ │ ├── MyLabel.java │ │ │ ├── PopupDemo.java │ │ │ ├── ProgressMeterStrmDemo.java │ │ │ ├── RecentFileMenuDemo.java │ │ │ ├── RunOnEdt.java │ │ │ ├── SaveDialog.java │ │ │ ├── Score.java │ │ │ ├── SearchBoxDemo.java │ │ │ ├── SpinnerDemo.java │ │ │ ├── SplashDemo.java │ │ │ ├── StyledText.java │ │ │ ├── SystemTrayDemo.java │ │ │ ├── TabPaneDemo.java │ │ │ ├── TaskbarDemo.java │ │ │ ├── TextAreaWriterDemo.java │ │ │ ├── TextFieldWithClearButton.java │ │ │ ├── ThreadBasedCatcher.java │ │ │ ├── UndoDemo.java │ │ │ ├── Unicode.java │ │ │ ├── UnicodeWidgets.properties │ │ │ ├── Welcome.java │ │ │ ├── WinClose2.java │ │ │ ├── WindowDemo.java │ │ │ ├── WindowDemo2.java │ │ │ ├── arraylisttable │ │ │ │ ├── ArrayListTableDatum.java │ │ │ │ └── ArrayListTableSimple.java │ │ │ ├── cardlayout │ │ │ │ ├── CardLayDemo.java │ │ │ │ ├── CardLayoutSimple.java │ │ │ │ ├── index.html │ │ │ │ ├── loginLogin.gif │ │ │ │ ├── loginPasswd.gif │ │ │ │ └── loginWelcome.gif │ │ │ ├── centre.frag │ │ │ ├── datatransfer │ │ │ │ ├── Dropper.java │ │ │ │ └── Transfer.java │ │ │ ├── descr.txt │ │ │ ├── getImage.frag │ │ │ ├── getSizes.frag │ │ │ ├── helpdemo.htm │ │ │ └── tray.gif │ │ ├── gui_awt │ │ │ ├── ButtonDemo2c.java │ │ │ ├── FileDialogDemo.java │ │ │ ├── FrameDemo.java │ │ │ ├── FrameIcon.gif │ │ │ ├── FrameIcon.java │ │ │ ├── MenuDemo.java │ │ │ └── README.txt │ │ ├── gui_swt │ │ │ ├── ButtonDemo.java │ │ │ ├── MenuDemo.java │ │ │ ├── README.txt │ │ │ └── SWTUtil.java │ │ ├── javacomm │ │ │ ├── CommPortDial.java │ │ │ ├── CommPortLister.java │ │ │ ├── CommPortModem.java │ │ │ ├── CommPortOpen.java │ │ │ ├── CommPortSimple.java │ │ │ ├── CommPortThreaded.java │ │ │ ├── JMModel.java │ │ │ ├── JModem.form │ │ │ ├── JModem.java │ │ │ ├── ParallelPrint.java │ │ │ ├── PortChooser.java │ │ │ ├── PortOwner.java │ │ │ ├── ProtocolBotchException.java │ │ │ ├── SerialLogger.java │ │ │ ├── SerialReadByEvents.java │ │ │ ├── TModem.java │ │ │ ├── index.html │ │ │ ├── javacook.ps │ │ │ ├── javax.comm.txt │ │ │ ├── listfonts.ps │ │ │ └── tmodem.c │ │ ├── javafx │ │ │ ├── AudioPlay.java │ │ │ ├── HelloFx.java │ │ │ └── JfxVideo.java │ │ ├── plotter │ │ │ ├── Penman.java │ │ │ ├── PlotDriver.java │ │ │ ├── Plotter.java │ │ │ ├── PlotterAWT.java │ │ │ ├── PlotterDummy.java │ │ │ └── descr.txt │ │ ├── printjdk11printjob │ │ │ ├── PrintDemo0.java │ │ │ ├── PrintDemo1.java │ │ │ ├── PrintDemoGfx1_1.java │ │ │ └── PrintFile.java │ │ ├── printjdk12printerjob │ │ │ └── PrintDemoGfx.java │ │ └── printjdk14printservice │ │ │ ├── GraphicsToPostScript.java │ │ │ ├── PrintPostScript.java │ │ │ ├── PrintServiceDemo.java │ │ │ └── duke.gif │ └── resources │ │ └── placeholder.txt │ └── test │ ├── java │ ├── graphics │ │ └── GraphReaderTest.java │ └── plotter │ │ └── PlotterTest.java │ └── resources │ └── placeholder.txt ├── ee ├── .classpath ├── .gitignore ├── .project ├── .settings │ └── org.eclipse.jdt.core.prefs ├── LICENSE.txt ├── README.adoc ├── pom.xml ├── scripts │ └── jaxwsdemo └── src │ ├── .cvsignore │ ├── main │ ├── java │ │ ├── domain │ │ │ ├── Duration.java │ │ │ └── Track.java │ │ ├── ejb2 │ │ │ ├── CollectionUse.java │ │ │ ├── LocalBeanRef.xml │ │ │ ├── billing │ │ │ │ ├── Billing.java │ │ │ │ ├── BillingBean.java │ │ │ │ └── BillingHome.java │ │ │ ├── bmp │ │ │ │ ├── Entity.java │ │ │ │ ├── EntityEJB.java │ │ │ │ ├── EntityHome.java │ │ │ │ ├── META-INF │ │ │ │ │ └── ejb-jar.xml │ │ │ │ ├── Recording.java │ │ │ │ └── build.xml │ │ │ ├── build.xml │ │ │ ├── descr.txt │ │ │ ├── hello │ │ │ │ ├── .cvsignore │ │ │ │ ├── Hello.java │ │ │ │ ├── HelloClient.java │ │ │ │ ├── HelloEJB.java │ │ │ │ ├── HelloHome.java │ │ │ │ ├── Makefile │ │ │ │ ├── build.xml │ │ │ │ ├── hello.jar │ │ │ │ ├── metadata │ │ │ │ │ └── ejb-jar.xml │ │ │ │ ├── runclient │ │ │ │ └── runclient.bat │ │ │ ├── interfaces │ │ │ │ ├── META-INF │ │ │ │ │ └── ejb-jar.xml │ │ │ │ └── metadata │ │ │ │ │ └── jndi.properties │ │ │ ├── localinterfaces │ │ │ │ ├── .cvsignore │ │ │ │ ├── MemberBean.java │ │ │ │ ├── MemberLocal.java │ │ │ │ ├── MemberLocalHome.java │ │ │ │ ├── build.xml │ │ │ │ ├── build │ │ │ │ │ └── META-INF │ │ │ │ │ │ └── ejb-jar.xml │ │ │ │ └── ejb-jar.xml │ │ │ ├── musicrecording │ │ │ │ ├── README.html │ │ │ │ ├── beans │ │ │ │ │ ├── META-INF │ │ │ │ │ │ ├── ejb-jar.xml │ │ │ │ │ │ ├── jboss.xml │ │ │ │ │ │ ├── jbosscmp-jdbc.xml │ │ │ │ │ │ ├── weblogic-cmp-rdbms-jar.xml │ │ │ │ │ │ └── weblogic-ejb-jar.xml │ │ │ │ │ ├── MusicBean.java │ │ │ │ │ ├── MusicCategory.java │ │ │ │ │ ├── MusicLocal.java │ │ │ │ │ ├── MusicLocalHome.java │ │ │ │ │ ├── MusicRecordingDO.java │ │ │ │ │ ├── MusicRemote.java │ │ │ │ │ ├── MusicRemoteHome.java │ │ │ │ │ ├── PublisherBean.java │ │ │ │ │ ├── PublisherLocal.java │ │ │ │ │ ├── PublisherLocalHome.java │ │ │ │ │ ├── PublisherRemote.java │ │ │ │ │ ├── PublisherRemoteHome.java │ │ │ │ │ ├── SaleBean.java │ │ │ │ │ ├── SaleLocal.java │ │ │ │ │ ├── SaleLocalHome.java │ │ │ │ │ ├── SaleRemote.java │ │ │ │ │ ├── SaleRemoteHome.java │ │ │ │ │ └── build.xml │ │ │ │ ├── client │ │ │ │ │ ├── Client.java │ │ │ │ │ ├── Populate.java │ │ │ │ │ ├── build.xml │ │ │ │ │ └── jndi.properties │ │ │ │ └── setup.sql │ │ │ └── serverinfo │ │ │ │ ├── README.html │ │ │ │ ├── UserTX.java │ │ │ │ ├── bean │ │ │ │ ├── META-INF │ │ │ │ │ ├── ejb-jar.xml │ │ │ │ │ └── jboss.xml │ │ │ │ ├── ServInfo.java │ │ │ │ ├── ServInfoBean.java │ │ │ │ ├── ServInfoHome.java │ │ │ │ └── build.xml │ │ │ │ ├── client │ │ │ │ ├── Client.java │ │ │ │ ├── build.xml │ │ │ │ ├── jndi.properties │ │ │ │ ├── runclient │ │ │ │ └── runclient.bat │ │ │ │ └── handout.txt │ │ ├── ejb3 │ │ │ ├── CardValidatorLocal.java │ │ │ ├── CardValidatorRemote.java │ │ │ ├── LoggingInterceptor.java │ │ │ ├── StatelessEJB.java │ │ │ └── mk │ │ ├── ejb3bmt │ │ │ ├── BMTDemo.java │ │ │ ├── BMTDemoImpl.java │ │ │ └── LogEntry.java │ │ ├── ejb3client │ │ │ ├── StatelessClient.java │ │ │ ├── jndi.properties │ │ │ └── mk │ │ ├── hibernate │ │ │ ├── BaseDAOHibernateImpl.java │ │ │ ├── DemoDAO.java │ │ │ └── DemoDAODemo.java │ │ ├── jaxrpcservice │ │ │ ├── Calc.java │ │ │ └── README.txt │ │ ├── jaxrsservice │ │ │ ├── InventoryServiceJAXRS.java │ │ │ └── InventoryServletRaw.java │ │ ├── jaxwsclient │ │ │ ├── Add.java │ │ │ ├── AddResponse.java │ │ │ ├── Calc.java │ │ │ ├── CalcService.java │ │ │ ├── ClientMain.java │ │ │ ├── Divide.java │ │ │ ├── DivideResponse.java │ │ │ ├── Multiply.java │ │ │ ├── MultiplyResponse.java │ │ │ ├── ObjectFactory.java │ │ │ ├── Subtract.java │ │ │ ├── SubtractResponse.java │ │ │ ├── TinyClientMain.java │ │ │ ├── client.pl │ │ │ ├── client.py │ │ │ └── package-info.java │ │ ├── jaxwsservice │ │ │ ├── Calc.java │ │ │ └── ServiceMain.java │ │ ├── jms │ │ │ ├── JMSChat.java │ │ │ ├── SimpleConsumer.java │ │ │ ├── SimpleProducer.java │ │ │ └── jmschat │ │ ├── jndi │ │ │ ├── GetDataSource.java │ │ │ ├── TimeJNDI.java │ │ │ └── rmi.properties │ │ ├── jndiprovider │ │ │ ├── FlatNameParser.java │ │ │ ├── Services.java │ │ │ ├── ServicesContextFactory.java │ │ │ ├── ServicesTest.java │ │ │ ├── index.html │ │ │ └── jndi.properties │ │ ├── jpa │ │ │ └── README.txt │ │ ├── jsf │ │ │ ├── ManagedBean.java │ │ │ └── RegexValidator.java │ │ ├── jsp │ │ │ ├── FiveInts.java │ │ │ └── darwin │ │ │ │ ├── Counter.java │ │ │ │ └── PasswordChecker.java │ │ ├── presentation │ │ │ └── ValueListHandler.java │ │ ├── rmi │ │ │ ├── .cvsignore │ │ │ ├── DateClient.java │ │ │ ├── DatePanel.java │ │ │ ├── DateServer.java │ │ │ ├── ListRMI.java │ │ │ ├── NonSerNonRem.java │ │ │ ├── RemoteDate.java │ │ │ ├── RemoteDateImpl.java │ │ │ ├── agent │ │ │ │ ├── .cvsignore │ │ │ │ ├── ClientProgram.java │ │ │ │ ├── ServerMain.java │ │ │ │ ├── agents │ │ │ │ │ ├── Agent.java │ │ │ │ │ └── AgentImpl.java │ │ │ │ ├── build.xml │ │ │ │ ├── runclient │ │ │ │ ├── runserver │ │ │ │ └── servers │ │ │ │ │ ├── RunServer.java │ │ │ │ │ └── RunServerImpl.java │ │ │ ├── build.xml │ │ │ ├── callback │ │ │ │ ├── .cvsignore │ │ │ │ ├── Client.java │ │ │ │ ├── ClientProgram.java │ │ │ │ ├── TickerServer.java │ │ │ │ ├── TickerServerImpl.java │ │ │ │ └── index.html │ │ │ ├── dateserver.policy │ │ │ └── descr.txt │ │ ├── servlet │ │ │ ├── BrokenServlet.java │ │ │ ├── CalEventMaker.htm │ │ │ ├── CalEventMaker.java │ │ │ ├── CodeRed.java │ │ │ ├── ColorCustServlet.java │ │ │ ├── ColorCustomize.html │ │ │ ├── CookieServlet.java │ │ │ ├── FiveIntsServlet.java │ │ │ ├── ForwardException.java │ │ │ ├── HelloServlet.java │ │ │ ├── HelloServletMinimal.java │ │ │ ├── HttpSessionInfoServlet.java │ │ │ ├── InitParams.java │ │ │ ├── IntsServlet.htm │ │ │ ├── IntsServlet.java │ │ │ ├── ListParametersForm.html │ │ │ ├── ListParametersServlet.java │ │ │ ├── MultipartResponseDemoServlet.java │ │ │ ├── MyRequest.java │ │ │ ├── MyResponse.java │ │ │ ├── OrderServlet.htm │ │ │ ├── OrderServlet.java │ │ │ ├── RawSQLServlet.java │ │ │ ├── RebootServlet.java │ │ │ ├── Term.java │ │ │ ├── TermsAccessor.java │ │ │ ├── TermsServlet.java │ │ │ ├── TermsServletPDF.java │ │ │ ├── UploadServlet.java │ │ │ ├── chartservlet │ │ │ │ ├── ChartServlet.java │ │ │ │ └── chartservlet.html │ │ │ ├── chatservlet │ │ │ │ ├── .cvsignore │ │ │ │ ├── ChatConstants.java │ │ │ │ ├── ChatListener.java │ │ │ │ ├── ChatServlet.java │ │ │ │ ├── ChatState.java │ │ │ │ ├── UserState.java │ │ │ │ ├── WEB-INF │ │ │ │ │ └── web.xml │ │ │ │ ├── chat.jsp │ │ │ │ ├── index.jsp │ │ │ │ └── stylesheet.css │ │ │ ├── classpath.txt │ │ │ ├── descr.txt │ │ │ ├── pdfcouponservlet │ │ │ │ ├── PDFCouponServlet.java │ │ │ │ ├── WEB-INF │ │ │ │ │ ├── lib │ │ │ │ │ │ └── spdf.jar │ │ │ │ │ └── web.xml │ │ │ │ └── index.html │ │ │ └── upload.html │ │ ├── websvcdemo │ │ │ ├── CallSoap.java │ │ │ ├── ReallyRawClient.java │ │ │ ├── SAAJServlet.java │ │ │ └── SendSoap.java │ │ └── websvcutil │ │ │ ├── DateUtil.java │ │ │ └── URLUtil.java │ ├── resources │ │ ├── jndi.properties │ │ └── persistence.xml │ └── webapp │ │ ├── CalendarPage.jsp │ │ ├── FiveInts.jsp │ │ ├── FontSizes.jsp │ │ ├── WEB-INF │ │ ├── jboss-web.xml │ │ └── web.xml │ │ ├── counter.jsp │ │ ├── demo.txt │ │ ├── forceerror.jsp │ │ ├── hello-rtf.jsp │ │ ├── hello-wml.jsp │ │ ├── hello-xml.jsp │ │ ├── hello.jsp │ │ ├── hellominimal.jsp │ │ ├── index.jsp │ │ ├── inventory.jsp │ │ ├── jspIncludeASP.jsp │ │ ├── login.jsp │ │ ├── oops.jsp │ │ ├── passwordchecker.html │ │ ├── pwd.jsp │ │ ├── testinclude.jsp │ │ ├── threetypes.jsp │ │ └── wherebeanslive.jsp │ └── test │ └── java │ ├── jaxwsclient │ └── CalcIntegTest.java │ ├── jaxwsservice │ └── CalcUnitTest.java │ ├── presentation │ └── ValueListHandlerTest.java │ ├── servlet │ └── TermsAccessorTest.java │ └── websvcregress │ ├── DateUtilTest.java │ └── URLUtilTest.java ├── graal ├── .gitignore ├── README.adoc ├── pom.xml └── src │ └── main │ └── java │ ├── graaldemo │ ├── JavaCallJS.java │ └── JavaCallPython.java │ └── module-info.java ├── gradledemo ├── .gitattributes ├── .gitignore ├── README.adoc ├── app │ ├── build.gradle │ └── src │ │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── example │ │ │ └── gradledemo │ │ │ └── App.java │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── gradledemo │ │ └── AppTest.java ├── gradle.properties └── settings.gradle ├── images ├── macbuildpath1.png └── macbuildpath2.png ├── incubation ├── .gitignore ├── README.adoc ├── pom.xml └── src │ └── main │ └── java │ ├── module-info.java │ └── numbers │ └── VectorOps.java ├── index-bychapter.html ├── index-byname.html ├── index.html ├── javafx ├── .gitignore ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── darwinsys │ └── javafx │ └── ListDetail.java ├── jlink ├── .gitignore ├── README.adoc ├── mkbat ├── run ├── run.bat └── src │ ├── Hello.java │ └── module-info.java ├── json ├── .gitignore ├── pom.xml └── src │ └── main │ ├── java │ ├── domain │ │ ├── Person.java │ │ └── SoftwareInfo.java │ └── json │ │ ├── JsonPointerDemo.java │ │ ├── LocalDateToJsonManually.java │ │ ├── ReadWriteJackson.java │ │ ├── ReadWriteJsonB.java │ │ ├── SoftwareParseJackson.java │ │ ├── SoftwareParseOrgJson.java │ │ ├── WriteOrgJson.java │ │ └── crashBurnExample.json │ └── resources │ ├── json │ └── softwareinfo.json │ └── placeholder.txt ├── lombokdemo ├── .classpath ├── .gitignore ├── .project ├── pom.xml ├── run └── src │ ├── main │ ├── java │ │ └── demo │ │ │ └── LombokDemo.java │ └── resources │ │ └── placeholder.txt │ └── test │ ├── java │ └── demo │ │ └── LombokDemoTest.java │ └── resources │ └── placeholder.txt ├── main ├── .classpath ├── .gitignore ├── .project ├── Makefile ├── README.adoc ├── excludes.xml ├── fixexcludes.awk ├── lines.txt ├── pom.xml ├── scripts │ ├── r-simple-demo │ └── run-random-histo └── src │ ├── main │ ├── buildtools │ │ └── build.gradle │ ├── c │ │ └── rounding.c │ ├── java │ │ ├── acks │ │ │ ├── 471Acks.dat │ │ │ ├── 478Acks.dat │ │ │ └── Acks.java │ │ ├── apachelogfile.txt │ │ ├── beans │ │ │ ├── BSFAction.java │ │ │ ├── BSFSample.java │ │ │ ├── CodeBean.java │ │ │ ├── buttonhandler.py │ │ │ └── manifest.stub │ │ ├── chartbean │ │ │ ├── ChartBean.java │ │ │ ├── ChartBeanInfo.java │ │ │ ├── ChartData.java │ │ │ ├── ChartDemo.java │ │ │ ├── descr.txt │ │ │ └── manifest.stub │ │ ├── chat │ │ │ ├── ChatClient.java │ │ │ ├── ChatProtocol.java │ │ │ ├── ChatServer.java │ │ │ ├── ConsoleChatClient.java │ │ │ └── TODO.txt │ │ ├── classfileapi │ │ │ ├── ClassFileAPIDemo.java │ │ │ └── CreateLoadAndRun.java │ │ ├── classloader │ │ │ ├── ClassFileToBytes.java │ │ │ ├── Demo.java │ │ │ └── descr.txt │ │ ├── com │ │ │ └── darwinsys │ │ │ │ └── ianstuff │ │ │ │ ├── X.java │ │ │ │ └── Y.java │ │ ├── database │ │ │ ├── JDAdmin.java │ │ │ ├── JDConstants.java │ │ │ ├── NeverConcatenate.java │ │ │ ├── TextToDBM.java │ │ │ ├── TextToJDBC.java │ │ │ ├── UserDB.java │ │ │ ├── UserDBDBM.java │ │ │ ├── UserDBDemo.java │ │ │ ├── UserDBJDBC.java │ │ │ ├── UserDBText.java │ │ │ └── UserQuery.java │ │ ├── datetime │ │ │ ├── CurrentDateTime.java │ │ │ ├── DateAdd.java │ │ │ ├── DateCalculations.java │ │ │ ├── DateConversions.java │ │ │ ├── DateDiff.java │ │ │ ├── DateParse.java │ │ │ ├── DateSimple.java │ │ │ ├── DateTimeFormatterDemo.java │ │ │ ├── DateTimeFormatterLM.java │ │ │ ├── DateTimeFormatterLocalized.java │ │ │ ├── DateTimeFormatterNewLocale.java │ │ │ ├── DateUntil.java │ │ │ ├── Easter.java │ │ │ ├── EndOfTime64Msec.java │ │ │ ├── EpochStuff.java │ │ │ ├── FlightArrivalTimeCalc.java │ │ │ ├── Hastings.java │ │ │ ├── LegacyDates.java │ │ │ ├── LegacyDatesDIY.java │ │ │ ├── MeetingDates.java │ │ │ ├── ScheduleSlider.java │ │ │ ├── TestableDateTime.java │ │ │ ├── TimeTranslate.java │ │ │ ├── WeekDaysLeft.java │ │ │ └── WeekOfYear.java │ │ ├── datetimeold │ │ │ ├── Cal.java │ │ │ ├── CalCalcs.java │ │ │ ├── CalPanel.java │ │ │ ├── CalUtils.java │ │ │ ├── CalendarDemo.java │ │ │ ├── CalendarPage.java │ │ │ ├── ClockPanel.java │ │ │ ├── CompareDates.java │ │ │ ├── CompareFileDates.java │ │ │ ├── Date0.java │ │ │ ├── Date1.java │ │ │ ├── Date2.java │ │ │ ├── DateAdd.java │ │ │ ├── DateCalAdd.java │ │ │ ├── DateDemo.java │ │ │ ├── DateDiff.java │ │ │ ├── DateFormatBest.java │ │ │ ├── DateFormatFile.java │ │ │ ├── DateParse1.java │ │ │ ├── DateParse2.java │ │ │ ├── DatePrint1.java │ │ │ ├── DatePrint2.java │ │ │ ├── DateUse.java │ │ │ ├── DayOfYear.java │ │ │ ├── DayWeek.java │ │ │ ├── Easter.java │ │ │ ├── GetMonthNames.java │ │ │ ├── GregCalDemo.java │ │ │ ├── ISODate.java │ │ │ ├── LongToMSec.java │ │ │ ├── QuickTimeFormat.java │ │ │ ├── README.txt │ │ │ ├── Reminder.java │ │ │ ├── TimeComputation.java │ │ │ ├── Timer.c │ │ │ ├── Timer0.java │ │ │ ├── Y2038.java │ │ │ └── descr.txt │ │ ├── dbm │ │ │ ├── DBM.java │ │ │ ├── Makefile │ │ │ ├── ReadHistNS.java │ │ │ ├── descr.txt │ │ │ ├── jdbm.c │ │ │ └── try.c │ │ ├── di │ │ │ ├── ControllerTightlyCoupled.java │ │ │ ├── Model.java │ │ │ ├── View.java │ │ │ ├── cdi │ │ │ │ ├── ConsoleViewer.java │ │ │ │ ├── MainAndController.java │ │ │ │ ├── ModelImpl.java │ │ │ │ └── MyModel.java │ │ │ └── spring │ │ │ │ ├── ConsoleViewer.java │ │ │ │ ├── MainAndController.java │ │ │ │ ├── SimpleModel.java │ │ │ │ ├── SpringModel.java │ │ │ │ └── SwingViewer.java │ │ ├── di0 │ │ │ ├── ConsoleReporter.java │ │ │ ├── Process.java │ │ │ ├── Processor.java │ │ │ ├── Reporter.java │ │ │ ├── SpringBeanConfig.java │ │ │ └── SpringMain.java │ │ ├── diary │ │ │ ├── Diary.java │ │ │ └── DiaryMenus.properties │ │ ├── dir_file │ │ │ ├── CheckFiles.java │ │ │ ├── Creat.java │ │ │ ├── Delete.java │ │ │ ├── Delete2.java │ │ │ ├── DirTree.java │ │ │ ├── FNFilter.java │ │ │ ├── FNFilter2.java │ │ │ ├── FNFilterL.java │ │ │ ├── FileStatus.java │ │ │ ├── Find.java │ │ │ ├── FindFilter.java │ │ │ ├── FindNumFilter.java │ │ │ ├── FindStream.java │ │ │ ├── KillFilesByName.java │ │ │ ├── ListRoots.java │ │ │ ├── Ls.java │ │ │ ├── MkDirExamples.java │ │ │ ├── PathDemo.java │ │ │ ├── PathsFilesDemo.java │ │ │ ├── PosixFilePermissionsViewDemo.java │ │ │ ├── ReadOnly.java │ │ │ ├── Rename.java │ │ │ ├── TempFiles.java │ │ │ ├── WalkTreeDemo.java │ │ │ ├── descr.txt │ │ │ └── filelist.txt │ │ ├── domain │ │ │ ├── Address.java │ │ │ ├── Person.java │ │ │ └── User.java │ │ ├── email │ │ │ ├── Alias.java │ │ │ ├── AliasBean.java │ │ │ ├── AliasBeanDemo.java │ │ │ ├── BatchMailer.java │ │ │ ├── CheckOpenMailRelay.java │ │ │ ├── CheckOpenMailRelayGui.java │ │ │ ├── CustMailer.java │ │ │ ├── DropReceivedLines.java │ │ │ ├── FolderNode.java │ │ │ ├── Header.java │ │ │ ├── MailClient.java │ │ │ ├── MailClient.properties │ │ │ ├── MailClient.properties.public │ │ │ ├── MailComposeBean.java │ │ │ ├── MailComposeFrame.java │ │ │ ├── MailConstants.java │ │ │ ├── MailLister.java │ │ │ ├── MailReaderBean.java │ │ │ ├── MessageNode.java │ │ │ ├── MimeHandler.java │ │ │ ├── RawSender.java │ │ │ ├── ReadHeaders.java │ │ │ ├── SMTPException.java │ │ │ ├── SendMime.java │ │ │ ├── Sender.java │ │ │ ├── Sender2.java │ │ │ ├── SmtpTalk.java │ │ │ ├── SysExits.java │ │ │ ├── TODO.txt │ │ │ ├── classpath.txt │ │ │ ├── custlist.txt │ │ │ ├── descr.txt │ │ │ ├── do_not_spam.txt │ │ │ ├── email.html │ │ │ ├── javamail.providers │ │ │ └── template.txt │ │ ├── employee-data.txt │ │ ├── environ │ │ │ ├── CommonsCliDemo.java │ │ │ ├── GetEnv.java │ │ │ ├── GetOptDemo.java │ │ │ ├── GetOptDemoNew.java │ │ │ ├── GetOptParseArgsDemo.java │ │ │ ├── GetOptSimple.java │ │ │ ├── GetVersion.java │ │ │ ├── PrintClassPath.java │ │ │ ├── SysPropDemo.java │ │ │ ├── SysPropSet.java │ │ │ └── descr.txt │ │ ├── evals │ │ │ ├── DailyEval.java │ │ │ ├── DailyEvalThanks.html │ │ │ ├── DupEvalException.java │ │ │ ├── EvalClient.java │ │ │ ├── EvalServlet.html │ │ │ ├── EvalServlet.java │ │ │ ├── Evaluation.java │ │ │ ├── Grapher.java │ │ │ ├── NetEvalInfo.java │ │ │ ├── NetEvaluation.java │ │ │ └── README.txt │ │ ├── ffi │ │ │ ├── .gitignore │ │ │ ├── CallCFromJava.java │ │ │ ├── Makefile │ │ │ └── hello-ffi.c │ │ ├── functional │ │ │ ├── Camera.java │ │ │ ├── CameraAcceptor.java │ │ │ ├── CameraMake.java │ │ │ ├── CameraSearchCameraAcceptor.java │ │ │ ├── CameraSearchParallelStream.java │ │ │ ├── CameraSearchPredicate.java │ │ │ ├── CameraSensor.java │ │ │ ├── CameraType.java │ │ │ ├── CameraUtils.java │ │ │ ├── ChooseYourMethod.java │ │ │ ├── ConstrMethodRef.java │ │ │ ├── FlowDemo.java │ │ │ ├── LambdasInAction.java │ │ │ ├── LambdasWithOverloading.java │ │ │ ├── LineCount.java │ │ │ ├── MapMultiDemo.java │ │ │ ├── MyDemo.java │ │ │ ├── MyIlcPriceAcceptor.java │ │ │ ├── ParallelStreamDemo.java │ │ │ ├── ProcessIntsFunctional.java │ │ │ ├── ProcessIntsIntUnaryOperator.java │ │ │ ├── ProcessIntsUsingFunctional.java │ │ │ ├── ReferencesDemo.java │ │ │ ├── ReferencesDemo2.java │ │ │ ├── ReferencesDemo3.java │ │ │ ├── ReferencesDemo4.java │ │ │ ├── ReturnLambda.java │ │ │ ├── SimpleCollectorsGroupingBy.java │ │ │ ├── SimpleStreamDemo.java │ │ │ ├── SpliteratorDemo.java │ │ │ ├── StreamBuild.java │ │ │ ├── StreamGathererCustom.java │ │ │ ├── StreamGathererDemo.java │ │ │ ├── StreamGathererScanDemo.java │ │ │ ├── StreamGenerate.java │ │ │ ├── TeeCollectorDemo.java │ │ │ ├── UnixPipesFiltersReplacement.java │ │ │ ├── WordFreq.java │ │ │ ├── WordFreq2.java │ │ │ └── country_codes.txt │ │ ├── functional_med │ │ │ ├── FPMedDemo.java │ │ │ ├── data │ │ │ │ ├── MockData.java │ │ │ │ ├── ReadingAcceptor.java │ │ │ │ └── ReadingDaoSketch.java │ │ │ └── model │ │ │ │ ├── Reading.java │ │ │ │ └── ReadingType.java │ │ ├── games │ │ │ └── TwistyPassages.java │ │ ├── gc │ │ │ └── WeakReferenceDemo.java │ │ ├── i18n │ │ │ ├── BusCard.java │ │ │ ├── BusCard.properties │ │ │ ├── DefaultLocale.java │ │ │ ├── EnumIntl.java │ │ │ ├── I18NDemo.java │ │ │ ├── JOptionDemo.java │ │ │ ├── JiltBefore.java │ │ │ ├── ListLocales.java │ │ │ ├── MenuIntl.java │ │ │ ├── MenuIntl2.java │ │ │ ├── MessageFormatDemo.java │ │ │ ├── MessageFormatDemoIntl.java │ │ │ ├── OneButton.java │ │ │ ├── SetLocale.java │ │ │ ├── ShowDate.java │ │ │ ├── UseDefaultLocale.java │ │ │ ├── UseLocales.java │ │ │ ├── descr.txt │ │ │ └── jiltdemo.prj │ │ ├── images │ │ │ ├── coffeecup.png │ │ │ ├── face.gif │ │ │ ├── javacook.jpg │ │ │ ├── logo.gif │ │ │ ├── logo.png │ │ │ ├── lucene-power.gif │ │ │ ├── openbsdpower.gif │ │ │ ├── sitelogo.png │ │ │ └── tomcat-power.gif │ │ ├── index-of-directories.txt │ │ ├── io │ │ │ ├── AisNotA.java │ │ │ ├── AppendFile.java │ │ │ ├── BadNewline.java │ │ │ ├── CalcToken.java │ │ │ ├── CatFile.java │ │ │ ├── CatStdin.java │ │ │ ├── CharMode.java │ │ │ ├── ConsoleRead.java │ │ │ ├── ContLineReader.java │ │ │ ├── DiskFree.java │ │ │ ├── EscapeContLineReader.java │ │ │ ├── FileDupFinder.java │ │ │ ├── FilesInfos.java │ │ │ ├── FillDisk.java │ │ │ ├── FormatterDates.java │ │ │ ├── FormatterDemo.java │ │ │ ├── FortranLineReader.java │ │ │ ├── GetMark.java │ │ │ ├── GetResourceDemo.java │ │ │ ├── GoodNewline.java │ │ │ ├── IndentContLineReader.java │ │ │ ├── ListCharSets.java │ │ │ ├── MyData.java │ │ │ ├── OpenFileByName.java │ │ │ ├── PipedIO.java │ │ │ ├── PrintFile.java │ │ │ ├── PrintOut15.java │ │ │ ├── PrintStandardOutput.java │ │ │ ├── PrintfDemo.java │ │ │ ├── PrintfPrecision.java │ │ │ ├── ReadCharsOneAtATime.java │ │ │ ├── ReadFileIntoLinesStream.java │ │ │ ├── ReadFileIntoString.java │ │ │ ├── ReadGZIP.java │ │ │ ├── ReadLines.java │ │ │ ├── ReadPassword.java │ │ │ ├── ReadRandom.java │ │ │ ├── ReadStdin.java │ │ │ ├── ReadStdinInt.java │ │ │ ├── ReadStdinInt15.java │ │ │ ├── ReadStdinIntsFunctional.java │ │ │ ├── ReadWithCare_CharsAreUnsigned.java │ │ │ ├── Redirect.java │ │ │ ├── ScanStreamTok.java │ │ │ ├── ScanStringTok.java │ │ │ ├── ScannerDemo.java │ │ │ ├── SerialDemoAbstractBase.java │ │ │ ├── SerialDemoObjectStream.java │ │ │ ├── SerialDemoXML.java │ │ │ ├── SerialTolerantReader.java │ │ │ ├── SimpleCalcScanner.java │ │ │ ├── SimpleCalcStreamTok.java │ │ │ ├── SimpleCalcTest.txt │ │ │ ├── SpamRat.java │ │ │ ├── SpamRatInfo.properties │ │ │ ├── Stdout.java │ │ │ ├── Strings.java │ │ │ ├── TeePrintStream.java │ │ │ ├── UnZip.java │ │ │ ├── UseConverters.java │ │ │ ├── Vis.java │ │ │ ├── WriteBinary.java │ │ │ ├── WriteRandom.c │ │ │ ├── WriteZipFile.java │ │ │ ├── Zip.java │ │ │ ├── descr.txt │ │ │ ├── myconfig.properties │ │ │ └── package.jdo │ │ ├── jaas │ │ │ ├── JaasDemo.java │ │ │ ├── loginconfig.txt │ │ │ └── permissions.txt │ │ ├── javadoc │ │ │ ├── JavadocDemo.java │ │ │ ├── JavadocMdDemo.java │ │ │ ├── package.html │ │ │ └── snippet-files │ │ │ │ └── snyde_comment.py │ │ ├── jce │ │ │ └── JceSimpledemo.java │ │ ├── jdbc │ │ │ ├── BigTrans.java │ │ │ ├── CachedRowSetDemo.java │ │ │ ├── Connect.java │ │ │ ├── ConnectionMetaDemo.java │ │ │ ├── DatabaseMetaDemo.java │ │ │ ├── InsertRowBug.java │ │ │ ├── JDBCQuery.java │ │ │ ├── ListTables.java │ │ │ ├── LoadDriver.java │ │ │ ├── ManualTransactionCommit.java │ │ │ ├── MigrateData.java │ │ │ ├── PreparedStatementDemo.java │ │ │ ├── RegisterDemo.java │ │ │ ├── ResultSetUpdate.java │ │ │ ├── ShowBatch.java │ │ │ ├── ShowTable.java │ │ │ ├── StoredProcedureDemo.java │ │ │ ├── TXInfo.java │ │ │ ├── TryResourceClose.java │ │ │ ├── TypeMapDemo.java │ │ │ ├── checkfordatasource │ │ │ │ └── CheckForDataSource.java │ │ │ ├── createStoredProcedure.sql │ │ │ ├── datasource │ │ │ │ ├── DarwinsDataDelivery.java │ │ │ │ ├── DarwinsDataLookup.java │ │ │ │ ├── DarwinsDataSource.java │ │ │ │ └── index.html │ │ │ ├── db.properties │ │ │ ├── descr.txt │ │ │ ├── rawsql.html │ │ │ └── sqlrunner │ │ ├── jmx │ │ │ ├── JMXDemo.java │ │ │ ├── Monitoring.java │ │ │ ├── MyController.java │ │ │ └── MyControllerMBean.java │ │ ├── jndi │ │ │ ├── JNDIData.java │ │ │ ├── JNDILookup.java │ │ │ ├── JNDIPublish.java │ │ │ ├── ListJavaComp.java │ │ │ ├── LookupFile.java │ │ │ ├── descr.txt │ │ │ ├── jndi.jboss │ │ │ ├── jndi.properties │ │ │ ├── jndi.rmi │ │ │ └── jndi.weblogic │ │ ├── jni │ │ │ ├── .gitignore │ │ │ ├── HelloJni.c │ │ │ ├── HelloJni.java │ │ │ ├── Makefile │ │ │ ├── NativeDemo.java │ │ │ ├── index.html │ │ │ └── javafromc.c │ │ ├── lang │ │ │ ├── AbstractStatic.java │ │ │ ├── AddException.java │ │ │ ├── AllShallRun.java │ │ │ ├── AndOp.java │ │ │ ├── AnnotationDemo.java │ │ │ ├── AnnotationOverrideDemo.java │ │ │ ├── ArgvNumber.java │ │ │ ├── Array2D.java │ │ │ ├── ArrayArgs.java │ │ │ ├── ArrayEqualsWorks.java │ │ │ ├── ArrayIsIterable.java │ │ │ ├── ArraySimple.java │ │ │ ├── Bad.java │ │ │ ├── BooleanAndOr.java │ │ │ ├── BuiltinTypes.java │ │ │ ├── ByteAdd.java │ │ │ ├── ByteAdd2.java │ │ │ ├── CastingDemo.java │ │ │ ├── CatchAndRetryCalc.java │ │ │ ├── ChangeArrayLength.java │ │ │ ├── ChangeClassPath.java │ │ │ ├── CharIsInt.java │ │ │ ├── ClassCast.java │ │ │ ├── CommentBug.java │ │ │ ├── CompileError.java │ │ │ ├── ConsRecurs.java │ │ │ ├── ConstrException.java │ │ │ ├── Constructors.java │ │ │ ├── DoWhile.java │ │ │ ├── DoubleOverflow.java │ │ │ ├── EnforceRunWithEnableAssert.java │ │ │ ├── EnumToString.java │ │ │ ├── EuroLanguage.java │ │ │ ├── ExceptionDemo.java │ │ │ ├── ExceptionDemo2.java │ │ │ ├── ExceptionTranslation.java │ │ │ ├── FinalArgs.java │ │ │ ├── FinalArraysNotReallyFinal.java │ │ │ ├── Finally.java │ │ │ ├── ForLoop.java │ │ │ ├── FtoD.java │ │ │ ├── GenericMethodReturn.java │ │ │ ├── GetSerialVersionUID.java │ │ │ ├── HappensBefore.java │ │ │ ├── HexNeg.java │ │ │ ├── IfSpeed.java │ │ │ ├── ImportConflict.java │ │ │ ├── InheritAnnotations.java │ │ │ ├── InheritConstructor.java │ │ │ ├── InheritSatisfiesImplements.java │ │ │ ├── InheritStatics.java │ │ │ ├── InitializersDemo.java │ │ │ ├── InnerChild.java │ │ │ ├── InnerClass1.java │ │ │ ├── InnerClass2.java │ │ │ ├── InnerClass3.java │ │ │ ├── InnerMethods.java │ │ │ ├── InnerWithConstrArgs.java │ │ │ ├── InstanceofNull.java │ │ │ ├── IntFloatLossy.java │ │ │ ├── IntegerOverflowAddition.java │ │ │ ├── IntegerOverflowIncrement.java │ │ │ ├── InterfaceCanContainMethods.java │ │ │ ├── InterfaceConflicts.java │ │ │ ├── InterfaceInherit.java │ │ │ ├── InterfaceNoConstructor.java │ │ │ ├── InterfaceWithoutAllThrows.java │ │ │ ├── InvokeMain.java │ │ │ ├── Jensen.java │ │ │ ├── LengthOf.java │ │ │ ├── Locals.java │ │ │ ├── LoopLocal.java │ │ │ ├── Loops.java │ │ │ ├── MainNotSpecial.java │ │ │ ├── MethodAndField.java │ │ │ ├── MixinsDemo.java │ │ │ ├── ModuleKeywordsInClass.java │ │ │ ├── MultInterfaces.java │ │ │ ├── MultiCatch.java │ │ │ ├── MultiSuperInterfaces.java │ │ │ ├── MyToyAnnotation.java │ │ │ ├── NestMates.java │ │ │ ├── NestMatesReflection.java │ │ │ ├── NestedClassStatic.java │ │ │ ├── NestedClasses.java │ │ │ ├── NeverBuryExceptions.java │ │ │ ├── NoLocalStatics.java │ │ │ ├── NullStaticMethod.java │ │ │ ├── NullStaticMethod2.java │ │ │ ├── NumericLiterals7.java │ │ │ ├── OverLoad.java │ │ │ ├── OverLoadReturn.java │ │ │ ├── OverRide.java │ │ │ ├── Overall.java │ │ │ ├── OverloadIntVsPrimitive.java │ │ │ ├── OverrideField.java │ │ │ ├── OverrideMethod.java │ │ │ ├── PartialImplements.java │ │ │ ├── PatternMatchingString.java │ │ │ ├── PatternRecordDestruction.java │ │ │ ├── PrePostIncrDecr.java │ │ │ ├── PrivProt.java │ │ │ ├── Protected.java │ │ │ ├── Protected2.java │ │ │ ├── ProtectedClass.java │ │ │ ├── RefValues.java │ │ │ ├── ReinventedStringFunctions.java │ │ │ ├── ReturnInFinallyIsBad.java │ │ │ ├── ReturnMultiInObject.java │ │ │ ├── ReturnType.java │ │ │ ├── Shifting.java │ │ │ ├── ShortsVsInts.java │ │ │ ├── ShowInitializers.java │ │ │ ├── ShowToString.java │ │ │ ├── SpanishChars.java │ │ │ ├── StackTrace.java │ │ │ ├── StaticIniDemo.java │ │ │ ├── StaticLoadProperties.java │ │ │ ├── Switch.java │ │ │ ├── SwitchByte.java │ │ │ ├── SwitchExpression.java │ │ │ ├── SwitchOnString.java │ │ │ ├── SwitchPatternDemo.javax │ │ │ ├── SwitchYieldsValue.java │ │ │ ├── ThisIsFunctional.java │ │ │ ├── ThrowFromFieldInitializer.java │ │ │ ├── ThrowsUnchecked.java │ │ │ ├── Timer.java │ │ │ ├── ToString.java │ │ │ ├── TryStealingInnerClass.java │ │ │ ├── TryWithResource.java │ │ │ ├── TwoStrings.java │ │ │ ├── TypesafeEnum.java │ │ │ ├── UsePackage.java │ │ │ ├── UseThis.java │ │ │ ├── VarArgsDemo.java │ │ │ ├── VarDecls.java │ │ │ ├── Visibility.java │ │ │ ├── WeirdMethod.java │ │ │ ├── descr.txt │ │ │ ├── loops │ │ │ │ ├── LoopFor.java │ │ │ │ ├── LoopWhile.java │ │ │ │ ├── index.html │ │ │ │ └── loopByteCode.sh │ │ │ └── nestmatesdemo │ │ ├── linuxj │ │ │ ├── ButtonDemo1.java │ │ │ ├── ButtonDemo2.java │ │ │ ├── ButtonDemo3.java │ │ │ ├── FileTree.java │ │ │ └── index.html │ │ ├── logging │ │ │ ├── JulLambdaDemo.java │ │ │ ├── JulLogDemo.java │ │ │ ├── JulLogDemo2.java │ │ │ ├── JulLogFormatter.java │ │ │ ├── JulLogInitializer.java │ │ │ ├── Log4JDemo.java │ │ │ ├── Log4JDemo2.java │ │ │ ├── Log4JLambda.java │ │ │ ├── NetLog.java │ │ │ ├── NetLogServer.java │ │ │ ├── NetLogSimple.java │ │ │ ├── Slf4jDemo.java │ │ │ ├── Slf4jDemo2.java │ │ │ ├── juldemos │ │ │ ├── log4j2-network.properties │ │ │ ├── log4j2.properties │ │ │ ├── log4j2demos │ │ │ └── netdemos │ │ ├── misc │ │ │ └── MyDate.java │ │ ├── module-info.txt │ │ ├── netwatch │ │ │ ├── LEGAL.NOTICE │ │ │ ├── NetFrame.java │ │ │ ├── NetPanel.java │ │ │ ├── NetWatch.java │ │ │ ├── NetWatch.properties │ │ │ ├── ProtoDialog.java │ │ │ ├── RMIPanel.java │ │ │ ├── TODO.txt │ │ │ └── run │ │ ├── netweb │ │ │ ├── .cvsignore │ │ │ ├── Browser0.java │ │ │ ├── Browser1.java │ │ │ ├── Element.java │ │ │ ├── FileToURL.java │ │ │ ├── GetResource.java │ │ │ ├── GetURLs.java │ │ │ ├── HttpClientDemo.java │ │ │ ├── HttpDemo.java │ │ │ ├── ImageIndex.java │ │ │ ├── ImageIndex.properties │ │ │ ├── LinkChecker.java │ │ │ ├── MkIndex.java │ │ │ ├── PostQuery.java │ │ │ ├── ReadTag.java │ │ │ ├── ReadTag.txt │ │ │ ├── RestClientURLDemo.java │ │ │ ├── SimpleServerDemo.java │ │ │ ├── SimpleServerDemo2.java │ │ │ ├── TestDirForMkIndex │ │ │ │ ├── Foo.java │ │ │ │ └── descr.txt │ │ │ ├── TextBrowser.java │ │ │ ├── TextBrowser.txt │ │ │ ├── URIDemo.java │ │ │ ├── URLConnectionDemo.java │ │ │ ├── URLDemo.java │ │ │ ├── Weather.java │ │ │ ├── apisearch.html │ │ │ ├── browser1demo.html │ │ │ ├── captions.txt │ │ │ └── descr.txt │ │ ├── network │ │ │ ├── Connect.c │ │ │ ├── ConnectFriendly.java │ │ │ ├── ConnectSimple.java │ │ │ ├── DaytimeObject.java │ │ │ ├── DaytimeObjectServer.java │ │ │ ├── DaytimeServer.java │ │ │ ├── DaytimeText.java │ │ │ ├── DaytimeUDP.java │ │ │ ├── EchoClient.java │ │ │ ├── EchoClientOneLine.java │ │ │ ├── EchoGui.java │ │ │ ├── EchoServer.java │ │ │ ├── EchoServerThreaded.java │ │ │ ├── ErrorReporting.java │ │ │ ├── Finger.java │ │ │ ├── Inet6Demo.java │ │ │ ├── InetAddrDemo.java │ │ │ ├── JSSEWebServer0.java │ │ │ ├── LPDTalk.java │ │ │ ├── Listen.java │ │ │ ├── ListenInside.java │ │ │ ├── NetworkInterfaceDemo.java │ │ │ ├── PortScan.java │ │ │ ├── Probe.java │ │ │ ├── README.adoc │ │ │ ├── RemCat.c │ │ │ ├── RemCat.java │ │ │ ├── Telnet.java │ │ │ ├── ThreadedWebServer.java │ │ │ ├── TimeClient.java │ │ │ ├── TimeWebServer.java │ │ │ ├── UnixDomainSocketClient.java │ │ │ ├── UnixDomainSocketServer.java │ │ │ ├── VirtualThreadedWebServer.java │ │ │ ├── WebRedirector.java │ │ │ ├── WebServer0.java │ │ │ ├── descr.txt │ │ │ ├── myKeystore.jks │ │ │ ├── runJsseServer.sh │ │ │ ├── runsimpleserver.sh │ │ │ └── webserver │ │ │ │ ├── DarwinWebServer.pif │ │ │ │ ├── Handler.java │ │ │ │ ├── Httpd.java │ │ │ │ ├── HttpdConcurrent.java │ │ │ │ ├── TODO.txt │ │ │ │ ├── WEB-INF │ │ │ │ └── web.xml │ │ │ │ ├── errors.properties │ │ │ │ ├── errors_es.properties │ │ │ │ ├── httpd.properties │ │ │ │ ├── images │ │ │ │ └── file.jpg │ │ │ │ ├── index.html │ │ │ │ ├── legal-notice.txt │ │ │ │ ├── mime.properties │ │ │ │ ├── run.bat │ │ │ │ ├── run.sh │ │ │ │ └── webcrawler.gif │ │ ├── nio │ │ │ ├── FileWatchServiceDemo.java │ │ │ ├── MemoryMapFile.java │ │ │ └── ServerSocketDemo.java │ │ ├── numbers │ │ │ ├── BigDecimalLimitation.java │ │ │ ├── BigNumCalc.java │ │ │ ├── BigNums.java │ │ │ ├── BoxedValueEquality.java │ │ │ ├── CastNeeded.java │ │ │ ├── CompactFormatDemo.java │ │ │ ├── Complex.java │ │ │ ├── ComplexDemoACM.java │ │ │ ├── ComplexDemoIan.java │ │ │ ├── Fibonacci.java │ │ │ ├── FloatCmp.java │ │ │ ├── FloatDoubleTime.java │ │ │ ├── FormatPlurals.java │ │ │ ├── FormatPluralsChoice.java │ │ │ ├── FractMult.java │ │ │ ├── GetNumber.java │ │ │ ├── Heron.java │ │ │ ├── InfNaN.java │ │ │ ├── IntFract.java │ │ │ ├── IntObject.java │ │ │ ├── IntOverflow.java │ │ │ ├── IntegerBinOctHexEtc.java │ │ │ ├── LogBase.java │ │ │ ├── LogBaseUse.java │ │ │ ├── Logarithm.java │ │ │ ├── MarkPercentages.java │ │ │ ├── Math1.java │ │ │ ├── Matrix.java │ │ │ ├── MatrixUse.java │ │ │ ├── NumFormat.java │ │ │ ├── NumFormat2.java │ │ │ ├── NumFormatDemo.java │ │ │ ├── NumFormatParse.java │ │ │ ├── NumSeries.java │ │ │ ├── NumberToWordsConverter.java │ │ │ ├── OverflowPrevention.java │ │ │ ├── Palindrome.java │ │ │ ├── PalindromeFirst.java │ │ │ ├── PalindromeTests │ │ │ ├── PalindromeViaBigInteger.java │ │ │ ├── PalindromeViaStringBuilder.java │ │ │ ├── Primes.java │ │ │ ├── Random1.java │ │ │ ├── Random2.java │ │ │ ├── Random3.java │ │ │ ├── Random4.java │ │ │ ├── Random5.java │ │ │ ├── RandomInt.java │ │ │ ├── RangedInt.java │ │ │ ├── RealValues.java │ │ │ ├── RomanYear.java │ │ │ ├── Round.java │ │ │ ├── Rounding.java │ │ │ ├── ScaledNumberFormatSimple.java │ │ │ ├── SmallIntMult.java │ │ │ ├── StrictFP.java │ │ │ ├── StringToDouble.java │ │ │ ├── TempConverter.java │ │ │ ├── TempConverter2.java │ │ │ ├── Trig.java │ │ │ ├── descr.txt │ │ │ └── palTimes │ │ ├── oo │ │ │ ├── AllClasses.java │ │ │ ├── BuilderAlternate.java │ │ │ ├── ChessMoveException.java │ │ │ ├── Clone0.java │ │ │ ├── Clone1.java │ │ │ ├── CloneSub.java │ │ │ ├── ColorDemo.java │ │ │ ├── CopyConstructorDemo.java │ │ │ ├── DataOrientedDemo.java │ │ │ ├── EnumSingleton.java │ │ │ ├── EqualsDemo.java │ │ │ ├── ObjectsHash.java │ │ │ ├── OptionalDemo.java │ │ │ ├── OptionalMethods.java │ │ │ ├── PrintHashCodes.java │ │ │ ├── SerializableUser.java │ │ │ ├── ShutdownDemo.java │ │ │ ├── Singleton.java │ │ │ ├── SingletonCheat1.java │ │ │ ├── SingletonCheat2.java │ │ │ ├── SingletonDemo.java │ │ │ ├── SomeClass.java │ │ │ ├── StatementsBeforeSuper.java │ │ │ ├── StringParse.java │ │ │ ├── ToStringWith.java │ │ │ ├── ToStringWithout.java │ │ │ ├── inherit │ │ │ │ ├── Customer.java │ │ │ │ ├── Employee.java │ │ │ │ └── Person.java │ │ │ ├── interfaces │ │ │ │ ├── Asset.java │ │ │ │ ├── BuildingAsset.java │ │ │ │ ├── BuildingLight.java │ │ │ │ ├── BuildingManagement.java │ │ │ │ ├── ComputerAsset.java │ │ │ │ ├── ComputerCPU.java │ │ │ │ ├── ComputerMonitor.java │ │ │ │ ├── EmergencyLight.java │ │ │ │ ├── PowerSwitchable.java │ │ │ │ └── RoomLights.java │ │ │ ├── metrolib │ │ │ │ ├── BrokenCopyOfRooms.java │ │ │ │ ├── Command.java │ │ │ │ ├── MetroLib.java │ │ │ │ ├── Room.java │ │ │ │ ├── Rooms.java │ │ │ │ ├── index.html │ │ │ │ └── play │ │ │ └── shapes │ │ │ │ ├── Circle.java │ │ │ │ ├── Rectangle.java │ │ │ │ ├── Shape.java │ │ │ │ ├── ShapeDriver.java │ │ │ │ └── Triangle.java │ │ ├── otherlang │ │ │ ├── ExecDemoBrowser.java │ │ │ ├── ExecDemoFiles.java │ │ │ ├── ExecDemoLs.java │ │ │ ├── ExecDemoPartial.java │ │ │ ├── ExecDemoSimple.java │ │ │ ├── ExecDemoWait.java │ │ │ ├── ExecShellArgs.java │ │ │ ├── ProcessBuilderDemo.java │ │ │ ├── PythonFromJava.java │ │ │ ├── RenjinScripting.java │ │ │ ├── ScriptEnginesDemo.java │ │ │ ├── ScriptEnginesList.java │ │ │ ├── ScriptWithCalcDemo.java │ │ │ ├── ScriptingGUI.java │ │ │ ├── StringDistance.java │ │ │ ├── StringDistance.pl │ │ │ ├── Swinging.pl │ │ │ ├── calcscriptengine │ │ │ │ ├── CalcScriptEngine.java │ │ │ │ ├── CalcScriptEngineFactory.java │ │ │ │ └── README.adoc │ │ │ └── descr.txt │ │ ├── packaging │ │ │ ├── GetResourceDemo.java │ │ │ ├── HelloWorldForPackaging.java │ │ │ ├── manifest.stub │ │ │ └── widgets.properties │ │ ├── patterns │ │ │ └── README.adoc │ │ ├── performance │ │ │ ├── Array.java │ │ │ ├── ArrayLst.java │ │ │ ├── ArrayVec.java │ │ │ ├── GUIPerf.java │ │ │ ├── InlineA.java │ │ │ ├── InlineB.java │ │ │ ├── InlineC.java │ │ │ ├── PerfTimeRegex.java │ │ │ ├── PerfTimeString.java │ │ │ ├── README │ │ │ ├── StringPrintA.java │ │ │ ├── StringPrintAA.java │ │ │ ├── StringPrintB.java │ │ │ ├── Time.java │ │ │ ├── TimeNoArgs.java │ │ │ ├── TimeSort.java │ │ │ ├── TimeTimeable.java │ │ │ ├── Timeable.java │ │ │ ├── descr.txt │ │ │ ├── loop.c │ │ │ ├── stringprinttimer.sh │ │ │ └── timeStrings.sh │ │ ├── pool │ │ │ ├── Pool.java │ │ │ ├── PoolDemo.java │ │ │ └── PoolFactory.java │ │ ├── public_html │ │ │ ├── index.html │ │ │ ├── runner.ai │ │ │ └── runner.gif │ │ ├── record │ │ │ ├── PersonRecordDemo.java │ │ │ ├── RecordCanonicalConstructor.java │ │ │ ├── RecordWith.java │ │ │ ├── RecordWithBuilder.java │ │ │ ├── RecordsCanImplement.java │ │ │ └── RecordsCanOverride.java │ │ ├── reflection │ │ │ ├── APIFormatter.java │ │ │ ├── ClassForName.java │ │ │ ├── ClassKeyword.java │ │ │ ├── ClassLoaderDemo0.java │ │ │ ├── ClassLoaderDemo1.java │ │ │ ├── ClassLoaderMultiple.java │ │ │ ├── ClassesInPackage.java │ │ │ ├── CrossRef │ │ │ ├── CrossRef.java │ │ │ ├── CrossRefXML.java │ │ │ ├── DefaultConstructorDemo.java │ │ │ ├── DefeatFinalVar.java │ │ │ ├── DefeatPrivacy.java │ │ │ ├── FindField.java │ │ │ ├── GetAndInvokeMethod.java │ │ │ ├── GetPrivateClass.java │ │ │ ├── GetPrivateClassPart2.java │ │ │ ├── InstanceRunner.java │ │ │ ├── JarPackagingClassLoader.java │ │ │ ├── JavaBeanAllGetters.java │ │ │ ├── JavaCompilerDemo.java │ │ │ ├── ListAnnotations.java │ │ │ ├── ListMethods.java │ │ │ ├── MethodHandleAbcs.java │ │ │ ├── MethodHandleDemo.java │ │ │ ├── MultiDemo.java │ │ │ ├── MyJavaP.java │ │ │ ├── Packages.java │ │ │ ├── PluginsViaAnnotations.java │ │ │ ├── PrimsDotClass.java │ │ │ ├── Reflect1.java │ │ │ ├── Simple.java │ │ │ ├── cooklet │ │ │ │ ├── Cookies.java │ │ │ │ ├── Cooklet.java │ │ │ │ └── DemoCooklet.java │ │ │ ├── crossref.awk │ │ │ ├── descr.txt │ │ │ ├── dynamicproxy │ │ │ │ ├── DynamicProxyDemo.java │ │ │ │ ├── DynamicProxyFactoryDemo.java │ │ │ │ ├── ManualProxy.java │ │ │ │ ├── MyInvocationHandler.java │ │ │ │ ├── QuoteServer.java │ │ │ │ ├── QuoteServerImpl.java │ │ │ │ └── README.adoc │ │ │ └── showlet │ │ │ │ ├── IanShow.java │ │ │ │ ├── MyBigApp.java │ │ │ │ ├── MyBigApp2.java │ │ │ │ ├── Showlet.java │ │ │ │ └── ShowletProxy.java │ │ ├── regex │ │ │ ├── APIJava.txt │ │ │ ├── BookRank.java │ │ │ ├── CanonEqDemo.java │ │ │ ├── CaseMatch.java │ │ │ ├── CommentedRegEx.java │ │ │ ├── EmailValidator.java │ │ │ ├── GetParen0.java │ │ │ ├── GetParen1.java │ │ │ ├── Grep0.java │ │ │ ├── Grep1.java │ │ │ ├── Grep2.java │ │ │ ├── GrepNIO.java │ │ │ ├── GrepSun.java │ │ │ ├── LogParseInfo.java │ │ │ ├── LogRegEx.java │ │ │ ├── LogStrTok.java │ │ │ ├── LsDashLParse.java │ │ │ ├── NLMatch.java │ │ │ ├── PatternConvenience.java │ │ │ ├── PhoneNumberValidator.java │ │ │ ├── README.adoc │ │ │ ├── RESimple.java │ │ │ ├── REString.java │ │ │ ├── RE_QnotU_Args.java │ │ │ ├── REmatch.java │ │ │ ├── REmatchTwoFields.java │ │ │ ├── REsubstr.java │ │ │ ├── ReaderIter.java │ │ │ ├── RegexUnicode.java │ │ │ ├── ReplaceDemo.java │ │ │ ├── ReplaceDemo2.java │ │ │ ├── ReplaceMulti.java │ │ │ ├── Split.java │ │ │ ├── StringConvenience.java │ │ │ └── ls-lTests.txt │ │ ├── rmi │ │ │ └── README-moved.txt │ │ ├── sched │ │ │ ├── Appt.java │ │ │ ├── Cal.java │ │ │ ├── CalDay.java │ │ │ ├── CalEventMgr.java │ │ │ ├── CalMonth.java │ │ │ ├── CalYear.java │ │ │ ├── DateSelectedEvent.java │ │ │ ├── DateSelectedListener.java │ │ │ ├── Repeat.java │ │ │ ├── Sched.java │ │ │ ├── ToDo.java │ │ │ └── appointments.txt │ │ ├── sealedclasses │ │ │ ├── A.java │ │ │ ├── B.java │ │ │ ├── B2.java │ │ │ ├── C.java │ │ │ ├── SealedClassDemo.java │ │ │ ├── sealed_interfaces.java │ │ │ └── simple_example.java │ │ ├── secure │ │ │ ├── BobbyTables.java │ │ │ └── README.txt │ │ ├── signals │ │ │ ├── DemoMain.java │ │ │ ├── LibSignal.html │ │ │ ├── LibSignal.java │ │ │ ├── Makefile │ │ │ ├── README │ │ │ ├── com_darwinsys_signal_LibSignal.h │ │ │ ├── descr.txt │ │ │ ├── libsignal.c │ │ │ └── test.dat │ │ ├── sql │ │ │ ├── README.txt │ │ │ └── setup.sql │ │ ├── starting │ │ │ ├── Buggy.java │ │ │ ├── CheckFor1_1.java │ │ │ ├── CheckForClass.java │ │ │ ├── CheckForSwing.java │ │ │ ├── Deprec.java │ │ │ ├── EchoArgv.java │ │ │ ├── Fetch.java │ │ │ ├── FetchDebug.java │ │ │ ├── FinalMethods.java │ │ │ ├── GetJavaVersion.java │ │ │ ├── HelloClasslessWithMembers.java │ │ │ ├── HelloWorld.java │ │ │ ├── HelloWorld21.java │ │ │ ├── HelloWorld23.java │ │ │ ├── HelloWorldMocha.java.txt │ │ │ ├── IfDef.java │ │ │ ├── One.java │ │ │ ├── Two.java │ │ │ ├── circular │ │ │ │ ├── A.java │ │ │ │ ├── B.java │ │ │ │ ├── X.java │ │ │ │ ├── Y.java │ │ │ │ └── Z.java │ │ │ └── descr.txt │ │ ├── strings │ │ │ ├── Case.java │ │ │ ├── CheckSum.c │ │ │ ├── CheckSum.java │ │ │ ├── CourseNumExtractor.java │ │ │ ├── CreditCardDisguise.java │ │ │ ├── CreditCardValidate.java │ │ │ ├── DeTab.java │ │ │ ├── EnTab.java │ │ │ ├── Equality.java │ │ │ ├── Fmt.java │ │ │ ├── Fmt2.java │ │ │ ├── Fmt2Test.txt │ │ │ ├── FmtTest.txt │ │ │ ├── FmtTest0.txt │ │ │ ├── ForEachChar.java │ │ │ ├── Indent.java │ │ │ ├── NullChar.java │ │ │ ├── Replace.java │ │ │ ├── Soundex.java │ │ │ ├── SoundexSimple.java │ │ │ ├── StrCharAt.java │ │ │ ├── StrTokDemo.java │ │ │ ├── StrTokDemo2.java │ │ │ ├── StrTokDemo3.java │ │ │ ├── StrTokDemo4.java │ │ │ ├── StrTokDemo4b.java │ │ │ ├── StrTokDemo4c.java │ │ │ ├── StrTokInts.java │ │ │ ├── StrUtil.java │ │ │ ├── StreamTokenize.java │ │ │ ├── StringAlign.java │ │ │ ├── StringAlignDemo.java │ │ │ ├── StringAlignSimple.java │ │ │ ├── StringBufferDemo.java │ │ │ ├── StringBuilderCommaList.java │ │ │ ├── StringBuilderDemo.java │ │ │ ├── StringEscapes.java │ │ │ ├── StringFormatted.java │ │ │ ├── StringRevChar.java │ │ │ ├── StringReverse.java │ │ │ ├── StringSplitInts.java │ │ │ ├── StringTemplateFmtProcessor.java │ │ │ ├── StringTextBlock.java │ │ │ ├── SubStringDemo.java │ │ │ ├── Tabs.java │ │ │ ├── TextBlockDemo.java │ │ │ ├── Undent.java │ │ │ ├── UnicodeCast.java │ │ │ ├── UnicodeChars.java │ │ │ ├── UnicodeUpsideDown.java │ │ │ ├── WolfInStringsClothing.java │ │ │ ├── WolfInStringsClothing2.java │ │ │ ├── csvgetline.c++ │ │ │ ├── descr.txt │ │ │ ├── spaces.txt │ │ │ └── strutils.c │ │ ├── structure │ │ │ ├── Array0.java │ │ │ ├── Array1.java │ │ │ ├── Array2.java │ │ │ ├── Array2DNonRectangular.java │ │ │ ├── ArrayDemo.java │ │ │ ├── ArrayHunt.java │ │ │ ├── ArrayIteratorDemo.java │ │ │ ├── ArrayListDemo.java │ │ │ ├── ArrayListGenericDemo.java │ │ │ ├── ArrayToVector.java │ │ │ ├── ArrayTwoDObjects.java │ │ │ ├── ArraysAsListDemo.java │ │ │ ├── ArraysEqualsCompareToString.java │ │ │ ├── ArraysToString.java │ │ │ ├── AutoboxDemo.java │ │ │ ├── BeanUtilsDemo.java │ │ │ ├── BitSetDemo.java │ │ │ ├── BubbleSort.java │ │ │ ├── CMEDemo.java │ │ │ ├── CallTrack.java │ │ │ ├── Employee.java │ │ │ ├── EnumDemo.java │ │ │ ├── EnumErrorIn16.java │ │ │ ├── EnumList.java │ │ │ ├── EnumMapDemo.java │ │ │ ├── EnumWithStringFieldDemo.java │ │ │ ├── ExecDemoSort.java │ │ │ ├── ForeachDemo.java │ │ │ ├── HashDemoGeneric.java │ │ │ ├── HashMapDemo.java │ │ │ ├── HashMapWithRemoves.java │ │ │ ├── HashableCollectionWithoutEqualsHashCode.java │ │ │ ├── HashtableDemo.java │ │ │ ├── InitializeList.java │ │ │ ├── InterfaceAdditions.java │ │ │ ├── IterableDemo.java │ │ │ ├── IterableForEach.java │ │ │ ├── IteratorDemo.java │ │ │ ├── LinkList.java │ │ │ ├── LinkedListDemo.java │ │ │ ├── ListAndBoxGenerics.java │ │ │ ├── ListFormat.java │ │ │ ├── ListInterchange.java │ │ │ ├── ListsOldAndNew.java │ │ │ ├── Manager.java │ │ │ ├── ManagerInArray.java │ │ │ ├── MapEntrySetDemo.java │ │ │ ├── MapStringIntNullKey.java │ │ │ ├── Media.java │ │ │ ├── MediaDemo.java │ │ │ ├── MediaFancy.java │ │ │ ├── MediaInvoicer.java │ │ │ ├── MethodRefs.java │ │ │ ├── MyList.java │ │ │ ├── MyListDemo.java │ │ │ ├── MyListImpl.java │ │ │ ├── MyMap.java │ │ │ ├── MyObservable.java │ │ │ ├── MyStack.java │ │ │ ├── MyStackDemo.java │ │ │ ├── PrefsDemo.java │ │ │ ├── Product.java │ │ │ ├── PropsCompanies.java │ │ │ ├── PropsCust.java │ │ │ ├── PropsCust.properties │ │ │ ├── PropsDemo.dat │ │ │ ├── PropsDemo.java │ │ │ ├── PropsToResources.java │ │ │ ├── Queue.java │ │ │ ├── RandomProps.java │ │ │ ├── RecordingCategory.java │ │ │ ├── RecordingCategoryBetter.java │ │ │ ├── SetArithmetic.java │ │ │ ├── SetDemo.java │ │ │ ├── SimpleFixedLengthQueue.java │ │ │ ├── SimpleStack.java │ │ │ ├── SortArray.java │ │ │ ├── SortBooleans.java │ │ │ ├── SortCollection.java │ │ │ ├── SortMultipleFieldsExternal.java │ │ │ ├── SortMultipleFieldsInternal.java │ │ │ ├── SortableData.java │ │ │ ├── StackStillWorks.java │ │ │ ├── StrSort.java │ │ │ ├── StrSortCase.java │ │ │ ├── StringSort.java │ │ │ ├── StructureDemo.java │ │ │ ├── SubstringComparator.java │ │ │ ├── SubstringComparatorDemo.java │ │ │ ├── ToArray.java │ │ │ ├── ToyStack.java │ │ │ ├── ToyStack2.java │ │ │ ├── TreeSetDemo.java │ │ │ ├── TwoDArrays.java │ │ │ ├── VectorIterator.java │ │ │ ├── VectorMisused.java │ │ │ ├── color.c │ │ │ ├── descr.txt │ │ │ ├── interfaceprivate.java │ │ │ ├── javap.txt │ │ │ ├── mediainvoices.txt │ │ │ └── sortdemo.txt │ │ ├── tar │ │ │ ├── TODO.txt │ │ │ ├── TarEntry.java │ │ │ ├── TarException.java │ │ │ ├── TarFile.java │ │ │ ├── TarList.java │ │ │ ├── demo.tar │ │ │ └── descr.txt │ │ ├── textproc │ │ │ ├── Diff.java │ │ │ ├── PSFormatter.java │ │ │ ├── PerfectPangram.java │ │ │ ├── Prep.java │ │ │ ├── descr.txt │ │ │ └── diff.c │ │ ├── threads │ │ │ ├── Animator.java │ │ │ ├── ArrayAdding.java │ │ │ ├── AutoSave.java │ │ │ ├── BallotBox.java │ │ │ ├── BallotPosition.java │ │ │ ├── Bounce.java │ │ │ ├── BreakEnd.java │ │ │ ├── CatchMulti.java │ │ │ ├── CompletableFutureDemo.java │ │ │ ├── CompletableFutureSimple.java │ │ │ ├── ExecutorDemo.java │ │ │ ├── ForkJoinPoolDemo.java │ │ │ ├── FutureFromThreadpool.java │ │ │ ├── IOTimer.java │ │ │ ├── InstantDeadlock.java │ │ │ ├── Intr.java │ │ │ ├── IntrSelf.java │ │ │ ├── IntrWhoCatches.java │ │ │ ├── Join.java │ │ │ ├── LockFragment.java │ │ │ ├── Mover.gif │ │ │ ├── Mover.java │ │ │ ├── Mover2.java │ │ │ ├── Mover3.java │ │ │ ├── NotifyError.java │ │ │ ├── ProdConsQueues.java │ │ │ ├── ProdConsSemaphore.java │ │ │ ├── ProdConsThreadAPI.java │ │ │ ├── ProdConsVector.java │ │ │ ├── RaceDemo.java │ │ │ ├── ReadersWriterDemo.java │ │ │ ├── Readme.ForkJoin.txt │ │ │ ├── RecursiveActionDemo.java │ │ │ ├── RecursiveTaskDemo.java │ │ │ ├── Reentrant.java │ │ │ ├── ReminderService.java │ │ │ ├── ReminderService.txt │ │ │ ├── RunnableLambda.java │ │ │ ├── ScopedValueDemo1.java │ │ │ ├── ShutDownHook.java │ │ │ ├── Sprite.java │ │ │ ├── StopBoolean.java │ │ │ ├── StopClose.java │ │ │ ├── StopExec.java │ │ │ ├── Stopwatch.java │ │ │ ├── StructuredTaskScopedemo.java │ │ │ ├── SyncNeeded.java │ │ │ ├── ThreadDeathCatch.java │ │ │ ├── ThreadGroupDemo.java │ │ │ ├── ThreadLocalDemo.java │ │ │ ├── ThreadLocalDemo2.java │ │ │ ├── ThreadLocalDemo3.java │ │ │ ├── ThreadName.java │ │ │ ├── ThreadPoolDemo.java │ │ │ ├── ThreadSync.java │ │ │ ├── ThreadsDemo1.java │ │ │ ├── ThreadsDemo2.java │ │ │ ├── ThreadsDemo3.java │ │ │ ├── ThreadsDemo4.java │ │ │ ├── ThreadsOne.java │ │ │ ├── UpdateSlowGUI.java │ │ │ ├── VirtualThreadsDemo.java │ │ │ ├── breakend.sh │ │ │ ├── buzzin │ │ │ │ ├── BuzzIn.html │ │ │ │ ├── BuzzInServlet.java │ │ │ │ ├── HostFun.html │ │ │ │ ├── README.buz │ │ │ │ ├── WEB-INF │ │ │ │ │ ├── hosts.xml │ │ │ │ │ └── web.xml │ │ │ │ ├── hosts │ │ │ │ │ └── index.jsp │ │ │ │ ├── index.html │ │ │ │ └── tomcat-context.txt │ │ │ └── descr.txt │ │ ├── tmtimer │ │ │ ├── TMTimer.java │ │ │ ├── TMTimer.properties │ │ │ └── TMTimerUtil.java │ │ ├── unfinished │ │ │ ├── GraphicsBounds.java │ │ │ ├── JapanWriter.java │ │ │ ├── PasswdFile.java │ │ │ ├── Proxy.java │ │ │ ├── ThreadGroupDemo.java │ │ │ ├── WordNumberFormat.java │ │ │ └── descr.txt │ │ ├── webproxy │ │ │ ├── Handler.java │ │ │ ├── WebProxy.java │ │ │ ├── errors.properties │ │ │ ├── httpd.properties │ │ │ ├── legal-notice.txt │ │ │ └── run.sh │ │ └── xcolor │ │ │ ├── XColor.html │ │ │ ├── XColor.java │ │ │ ├── XColorDemo.java │ │ │ ├── descr.txt │ │ │ ├── index.html │ │ │ ├── rgb.txt │ │ │ └── screendump.gif │ └── resources │ │ ├── EnumIntl.properties │ │ ├── EnumIntl_es.properties │ │ ├── META-INF │ │ ├── beans.xml │ │ └── services │ │ │ └── javax.script.ScriptEngineFactory │ │ ├── Widgets.properties │ │ ├── Widgets_es.properties │ │ ├── Widgets_sv.properties │ │ ├── audio │ │ └── test.wav │ │ ├── demo.txt │ │ ├── duke.gif │ │ ├── getresourcedemo1.txt │ │ ├── help │ │ └── index.html │ │ ├── log4j.properties │ │ ├── logging.properties │ │ ├── messages.properties │ │ ├── messages_es.properties │ │ ├── new.gif │ │ ├── pythonfromjava.py │ │ └── randomnesshistograms.r │ └── test │ ├── java │ ├── database │ │ ├── ResultsDecoratorSQLTest.java │ │ └── rowsetdata.xml │ ├── datetime │ │ └── EasterTest.java │ ├── dbm │ │ └── TestDBM.java │ ├── dir_file │ │ └── FindFilterTest.java │ ├── i18n │ │ ├── EnumIntlTest.java │ │ └── EnumIntlTest_es.java │ ├── io │ │ ├── EscapeContLineReaderTest.java │ │ ├── FileCanTestDirWritable.java │ │ ├── FortranLineReaderTest.java │ │ ├── IndentContLineReaderTest.java │ │ ├── SimpleCalcTest.java │ │ └── TeePrintStreamTest.java │ ├── jdbc │ │ └── MigrationTest.java │ ├── lang │ │ └── IfSpeedTest.java │ ├── netweb │ │ ├── GetUrlTest.java │ │ └── ReadTagTest.java │ ├── numbers │ │ ├── BigNumCalcTest.java │ │ ├── ComplexTest.java │ │ ├── FibonacciTest.java │ │ ├── GetNumberTest.java │ │ ├── NumberToWordsConverterTest.java │ │ ├── RoundTest.java │ │ └── TempConverterTest.java │ ├── oo │ │ ├── Clone1Test.java │ │ └── EqualsDemoTest.java │ ├── otherlang │ │ └── CalcEngineTest.java │ ├── performance │ │ └── PerformanceTester.java │ ├── reflection │ │ ├── APIFormatterTest.java │ │ └── PluginsViaAnnotationsTest.java │ ├── regex │ │ ├── EmailValidatorTest.java │ │ ├── LogRegExTest.java │ │ ├── PhoneNumberValidatorTest.java │ │ └── RETest.java │ ├── sched │ │ └── ApptTest.java │ ├── strings │ │ ├── CheckSumTest.java │ │ ├── CreditCardDisguiseTest.java │ │ ├── CreditCardValidateCleanTest.java │ │ ├── CreditCardValidateIsValidTest.java │ │ ├── DeTabTest.java │ │ ├── EnTabTest.java │ │ ├── FmtTest.java │ │ ├── SoundexTest.java │ │ ├── StrUtilTest.java │ │ ├── StringAlignParameterizedTest.java │ │ ├── StringAlignTest.java │ │ ├── TabsTest.java │ │ └── UndentTest.java │ ├── structure │ │ ├── CallTrackTestGUI.java │ │ ├── LinkListTest.java │ │ ├── ListFormatTest.java │ │ ├── ListInterchangeTest.java │ │ ├── MyMapTest.java │ │ ├── MyObservableTest.java │ │ ├── MyStackTest.java │ │ ├── QueueTest.java │ │ ├── RandomPropsTest.java │ │ └── SimpleFixedLengthQueueTest.java │ ├── textproc │ │ └── PerfectPangramTest.java │ ├── tmtimer │ │ └── TMTimerUtilTest.java │ ├── tools │ │ └── JrTestClass.java │ └── xcolor │ │ └── XColorTest.java │ └── resources │ ├── dummy.txt │ └── netweb │ └── GetUrlTestData.txt ├── makeIndexByChapter ├── mkzip ├── multireleasejar ├── Data.java ├── MANIFEST.MF ├── Main.java ├── README.adoc ├── run_demo └── versions │ └── 16 │ └── Data.java ├── pom.xml ├── restdemo ├── .classpath ├── .gitignore ├── .project ├── pom.xml └── src │ └── main │ ├── java │ └── rest │ │ ├── RestApplication.java │ │ └── RestService.java │ └── webapp │ └── WEB-INF │ ├── jboss-web.xml │ └── web.xml ├── sampleproject └── maven │ ├── pom.xml │ └── src │ └── main │ └── java │ └── H.java ├── scripts └── run_cdi_demo ├── sidebyside ├── README.adoc ├── c │ ├── .cvsignore │ ├── Makefile │ └── helloworld.c ├── clojure │ ├── Hello.clj │ ├── HelloSwing.clj │ └── Stack.clj ├── cobol │ ├── acceptdemo.cob │ └── helloworld.cob ├── csharp │ ├── .cvsignore │ ├── HelloWorld.cs │ └── Makefile ├── dart │ └── hello.dart ├── fortran │ ├── .cvsignore │ ├── Makefile │ └── readnums.for ├── golang │ ├── run │ └── src │ │ ├── hello │ │ ├── .gitignore │ │ └── hello.go │ │ └── stack │ │ ├── .gitignore │ │ └── stack.go ├── groovy │ ├── hello.groovy │ └── stack.groovy ├── java │ ├── AcceptDemo.java │ ├── HelloWorld.java │ └── StackDemo.java ├── kotlin │ ├── Stack.kt │ └── hello.kt ├── ocaml │ ├── hello.ocaml │ └── stack.ocaml ├── python │ ├── helloworld │ └── stack ├── ruby │ └── Hello.ruby ├── rust │ ├── Hello.rust │ └── Stack.rust └── scala │ ├── Hello.scala │ └── Stack.scala ├── spark ├── .classpath ├── .gitignore ├── .project ├── README.adoc ├── pom.xml ├── run └── src │ └── main │ └── java │ └── sparkdemo │ ├── LogReader.java │ └── ReaderJob.java ├── stylesheet.css ├── template ├── @.txt ├── Filter.java ├── G2D.java ├── GUIextendsFrame.java ├── GUIwithFrame.java ├── JMenus.frag ├── JOption.frag ├── LICENSE ├── Main.java ├── Servlet ├── Swing.java ├── addactionlistener.frag ├── descr.txt ├── jframe.exit.frag └── mainopts.java ├── testing-spock ├── .classpath ├── .gitignore ├── .project ├── pom.xml └── src │ └── test │ └── groovy │ └── spockdemo.groovy ├── testing ├── .classpath ├── .gitignore ├── .project ├── README.adoc ├── pom.xml └── src │ ├── main │ └── java │ │ ├── domain │ │ └── Person.java │ │ ├── sampleapp │ │ ├── Units.java │ │ ├── WeatherInfoSupplier.java │ │ ├── WeatherReporter.java │ │ └── WeatherStation.java │ │ └── testing │ │ ├── CheckAccessors.java │ │ ├── CheckAccessorsDirectory.java │ │ ├── CheckAccessorsMain.java │ │ ├── TestUtils.java │ │ └── package.html │ └── test │ └── java │ ├── domain │ └── PersonTest.java │ ├── sampleapp │ └── WeatherInfoSupplierTest.java │ └── testing │ ├── CheckAccessorsTest.java │ ├── ComponentRunner.java │ ├── FalsePositiveNull.java │ ├── HamcrestTest.java │ ├── RobotWindow.java │ ├── StringTest.java │ ├── TestInitializers.java │ ├── TestMaker.java │ ├── TestUtilsTest.java │ └── UrlBench.java ├── unsafe ├── .classpath ├── .gitignore ├── .project ├── pom.xml └── src │ └── main │ └── java │ ├── module-info.java │ └── unsafe │ └── LoadAverage.java └── xml ├── .classpath ├── .gitignore ├── .project ├── README.adoc ├── pom.xml └── src ├── main └── java │ ├── io │ └── GetMark.java │ ├── xml │ ├── DocReadWriteDom.java │ ├── DocWriteDOM.java │ ├── DocWriteJDOM.java │ ├── DomDemo.java │ ├── DomDemoXInclude.java │ ├── JAXPTransform.java │ ├── JDOMDemo.java │ ├── JDOMLister.java │ ├── MyDTDResolver.java │ ├── SAXLister.java │ ├── XMLExport.java.frag │ ├── XParse.java │ ├── XPathDemo.java │ ├── XPathMulti.java │ ├── XSLTransform.java │ ├── XTW.java │ ├── cdatasection.xml │ ├── descr.txt │ ├── emailentity.xml │ ├── jaxb │ │ ├── ConfigDemo.java │ │ ├── Configuration.java │ │ ├── ObjectFactory.java │ │ ├── config.save.xml │ │ └── xml.jaxb.xsd │ ├── people-dtd.xml │ ├── people-schema.xml │ ├── people-xinclude.xml │ ├── people-xsl.xml │ ├── people.dtd │ ├── people.xml │ ├── people.xsd │ ├── people.xsl │ ├── runxslt │ ├── test.xml │ ├── testNotWellFormedXSL.xsl │ └── whatis.xml │ └── xmlform │ ├── GenMIF.java │ ├── TODO.txt │ ├── XmlForm.java │ ├── XmlFormWalker.java │ ├── descr.txt │ ├── formats.mml │ ├── test1.mif │ ├── test1.xml │ ├── try │ └── xmlformat.mml └── test └── java └── xml └── jaxb └── ConfigTest.java /.gitignore: -------------------------------------------------------------------------------- 1 | .settings 2 | /build 3 | /test-classes 4 | /target 5 | *.bak 6 | .idea 7 | *.iml 8 | WIP 9 | -------------------------------------------------------------------------------- /Copyright.adoc: -------------------------------------------------------------------------------- 1 | All files are Copyright (c): All rights reserved. 2 | See the accompanying link:License.txt[Legal Notice] for conditions of use. 3 | May be used by readers of my Java Cookbook for educational purposes, 4 | and for any other use if the license conditions are met. 5 | -------------------------------------------------------------------------------- /Copyright.html: -------------------------------------------------------------------------------- 1 |

All files are Copyright (c): All rights reserved. 2 | See the accompanying Legal Notice for conditions of use. 3 | May be used by readers of my Java Cookbook for educational purposes, 4 | and for any other use if the license conditions are met. 5 |

6 | -------------------------------------------------------------------------------- /DISCLAIMER.txt: -------------------------------------------------------------------------------- 1 | Not all of the programs in this package have been adequately tested 2 | (in fact, a few have tests with @Ignore, so beware of those!!). 3 | As with any free open-source software, the user is entirely responsible 4 | for ensuring that the software functions correctly and meets their needs. 5 | 6 | You assume all risk of using this software! 7 | -------------------------------------------------------------------------------- /Rdemo-web/runR: -------------------------------------------------------------------------------- 1 | #!/usr/local/bin/R --no-save 2 | 3 | x = 2 + 2 4 | 5 | print x 6 | -------------------------------------------------------------------------------- /Rdemo-web/runStatsApp: -------------------------------------------------------------------------------- 1 | R --no-save <LabelText has moved 2 | The LabelText program has been moved into the 3 | com.darwinsys.util 4 | package. 5 | -------------------------------------------------------------------------------- /desktop/src/main/java/gui/MVC/TextView.java: -------------------------------------------------------------------------------- 1 | package gui.MVC; 2 | 3 | import javax.swing.*; 4 | import java.util.List; 5 | 6 | public class TextView extends JTextArea { 7 | 8 | private static final long serialVersionUID = 1L; 9 | 10 | public TextView() { 11 | super(20, 20); 12 | } 13 | 14 | public void setListData(List l) { 15 | setText(""); 16 | for (int i=0; i< l.size(); i++) { 17 | append(l.get(i)); 18 | append("\n"); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /desktop/src/main/java/gui/SplashDemo.java: -------------------------------------------------------------------------------- 1 | package gui; 2 | 3 | import java.awt.SplashScreen; 4 | 5 | import javax.swing.JOptionPane; 6 | 7 | public class SplashDemo { 8 | public static void main(String[] args) { 9 | final SplashScreen splashScreen = SplashScreen.getSplashScreen(); 10 | if (splashScreen == null) { 11 | JOptionPane.showMessageDialog(null, "Could not get Splash Screen"); 12 | return; 13 | } 14 | System.out.println(splashScreen); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /desktop/src/main/java/gui/WinClose2.java: -------------------------------------------------------------------------------- 1 | package gui; 2 | 3 | import javax.swing.JFrame; 4 | 5 | /** Show an example of closing a JFrame. 6 | * @author Ian Darwin 7 | */ 8 | public class WinClose2 { 9 | 10 | /* Main method */ 11 | public static void main(String[] argv) { 12 | JFrame f = new JFrame("WinClose"); 13 | f.setSize(200, 100); 14 | f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 15 | f.setVisible(true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /desktop/src/main/java/gui/cardlayout/loginLogin.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IanDarwin/javasrc/06049e93ef07923b5a3b9d92e265512c815386e2/desktop/src/main/java/gui/cardlayout/loginLogin.gif -------------------------------------------------------------------------------- /desktop/src/main/java/gui/cardlayout/loginPasswd.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IanDarwin/javasrc/06049e93ef07923b5a3b9d92e265512c815386e2/desktop/src/main/java/gui/cardlayout/loginPasswd.gif -------------------------------------------------------------------------------- /desktop/src/main/java/gui/cardlayout/loginWelcome.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IanDarwin/javasrc/06049e93ef07923b5a3b9d92e265512c815386e2/desktop/src/main/java/gui/cardlayout/loginWelcome.gif -------------------------------------------------------------------------------- /desktop/src/main/java/gui/centre.frag: -------------------------------------------------------------------------------- 1 | // After packing the Frame, centre it on the screen. 2 | Dimension us = getSize(), 3 | them = Toolkit.getDefaultToolkit().getScreenSize(); 4 | int newX = (them.width - us.width) / 2; 5 | int newY = (them.height- us.height)/ 2; 6 | setLocation(newX, newY); 7 | -------------------------------------------------------------------------------- /desktop/src/main/java/gui/descr.txt: -------------------------------------------------------------------------------- 1 | GUI (graphical user interface) examples in AWT and Swing. 2 | -------------------------------------------------------------------------------- /desktop/src/main/java/gui/getImage.frag: -------------------------------------------------------------------------------- 1 | URL url = getClass().getResource(s); 2 | // System.out.println(url); 3 | im = Toolkit.getDefaultToolkit().getImage(url); 4 | -------------------------------------------------------------------------------- /desktop/src/main/java/gui/getSizes.frag: -------------------------------------------------------------------------------- 1 | public Dimension getMinimumSize() { 2 | return new Dimension(width, height); 3 | } 4 | public Dimension getPreferredSize() { 5 | return new Dimension(width+PAD, height+PAD); 6 | } 7 | public Dimension getMaximumSize() { 8 | return new Dimension(width*2, height*2); 9 | } 10 | -------------------------------------------------------------------------------- /desktop/src/main/java/gui/helpdemo.htm: -------------------------------------------------------------------------------- 1 |

Help

2 |

Here is the help for our demo application: 3 |

This page still under construction, sorry. 4 | -------------------------------------------------------------------------------- /desktop/src/main/java/gui/tray.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IanDarwin/javasrc/06049e93ef07923b5a3b9d92e265512c815386e2/desktop/src/main/java/gui/tray.gif -------------------------------------------------------------------------------- /desktop/src/main/java/gui_awt/FrameIcon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IanDarwin/javasrc/06049e93ef07923b5a3b9d92e265512c815386e2/desktop/src/main/java/gui_awt/FrameIcon.gif -------------------------------------------------------------------------------- /desktop/src/main/java/gui_awt/README.txt: -------------------------------------------------------------------------------- 1 | This is only for GUI demos that have been supplanted by Swing. 2 | The Swing demos still use AWT, of course, and some e.g., LayoutManager 3 | demos are still in the main 'gui' folder despite being AWT-based. 4 | -------------------------------------------------------------------------------- /desktop/src/main/java/gui_swt/README.txt: -------------------------------------------------------------------------------- 1 | SWT is the GUI library for Eclipse. See 2 | 3 | http://androidcookbook.oreilly.com/Recipe.seam?recipeId=375 GUI overview 4 | 5 | http://www.developer.com/java/other/article.php/2179061/Swing-and-SWT-A-Tale-of-Two-Java-GUI-Libraries.htm 6 | -------------------------------------------------------------------------------- /desktop/src/main/java/javacomm/JModem.form: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IanDarwin/javasrc/06049e93ef07923b5a3b9d92e265512c815386e2/desktop/src/main/java/javacomm/JModem.form -------------------------------------------------------------------------------- /desktop/src/main/java/javacomm/ProtocolBotchException.java: -------------------------------------------------------------------------------- 1 | package javacomm; 2 | 3 | /** An unchecked exception to indicate a protocol failure. */ 4 | public class ProtocolBotchException extends RuntimeException { 5 | ProtocolBotchException() { 6 | super(); 7 | } 8 | ProtocolBotchException(String message) { 9 | super(message); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /desktop/src/main/java/javacomm/javax.comm.txt: -------------------------------------------------------------------------------- 1 | 2 | CLASSPATH PROBLEM 3 | 4 | You do not appear to have the javax.comm package in your CLASSPATH. 5 | 6 | You will need to download and install this (operating-system-dependant) 7 | file in order to compile the programs in `pwd`. 8 | 9 | $Id$ 10 | 11 | -------------------------------------------------------------------------------- /desktop/src/main/java/plotter/descr.txt: -------------------------------------------------------------------------------- 1 | The Plotter example, used in various chapters. 2 | -------------------------------------------------------------------------------- /desktop/src/main/java/printjdk14printservice/duke.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IanDarwin/javasrc/06049e93ef07923b5a3b9d92e265512c815386e2/desktop/src/main/java/printjdk14printservice/duke.gif -------------------------------------------------------------------------------- /desktop/src/main/resources/placeholder.txt: -------------------------------------------------------------------------------- 1 | Placeholder to keep m2e from getting excited. 2 | -------------------------------------------------------------------------------- /desktop/src/test/resources/placeholder.txt: -------------------------------------------------------------------------------- 1 | Placeholder to keep m2e from getting excited. 2 | -------------------------------------------------------------------------------- /ee/.gitignore: -------------------------------------------------------------------------------- 1 | build 2 | target 3 | -------------------------------------------------------------------------------- /ee/src/.cvsignore: -------------------------------------------------------------------------------- 1 | build 2 | -------------------------------------------------------------------------------- /ee/src/main/java/domain/Duration.java: -------------------------------------------------------------------------------- 1 | package domain; 2 | 3 | import javax.persistence.Entity; 4 | 5 | @Entity 6 | public class Duration { 7 | int hours, minutes, seconds; 8 | 9 | public Duration(int hours, int minutes, int seconds) { 10 | super(); 11 | this.hours = hours; 12 | this.minutes = minutes; 13 | this.seconds = seconds; 14 | } 15 | public Duration(int seconds) { 16 | this.seconds = seconds; // XXX do the math! 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /ee/src/main/java/ejb2/billing/Billing.java: -------------------------------------------------------------------------------- 1 | package ejb2.billing; 2 | 3 | import javax.ejb.EJBObject; 4 | 5 | public interface Billing extends EJBObject { 6 | /** Generate a bill in the database */ 7 | void setTotal(int amount); 8 | } 9 | -------------------------------------------------------------------------------- /ee/src/main/java/ejb2/billing/BillingHome.java: -------------------------------------------------------------------------------- 1 | package ejb2.billing; 2 | 3 | import javax.ejb.EJBHome; 4 | 5 | public interface BillingHome extends EJBHome { 6 | public Billing create(int CustID); 7 | } 8 | -------------------------------------------------------------------------------- /ee/src/main/java/ejb2/bmp/Entity.java: -------------------------------------------------------------------------------- 1 | package ejb2.bmp; 2 | 3 | import java.rmi.RemoteException; 4 | 5 | import javax.ejb.EJBObject; 6 | 7 | public interface Entity extends EJBObject { 8 | 9 | public Recording getRecording() throws RemoteException; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /ee/src/main/java/ejb2/bmp/Recording.java: -------------------------------------------------------------------------------- 1 | package ejb2.bmp; 2 | 3 | /** This is a dummy version of Recording used in my BMP example. */ 4 | public class Recording { 5 | int id; 6 | String title; 7 | String artist; // should be int fkey to artists table 8 | int publisher; // fkey to publishers table 9 | int year; 10 | } 11 | -------------------------------------------------------------------------------- /ee/src/main/java/ejb2/descr.txt: -------------------------------------------------------------------------------- 1 | Enterprise JavaBean examples 2 | -------------------------------------------------------------------------------- /ee/src/main/java/ejb2/hello/.cvsignore: -------------------------------------------------------------------------------- 1 | build 2 | -------------------------------------------------------------------------------- /ee/src/main/java/ejb2/hello/Hello.java: -------------------------------------------------------------------------------- 1 | package ejb2.hello; 2 | 3 | import java.rmi.RemoteException; 4 | 5 | import javax.ejb.EJBObject; 6 | 7 | public interface Hello extends EJBObject { 8 | public String sayHello(String name) throws RemoteException; 9 | } 10 | -------------------------------------------------------------------------------- /ee/src/main/java/ejb2/hello/HelloHome.java: -------------------------------------------------------------------------------- 1 | package ejb2.hello; 2 | 3 | import java.rmi.RemoteException; 4 | 5 | import javax.ejb.CreateException; 6 | import javax.ejb.EJBHome; 7 | 8 | public interface HelloHome extends EJBHome { 9 | /** Stateless Session beans MUST have one create() method. */ 10 | public Hello create() throws CreateException, RemoteException; 11 | } 12 | -------------------------------------------------------------------------------- /ee/src/main/java/ejb2/hello/Makefile: -------------------------------------------------------------------------------- 1 | CLASSES= Hello.class HelloEJB.class HelloHome.class 2 | 3 | hello.jar: $(CLASSES) 4 | jar cvf hello.jar META-INF $(CLASSES) 5 | 6 | install: hello.jar 7 | cp hello.jar /home/ian/jboss/jboss/deploy 8 | -------------------------------------------------------------------------------- /ee/src/main/java/ejb2/hello/hello.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IanDarwin/javasrc/06049e93ef07923b5a3b9d92e265512c815386e2/ee/src/main/java/ejb2/hello/hello.jar -------------------------------------------------------------------------------- /ee/src/main/java/ejb2/hello/runclient: -------------------------------------------------------------------------------- 1 | #!/bin/ksh 2 | 3 | JBOSSHOME=~/jboss 4 | 5 | CLASSPATH=. 6 | 7 | for thing in ${JBOSSHOME}/client/* 8 | do 9 | if [ -f $thing ]; then 10 | CLASSPATH="$CLASSPATH:$thing" 11 | elif [ -d $thing ]; then 12 | CLASSPATH="$CLASSPATH:$thing" 13 | fi 14 | done 15 | 16 | set -x 17 | 18 | java -classpath $CLASSPATH HelloClient 19 | -------------------------------------------------------------------------------- /ee/src/main/java/ejb2/hello/runclient.bat: -------------------------------------------------------------------------------- 1 | java -cp build;\jboss-3.2.2\client\jbossall-client.jar HelloClient 2 | -------------------------------------------------------------------------------- /ee/src/main/java/ejb2/interfaces/metadata/jndi.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Properties file for the InitialContext constructor to find 3 | # the JBoss JNDI service. 4 | # $Id$ 5 | # 6 | java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory 7 | java.naming.provider.url=jnp://127.0.0.1:1099 8 | #java.naming.provider.url=127.0.0.1 9 | java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces 10 | -------------------------------------------------------------------------------- /ee/src/main/java/ejb2/localinterfaces/.cvsignore: -------------------------------------------------------------------------------- 1 | members.jar 2 | -------------------------------------------------------------------------------- /ee/src/main/java/ejb2/localinterfaces/MemberBean.java: -------------------------------------------------------------------------------- 1 | package ejb2.localinterfaces; 2 | 3 | import javax.ejb.EntityBean; 4 | 5 | // MemberBean.java - LocalHome interface 6 | public abstract class MemberBean implements EntityBean { 7 | // LocalHome methods: 8 | // findByPrimaryKey implemented by Container 9 | 10 | // MemberLocal methods 11 | public abstract String getAddress(); // CMP method! 12 | } 13 | -------------------------------------------------------------------------------- /ee/src/main/java/ejb2/localinterfaces/MemberLocal.java: -------------------------------------------------------------------------------- 1 | package ejb2.localinterfaces; 2 | 3 | import javax.ejb.EJBLocalObject; 4 | 5 | /** MemberLocal.java - Local business interface */ 6 | public interface MemberLocal extends EJBLocalObject { 7 | public String getAddress(); 8 | } 9 | -------------------------------------------------------------------------------- /ee/src/main/java/ejb2/localinterfaces/MemberLocalHome.java: -------------------------------------------------------------------------------- 1 | package ejb2.localinterfaces; 2 | 3 | // MemberLocalHome.java - LocalHome interface 4 | import javax.ejb.EJBLocalHome; 5 | import javax.ejb.FinderException; 6 | 7 | public interface MemberLocalHome extends EJBLocalHome { 8 | public MemberLocal findByPrimaryKey(int id) 9 | throws FinderException; 10 | } 11 | -------------------------------------------------------------------------------- /ee/src/main/java/ejb2/musicrecording/beans/SaleLocalHome.java: -------------------------------------------------------------------------------- 1 | package ejb2.musicrecording.beans; 2 | 3 | import javax.ejb.*; 4 | 5 | /** 6 | * Local Home interface for the "put recordings on sale" Facade. 7 | * @author Ian Darwin 8 | */ 9 | public interface SaleLocalHome extends EJBLocalHome { 10 | 11 | /** Create the session facade */ 12 | public SaleLocal create() throws CreateException; 13 | } 14 | -------------------------------------------------------------------------------- /ee/src/main/java/ejb2/musicrecording/client/jndi.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Properties file for the InitialContext constructor to find 3 | # the JBoss JNDI service. 4 | # $Id$ 5 | # 6 | java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory 7 | java.naming.provider.url=jnp://127.0.0.1:1099 8 | #java.naming.provider.url=127.0.0.1 9 | java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces 10 | -------------------------------------------------------------------------------- /ee/src/main/java/ejb2/musicrecording/setup.sql: -------------------------------------------------------------------------------- 1 | create table music_recordings ( 2 | id int primary key, 3 | artist varchar(20), 4 | title varchar(40), 5 | publisher int, // fkey to publishers 6 | double price, 7 | int stockcount 8 | ); 9 | 10 | create table music_publishers ( 11 | id int primary key, 12 | name varchar(40), 13 | city varchar(40), 14 | phone varchar(20) 15 | ); 16 | -------------------------------------------------------------------------------- /ee/src/main/java/ejb2/serverinfo/README.html: -------------------------------------------------------------------------------- 1 | ServInfo 2 | 3 |

ServInfo

4 |

This EJB is designed to be hacked up to quickly enable you to 5 | run tests inside the EJB server. The initial version looks up env strings, 6 | but it's pretty easy to hack to look up other values in the 7 | SessionContext or elsewhere. 8 |

9 | -------------------------------------------------------------------------------- /ee/src/main/java/ejb2/serverinfo/bean/META-INF/jboss.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | ServInfo1 7 | ServInfo1 8 | 9 | 10 | ServInfo2 11 | ServInfo2 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /ee/src/main/java/ejb2/serverinfo/bean/ServInfoHome.java: -------------------------------------------------------------------------------- 1 | package ejb2.serverinfo.bean; 2 | 3 | import java.rmi.RemoteException; 4 | 5 | import javax.ejb.CreateException; 6 | import javax.ejb.EJBHome; 7 | 8 | /** 9 | * Home interface for the ServInfo EJB. 10 | * 11 | * @author MkBean 12 | */ 13 | 14 | public interface ServInfoHome extends EJBHome { 15 | 16 | // Create Methods 17 | public ServInfo create() throws CreateException, RemoteException; 18 | } 19 | -------------------------------------------------------------------------------- /ee/src/main/java/ejb2/serverinfo/client/jndi.properties: -------------------------------------------------------------------------------- 1 | java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory 2 | java.naming.provider.url=jnp://127.0.0.1:1099 3 | java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces 4 | -------------------------------------------------------------------------------- /ee/src/main/java/ejb2/serverinfo/client/runclient: -------------------------------------------------------------------------------- 1 | #!/bin/ksh 2 | 3 | JBOSSHOME=~/jboss 4 | 5 | CLASSPATH=.:../bean/serverinfo.jar 6 | 7 | for thing in ${JBOSSHOME}/client/* 8 | do 9 | if [ -f $thing ]; then 10 | CLASSPATH="$CLASSPATH:$thing" 11 | elif [ -d $thing ]; then 12 | CLASSPATH="$CLASSPATH:$thing" 13 | fi 14 | done 15 | 16 | set -x 17 | 18 | java -classpath $CLASSPATH Client 19 | -------------------------------------------------------------------------------- /ee/src/main/java/ejb2/serverinfo/client/runclient.bat: -------------------------------------------------------------------------------- 1 | REM run the EJB client 2 | 3 | java -classpath .;MyAppClient.jar;servinfo.jar;%CLASSPATH%;com-darwinsys-all.jar Client 4 | -------------------------------------------------------------------------------- /ee/src/main/java/ejb3/CardValidatorLocal.java: -------------------------------------------------------------------------------- 1 | package ejb3; 2 | 3 | public interface CardValidatorLocal { 4 | public boolean validateCard(String card); 5 | } 6 | -------------------------------------------------------------------------------- /ee/src/main/java/ejb3/CardValidatorRemote.java: -------------------------------------------------------------------------------- 1 | package ejb3; 2 | 3 | public interface CardValidatorRemote { 4 | public boolean validateCard(String card); 5 | } 6 | -------------------------------------------------------------------------------- /ee/src/main/java/ejb3/mk: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -ex 4 | 5 | javac -classpath ../../lib/javaee.jar -d ../../build *.java 6 | rm -f /tmp/stateless.jar 7 | cd ../../build 8 | jar cvf /tmp/stateless.jar ejb3 9 | cp /tmp/stateless.jar $jbdd/ 10 | -------------------------------------------------------------------------------- /ee/src/main/java/ejb3bmt/BMTDemo.java: -------------------------------------------------------------------------------- 1 | package ejb3bmt; 2 | 3 | import javax.ejb.Local; 4 | 5 | @Local 6 | public interface BMTDemo { 7 | void loggit(String s); 8 | } 9 | -------------------------------------------------------------------------------- /ee/src/main/java/ejb3client/jndi.properties: -------------------------------------------------------------------------------- 1 | #! Settings for JBoss-AS 2 | java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory 3 | java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces 4 | java.naming.provider.url=localhost 5 | 6 | -------------------------------------------------------------------------------- /ee/src/main/java/ejb3client/mk: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -ex 4 | 5 | BUILD=../../build 6 | 7 | javac -cp ${BUILD}:../../lib/javaee.jar -d ${BUILD} *.java 8 | java -cp ${BUILD}:$jb/client/jbossall-client.jar:. ejb3client.StatelessClient 9 | -------------------------------------------------------------------------------- /ee/src/main/java/hibernate/DemoDAO.java: -------------------------------------------------------------------------------- 1 | package hibernate; 2 | 3 | public class DemoDAO extends BaseDAOHibernateImpl{ 4 | 5 | public DemoDAO() { 6 | super(String.class); 7 | } 8 | 9 | } 10 | -------------------------------------------------------------------------------- /ee/src/main/java/hibernate/DemoDAODemo.java: -------------------------------------------------------------------------------- 1 | package hibernate; 2 | 3 | public class DemoDAODemo { 4 | public static void main(String[] args) { 5 | String customerName = new DemoDAO().read(Integer.valueOf(42)); 6 | System.out.println(customerName); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ee/src/main/java/jaxrpcservice/README.txt: -------------------------------------------------------------------------------- 1 | JAX-RPC is the older, J2EE 1.4 way of making services. 2 | To use JAX-RPC to make a service: 3 | - run a toolkit-specific generatore (e.g., Axis1 java2wsdl) 4 | to generate stubs, skeletons and WSDL. 5 | - create an instance of an Impl class 6 | - register it with the service. 7 | -------------------------------------------------------------------------------- /ee/src/main/java/jaxwsclient/TinyClientMain.java: -------------------------------------------------------------------------------- 1 | package jaxwsclient; 2 | 3 | // tag::main[] 4 | // no imports! 5 | 6 | /** Two-line client for Calc Service, complete code. */ 7 | public class TinyClientMain { 8 | public static void main(String[] args) { 9 | Calc client = new CalcService().getCalcPort(); 10 | System.out.println(client.add(2, 2)); 11 | } 12 | } 13 | // end::main[] 14 | -------------------------------------------------------------------------------- /ee/src/main/java/jaxwsclient/client.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl -w 2 | 3 | use SOAP::Lite; 4 | 5 | my $calculator = SOAP::Lite -> service('http://localhost:7094/calc?wsdl'); 6 | print "Calculator add(34,66)..."; 7 | print $calculator -> add(34,66), "\n"; 8 | print $calculator -> subtract(34,66), "\n"; 9 | 10 | -------------------------------------------------------------------------------- /ee/src/main/java/jaxwsclient/client.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from SOAPpy import WSDL 4 | 5 | server = WSDL.Proxy('http://localhost:7094/calc?wsdl') 6 | 7 | print "Calc exposes the following methods:" 8 | print wsdl.methods.keys() 9 | 10 | server.config.dumpSOAPOut = 1 11 | server.config.dumpSOAPIn = 1 12 | 13 | print server.add(34,66) 14 | -------------------------------------------------------------------------------- /ee/src/main/java/jaxwsclient/package-info.java: -------------------------------------------------------------------------------- 1 | @javax.xml.bind.annotation.XmlSchema(namespace = "http://toy.service/") 2 | package jaxwsclient; 3 | -------------------------------------------------------------------------------- /ee/src/main/java/jms/jmschat: -------------------------------------------------------------------------------- 1 | 2 | echo Running chat client 3 | 4 | java JMSChat 5 | -------------------------------------------------------------------------------- /ee/src/main/java/jndi/rmi.properties: -------------------------------------------------------------------------------- 1 | # 2 | # jndi.properties for use with RMI registry 3 | # $Id$ 4 | # 5 | # A special prize for the longest ContextFactory name? 6 | java.naming.factory.initial=com.sun.jndi.rmi.registry.RegistryContextFactory 7 | # 8 | # Normally 1099 (temporarily changed to 1066 due to a conflict) 9 | java.naming.provider.url=rmi://localhost:1066 10 | -------------------------------------------------------------------------------- /ee/src/main/java/jndiprovider/jndi.properties: -------------------------------------------------------------------------------- 1 | java.naming.factory.initial=com.darwinsys.jndi.ServicesContextFactory 2 | java.naming.provider.url= 3 | -------------------------------------------------------------------------------- /ee/src/main/java/jpa/README.txt: -------------------------------------------------------------------------------- 1 | The JPA examples are in the top-level "jpademo" project. 2 | -------------------------------------------------------------------------------- /ee/src/main/java/jsp/FiveInts.java: -------------------------------------------------------------------------------- 1 | package jsp; 2 | 3 | import java.util.Random; 4 | 5 | public class FiveInts { 6 | public static void main(String[] argv) { 7 | //+ 8 | Random r = new Random(); 9 | for (int i=0; i<5; i++) 10 | System.out.println(r.nextInt()); 11 | //- 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ee/src/main/java/rmi/.cvsignore: -------------------------------------------------------------------------------- 1 | darwinsys 2 | -------------------------------------------------------------------------------- /ee/src/main/java/rmi/ListRMI.java: -------------------------------------------------------------------------------- 1 | package rmi; 2 | 3 | import java.rmi.*; 4 | 5 | public class ListRMI { 6 | public static void main(String[] args) throws Exception { 7 | 8 | String theURL = "rmi://localhost:1099/"; 9 | 10 | String[] names = Naming.list(theURL); 11 | for (int i=0; i 2 |

Please choose a color

3 |
4 | 9 | 10 |
11 | 12 | -------------------------------------------------------------------------------- /ee/src/main/java/servlet/Term.java: -------------------------------------------------------------------------------- 1 | package servlet; 2 | 3 | public class Term { 4 | /** The term being defined */ 5 | public String term; 6 | /** The definition of this term */ 7 | public String definition; 8 | 9 | /** Constructor */ 10 | public Term(String t, String d) { 11 | term = t; 12 | definition = d; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /ee/src/main/java/servlet/chartservlet/chartservlet.html: -------------------------------------------------------------------------------- 1 | 2 | Graphics from a Servlet 3 | 4 | 5 |

Graphics from a Servlet

6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ee/src/main/java/servlet/chatservlet/.cvsignore: -------------------------------------------------------------------------------- 1 | chat.txt 2 | -------------------------------------------------------------------------------- /ee/src/main/java/servlet/chatservlet/UserState.java: -------------------------------------------------------------------------------- 1 | package servlet.chatservlet; 2 | 3 | import java.io.Serializable; 4 | 5 | public class UserState implements Serializable{ 6 | 7 | private static final long serialVersionUID = -1445727679207972460L; 8 | public int firstViewed; 9 | public int lastViewed; 10 | } 11 | -------------------------------------------------------------------------------- /ee/src/main/java/servlet/classpath.txt: -------------------------------------------------------------------------------- 1 | 2 | CLASSPATH PROBLEM 3 | 4 | You do not appear to have the javax.servlet package in your CLASSPATH. 5 | 6 | You will need to download and install this file in order to compile 7 | the programs in `pwd`. Either get and install TomCat from 8 | http://java.apache.org, or get another Servlet Engine, or 9 | get the API-only class files from http://java.sun.com/ 10 | 11 | $Id$ 12 | 13 | -------------------------------------------------------------------------------- /ee/src/main/java/servlet/descr.txt: -------------------------------------------------------------------------------- 1 | Servlet and JSP examples 2 | -------------------------------------------------------------------------------- /ee/src/main/java/servlet/pdfcouponservlet/WEB-INF/lib/spdf.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IanDarwin/javasrc/06049e93ef07923b5a3b9d92e265512c815386e2/ee/src/main/java/servlet/pdfcouponservlet/WEB-INF/lib/spdf.jar -------------------------------------------------------------------------------- /ee/src/main/java/servlet/upload.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Test Upload 4 | 5 | 6 |

Upload file(s)!

7 |
8 | Filename: 9 |
10 | Filename2: 11 |
12 | 13 |
14 |
15 | 16 | 17 | -------------------------------------------------------------------------------- /ee/src/main/resources/jndi.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Properties file for the InitialContext constructor to find 3 | # the JBossAS JNDI service. 4 | # $Id$ 5 | # 6 | java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory 7 | java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces 8 | java.naming.provider.url=jnp://127.0.0.1:1099 9 | -------------------------------------------------------------------------------- /ee/src/main/webapp/FontSizes.jsp: -------------------------------------------------------------------------------- 1 | 2 | Font Sizes 3 |

Font Sizes

4 | <% for (int i=1; i<=7; i++) { %> 5 |
>Hello World in Size <%= i %> 6 | <% } %> 7 | -------------------------------------------------------------------------------- /ee/src/main/webapp/WEB-INF/jboss-web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | javasrcee 4 | 5 | -------------------------------------------------------------------------------- /ee/src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /ee/src/main/webapp/counter.jsp: -------------------------------------------------------------------------------- 1 | 2 | Counter JavaBean Demo 3 | 4 | 5 | 6 |

Counter JavaBean Demo

7 | The counter is now . 8 | <% myCount.incr(); %> 9 | 10 | 11 | -------------------------------------------------------------------------------- /ee/src/main/webapp/demo.txt: -------------------------------------------------------------------------------- 1 | This is some text that will be included. -------------------------------------------------------------------------------- /ee/src/main/webapp/forceerror.jsp: -------------------------------------------------------------------------------- 1 | <%@page errorPage="oops.jsp"%> 2 | 3 |

This page contains code that deliberately throws an exception 4 | to test out the error handling page. 5 | <% String x = null; %> 6 | <%= x.substring(1) %> 7 | -------------------------------------------------------------------------------- /ee/src/main/webapp/hello-wml.jsp: -------------------------------------------------------------------------------- 1 | <%@page contentType="text/vnd.wap.wml" import="java.util.*" %> 2 | 3 | 4 | 5 | 6 |

Data current as of <%= new Date() %>

7 |

8 | href="#data1>More Details 9 |

10 | 11 | 12 | 13 |

This is the card called DataOne

14 |
15 | 16 | -------------------------------------------------------------------------------- /ee/src/main/webapp/hello.jsp: -------------------------------------------------------------------------------- 1 | <%@ page import="java.util.*" %> 2 | 3 | Hello from a JSP 4 | 5 |

Here on our server farm it is now 6 | <%= new Date() %>.

7 | 8 | 9 | -------------------------------------------------------------------------------- /ee/src/main/webapp/hellominimal.jsp: -------------------------------------------------------------------------------- 1 |

Hello from a JSP

2 |

Server time is now <%= new java.util.Date() %> 3 |

4 | -------------------------------------------------------------------------------- /ee/src/main/webapp/login.jsp: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | <% if (pwck.isValidPassword()) out.println("You are logged in"); 8 | else out.println("Login name and/or password incorrect."); 9 | %> 10 |
11 | -------------------------------------------------------------------------------- /ee/src/main/webapp/testinclude.jsp: -------------------------------------------------------------------------------- 1 |

This page shows how both include mechanisms work. 2 | Run it, but then go look at the JSP code generated. 3 |

Before jsp-include:

4 | 5 |

Before at-include

6 | <%@include file="./demo.txt"%> 7 |

At end of page

8 | -------------------------------------------------------------------------------- /graal/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | -------------------------------------------------------------------------------- /graal/src/main/java/graaldemo/JavaCallJS.java: -------------------------------------------------------------------------------- 1 | package graaldemo; 2 | 3 | import java.io.*; 4 | 5 | import org.graalvm.polyglot.*; 6 | 7 | /** 8 | * GraalVM polyglot: calling JavaScript from Java/ 9 | */ 10 | public class JavaCallJS { 11 | 12 | public static void main(String[] args) { 13 | 14 | Context context = Context.create("js"); 15 | Value result = context.eval("js", "2 + 2"); 16 | int i = result.asInt(); 17 | System.out.println(i); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /graal/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | module graaldemo { 2 | requires org.graalvm.polyglot; 3 | } -------------------------------------------------------------------------------- /gradledemo/.gitattributes: -------------------------------------------------------------------------------- 1 | # 2 | # https://help.github.com/articles/dealing-with-line-endings/ 3 | # 4 | # Linux start script should use lf 5 | /gradlew text eol=lf 6 | 7 | # These are Windows script files and should use crlf 8 | *.bat text eol=crlf 9 | 10 | -------------------------------------------------------------------------------- /gradledemo/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore Gradle project-specific cache directory 2 | .gradle 3 | 4 | # Ignore Gradle build output directory 5 | build 6 | -------------------------------------------------------------------------------- /gradledemo/app/src/main/java/com/example/gradledemo/App.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This Java source file was generated by the Gradle 'init' task. 3 | */ 4 | package com.example.gradledemo; 5 | 6 | public class App { 7 | public String getGreeting() { 8 | return "Hello World!"; 9 | } 10 | 11 | public static void main(String[] args) { 12 | System.out.println(new App().getGreeting()); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /gradledemo/gradle.properties: -------------------------------------------------------------------------------- 1 | # This file was generated by the Gradle 'init' task. 2 | # https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_configuration_properties 3 | 4 | org.gradle.parallel=true 5 | org.gradle.caching=true 6 | 7 | -------------------------------------------------------------------------------- /images/macbuildpath1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IanDarwin/javasrc/06049e93ef07923b5a3b9d92e265512c815386e2/images/macbuildpath1.png -------------------------------------------------------------------------------- /images/macbuildpath2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IanDarwin/javasrc/06049e93ef07923b5a3b9d92e265512c815386e2/images/macbuildpath2.png -------------------------------------------------------------------------------- /incubation/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | -------------------------------------------------------------------------------- /incubation/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | module javasrc.upcoming { 2 | requires jdk.incubator.vector; 3 | } 4 | -------------------------------------------------------------------------------- /javafx/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | -------------------------------------------------------------------------------- /jlink/.gitignore: -------------------------------------------------------------------------------- 1 | demo 2 | *.class 3 | *.jar 4 | mini-java 5 | -------------------------------------------------------------------------------- /jlink/README.adoc: -------------------------------------------------------------------------------- 1 | = javasrc jlink demo 2 | 3 | This shows using jlink to build a mini-java distribution with 4 | only the files needed to run one application. 5 | 6 | Because the operation is so simple, Maven was not used. 7 | A single shell script +run+ does everything. 8 | MS-DOS users should use +run.bat+ instead. 9 | -------------------------------------------------------------------------------- /jlink/mkbat: -------------------------------------------------------------------------------- 1 | sed -e 's?/?\\?g' -e 's/^\#/REM/' -e 's/$/ /' run.bat 2 | -------------------------------------------------------------------------------- /jlink/src/Hello.java: -------------------------------------------------------------------------------- 1 | package demo; 2 | 3 | public class Hello { 4 | public static void main(String[] args) { 5 | System.out.println("Hello, world."); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /jlink/src/module-info.java: -------------------------------------------------------------------------------- 1 | module demo { 2 | exports demo; 3 | } 4 | -------------------------------------------------------------------------------- /json/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | -------------------------------------------------------------------------------- /json/src/main/java/domain/SoftwareInfo.java: -------------------------------------------------------------------------------- 1 | package domain; 2 | 3 | import java.util.List; 4 | 5 | // tag::main[] 6 | public record SoftwareInfo(String name, 7 | String version, String description, 8 | String className, List contributors) { 9 | 10 | @Override 11 | public String toString() { 12 | return String.format("Software: %s (%s) by %s", name, version, contributors); 13 | } 14 | } 15 | // end::main[] 16 | -------------------------------------------------------------------------------- /json/src/main/resources/json/softwareinfo.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "robinparse", 3 | "version": "1.2.3", 4 | "description": "Another Parser for JSON", 5 | "className": "RobinParse", 6 | "contributors": [ 7 | "Robin Smythe", 8 | "Jon Jenz", 9 | "Jan Ardann" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /json/src/main/resources/placeholder.txt: -------------------------------------------------------------------------------- 1 | Placeholder 2 | -------------------------------------------------------------------------------- /lombokdemo/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | /.apt_generated/ 3 | /.apt_generated_tests/ 4 | -------------------------------------------------------------------------------- /lombokdemo/run: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -x 4 | 5 | java -cp ~/.m2/repository/org/projectlombok/lombok/1.18.0/lombok-1.18.0.jar:target/classes demo.LombokDemo 6 | -------------------------------------------------------------------------------- /lombokdemo/src/main/resources/placeholder.txt: -------------------------------------------------------------------------------- 1 | Empty file 2 | -------------------------------------------------------------------------------- /lombokdemo/src/test/java/demo/LombokDemoTest.java: -------------------------------------------------------------------------------- 1 | package demo; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import static org.junit.jupiter.api.Assertions.*; 5 | 6 | public class LombokDemoTest { 7 | 8 | @Test 9 | public void test() { 10 | LombokDemo demo = LombokDemo.builder().id(123).name("The Eagles").build(); 11 | assertEquals(123, demo.getId()); 12 | assertEquals("The Eagles", demo.getName()); 13 | } 14 | 15 | 16 | } 17 | -------------------------------------------------------------------------------- /lombokdemo/src/test/resources/placeholder.txt: -------------------------------------------------------------------------------- 1 | Empty file 2 | -------------------------------------------------------------------------------- /main/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | bytes.dat 3 | .idea/ 4 | gaussian.txt 5 | normal.txt 6 | randomness.png 7 | openai.apikey.txt 8 | -------------------------------------------------------------------------------- /main/Makefile: -------------------------------------------------------------------------------- 1 | fixexcludes: excludes.xml fixexcludes.awk 2 | awk -f fixexcludes.awk < pom.xml > pom.new && mv pom.new pom.xml 3 | 4 | excludes: excludes.xml 5 | excludes.xml: foo 6 | (cd src/main/java; rg -l COMPILE.ERROR | sed -e 's=.*= &='|sort -f) > excludes.xml 7 | 8 | foo: 9 | rm -f excludes.xml 10 | -------------------------------------------------------------------------------- /main/fixexcludes.awk: -------------------------------------------------------------------------------- 1 | / 3 | 4 |

Buzz In!

5 |

6 | 7 | 8 | Press here to buzz in! 9 | 10 | 11 | -------------------------------------------------------------------------------- /main/src/main/java/threads/buzzin/WEB-INF/hosts.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /main/src/main/java/threads/descr.txt: -------------------------------------------------------------------------------- 1 | Threaded Java 2 | -------------------------------------------------------------------------------- /main/src/main/java/tmtimer/TMTimer.properties: -------------------------------------------------------------------------------- 1 | # Color choices for local display 2 | # Not implemented yet. 3 | # colors=green yellow red 4 | # 5 | # List of presets. Format is: 6 | # arbitrary_label=[m:]ss [m:]ss [m:]ss 7 | Demo=5 10 15 8 | 30-60s=0:30 0:45 1:00 9 | 60-90s=0:60 0:75 0:90 10 | 4-6m=4:00 5:00 6:00 11 | 5-7m=5:00 6:00 7:00 12 | 6-8m=6:00 7:00 8:00 13 | 8-10m=8:00 9:00 10:00 14 | -------------------------------------------------------------------------------- /main/src/main/java/unfinished/descr.txt: -------------------------------------------------------------------------------- 1 | unfinished stuff -- complete at own risk! :-) 2 | -------------------------------------------------------------------------------- /main/src/main/java/webproxy/errors.properties: -------------------------------------------------------------------------------- 1 | 200=OK, here's yer data! 2 | 400=Invalid code 3 | 404=Hey, I can't find that! 4 | -------------------------------------------------------------------------------- /main/src/main/java/webproxy/httpd.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Hand-Edited Properties file for DarwinSys WebServer. 3 | # $Id$ 4 | # 5 | # Port Number to listen on. 6 | portNum=8080 7 | # 8 | # rootDir aka DocumentRoot 9 | rootDir=. 10 | #rootDir=/home/ian/webs/darwinsys/ 11 | #rootDir=/home/ian/javasrc/ 12 | -------------------------------------------------------------------------------- /main/src/main/java/webproxy/run.sh: -------------------------------------------------------------------------------- 1 | set -x 2 | java -classpath .:../jars/darwinsys.jar -Xmx44M WebProxy $* 3 | -------------------------------------------------------------------------------- /main/src/main/java/xcolor/descr.txt: -------------------------------------------------------------------------------- 1 | X Colors - the X Color Database applied to Java 2 | -------------------------------------------------------------------------------- /main/src/main/java/xcolor/screendump.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IanDarwin/javasrc/06049e93ef07923b5a3b9d92e265512c815386e2/main/src/main/java/xcolor/screendump.gif -------------------------------------------------------------------------------- /main/src/main/resources/EnumIntl.properties: -------------------------------------------------------------------------------- 1 | NORTH=North 2 | EAST=East 3 | SOUTH=South 4 | WEST=West -------------------------------------------------------------------------------- /main/src/main/resources/EnumIntl_es.properties: -------------------------------------------------------------------------------- 1 | NORTH=Norte 2 | EAST=Est 3 | SOUTH=Sud 4 | WEST=Oeste -------------------------------------------------------------------------------- /main/src/main/resources/META-INF/beans.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /main/src/main/resources/META-INF/services/javax.script.ScriptEngineFactory: -------------------------------------------------------------------------------- 1 | otherlang.calcscriptengine.CalcScriptEngineFactory -------------------------------------------------------------------------------- /main/src/main/resources/Widgets_sv.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IanDarwin/javasrc/06049e93ef07923b5a3b9d92e265512c815386e2/main/src/main/resources/Widgets_sv.properties -------------------------------------------------------------------------------- /main/src/main/resources/audio/test.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IanDarwin/javasrc/06049e93ef07923b5a3b9d92e265512c815386e2/main/src/main/resources/audio/test.wav -------------------------------------------------------------------------------- /main/src/main/resources/demo.txt: -------------------------------------------------------------------------------- 1 | This is a plain text file, part of Ian Darwin's "javasrc" 2 | (available free from http://github.com/IanDarwin/javasrc/) 3 | and part of the O'Reilly Java Cookbook, Third Edition, 4 | http://shop.oreilly.com/product/0636920026518.do 5 | 6 | It is used in a few examples that need such a thing. 7 | -------------------------------------------------------------------------------- /main/src/main/resources/duke.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IanDarwin/javasrc/06049e93ef07923b5a3b9d92e265512c815386e2/main/src/main/resources/duke.gif -------------------------------------------------------------------------------- /main/src/main/resources/getresourcedemo1.txt: -------------------------------------------------------------------------------- 1 | This is a demo file for the GetResourceDemo program. 2 | -------------------------------------------------------------------------------- /main/src/main/resources/help/index.html: -------------------------------------------------------------------------------- 1 | Acme Widgets Help File 2 | 3 |

Acme Widgets Help File

4 |

This would be a help file. 5 |

See Also: DarwinSys.com. 6 | 7 | -------------------------------------------------------------------------------- /main/src/main/resources/messages.properties: -------------------------------------------------------------------------------- 1 | ConsoleViewer.message=Hello World! 2 | -------------------------------------------------------------------------------- /main/src/main/resources/messages_es.properties: -------------------------------------------------------------------------------- 1 | ConsoleViewer.message=Bienvenidos, mundo! -------------------------------------------------------------------------------- /main/src/main/resources/new.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IanDarwin/javasrc/06049e93ef07923b5a3b9d92e265512c815386e2/main/src/main/resources/new.gif -------------------------------------------------------------------------------- /main/src/main/resources/pythonfromjava.py: -------------------------------------------------------------------------------- 1 | # Simple Hello in Python 2 | print('Hello from Python') 3 | global meaning 4 | print('Python: Meaning of Life is ' + str(meaning)) 5 | # Python doesn't do strong typing: 6 | meaning = 'Good morning' -------------------------------------------------------------------------------- /main/src/test/java/database/rowsetdata.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IanDarwin/javasrc/06049e93ef07923b5a3b9d92e265512c815386e2/main/src/test/java/database/rowsetdata.xml -------------------------------------------------------------------------------- /main/src/test/java/i18n/EnumIntlTest.java: -------------------------------------------------------------------------------- 1 | package i18n; 2 | 3 | import static org.junit.jupiter.api.Assertions.assertEquals; 4 | 5 | import org.junit.jupiter.api.Test; 6 | 7 | class EnumIntlTest { 8 | @Test 9 | void north() { 10 | assertEquals("North", EnumIntl.NORTH.getDescription()); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /main/src/test/java/numbers/FibonacciTest.java: -------------------------------------------------------------------------------- 1 | package numbers; 2 | 3 | import static org.junit.jupiter.api.Assertions.assertEquals; 4 | 5 | import org.junit.jupiter.api.Test; 6 | 7 | class FibonacciTest { 8 | 9 | int[] expect = { 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 }; 10 | 11 | @Test 12 | void fibonacci() { 13 | for (int i = 0; i < expect.length; i++) { 14 | assertEquals(expect[i], Fibonacci.fibonacci(i), Integer.toString(i)); 15 | } 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /main/src/test/java/regex/RETest.java: -------------------------------------------------------------------------------- 1 | package regex; 2 | 3 | import static org.junit.jupiter.api.Assertions.assertNotNull; 4 | 5 | import java.util.regex.Matcher; 6 | import java.util.regex.Pattern; 7 | import org.junit.jupiter.api.Test; 8 | 9 | class RETest { 10 | @Test 11 | void compile() { 12 | Pattern p = Pattern.compile("^|} .*"); 13 | Matcher m = p.matcher("'''bold'''"); 14 | assertNotNull(m); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /main/src/test/java/tools/JrTestClass.java: -------------------------------------------------------------------------------- 1 | package tools; 2 | 3 | /** This is a key test class for jr. Do not delete! */ 4 | public class JrTestClass { 5 | public static void main(String[] args) { 6 | System.out.println("SUCCESS! Program t compiled and run."); 7 | for (int i = 0; i < args.length; i++) { 8 | System.out.println("JrTest arg[" + i + "] = " + args[i]); 9 | } 10 | } 11 | static { 12 | System.out.println("Class JrTest.clinit<>"); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /main/src/test/resources/dummy.txt: -------------------------------------------------------------------------------- 1 | This directory must exist for maven-eclipse, but git clone will ignore empty 2 | directories, so this dummy file ensures that the directory exists. 3 | -------------------------------------------------------------------------------- /main/src/test/resources/netweb/GetUrlTestData.txt: -------------------------------------------------------------------------------- 1 | 2 |

Not a Useful File

3 |

4 | This file is only useful to test the GetURL class 5 | That's because it has one Anchor, 6 | one image, 7 | and one frame (not a very good one). 8 | -------------------------------------------------------------------------------- /mkzip: -------------------------------------------------------------------------------- 1 | git archive HEAD --output jm03-src.zip --format zip 2 | -------------------------------------------------------------------------------- /multireleasejar/Data.java: -------------------------------------------------------------------------------- 1 | package mrjdemo; 2 | 3 | // tag::main[] 4 | public class Data { 5 | String type() { 6 | return "class"; 7 | } 8 | } 9 | // end::main[] 10 | -------------------------------------------------------------------------------- /multireleasejar/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Multi-Release: true 2 | -------------------------------------------------------------------------------- /multireleasejar/Main.java: -------------------------------------------------------------------------------- 1 | package mrjdemo; 2 | 3 | // tag::main[] 4 | public class Main { 5 | public static void main(String[] args) { 6 | var type = new Data().type(); 7 | System.out.printf("Run with a Data object of type '%s'.\n", type); 8 | } 9 | } 10 | // end::main[] 11 | -------------------------------------------------------------------------------- /multireleasejar/versions/16/Data.java: -------------------------------------------------------------------------------- 1 | package mrjdemo; 2 | 3 | // tag::main[] 4 | public record Data() { 5 | public String type() { 6 | return "record"; 7 | } 8 | } 9 | // end::main[] 10 | -------------------------------------------------------------------------------- /restdemo/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | .settings 3 | -------------------------------------------------------------------------------- /restdemo/src/main/webapp/WEB-INF/jboss-web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | /rest 4 | 5 | -------------------------------------------------------------------------------- /restdemo/src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | REST Demo 5 | 6 | 7 | -------------------------------------------------------------------------------- /sampleproject/maven/src/main/java/H.java: -------------------------------------------------------------------------------- 1 | public class H { public static void main(String[] args) { System.out.println("Hello"); } } 2 | -------------------------------------------------------------------------------- /sidebyside/c/.cvsignore: -------------------------------------------------------------------------------- 1 | helloworld 2 | -------------------------------------------------------------------------------- /sidebyside/c/Makefile: -------------------------------------------------------------------------------- 1 | all: run 2 | run: helloworld 3 | ./helloworld 4 | helloworld: helloworld.c 5 | cc -o $@ helloworld.c 6 | clean: 7 | @rm -f *.o helloworld 8 | -------------------------------------------------------------------------------- /sidebyside/c/helloworld.c: -------------------------------------------------------------------------------- 1 | /** 2 | * Basic, minimal, Hello World type program in C. 3 | */ 4 | 5 | #include /* included on all C development systems */ 6 | 7 | /*ARGSUSED*/ 8 | int main(int argc, char* argv[]) { 9 | printf("Hello, World\n"); 10 | } 11 | -------------------------------------------------------------------------------- /sidebyside/clojure/Hello.clj: -------------------------------------------------------------------------------- 1 | (println "Hello, world!") 2 | -------------------------------------------------------------------------------- /sidebyside/clojure/HelloSwing.clj: -------------------------------------------------------------------------------- 1 | (javax.swing.JOptionPane/showMessageDialog nil "Hello, World") 2 | -------------------------------------------------------------------------------- /sidebyside/cobol/helloworld.cob: -------------------------------------------------------------------------------- 1 | * Simple "hello world" in COBOL 2 | 3 | IDENTIFICATION DIVISION. 4 | PROGRAM-ID. HelloWorld. 5 | 6 | PROCEDURE DIVISION. 7 | DisplayGreeting. 8 | DISPLAY "Hello world". 9 | STOP RUN. 10 | 11 | -------------------------------------------------------------------------------- /sidebyside/csharp/.cvsignore: -------------------------------------------------------------------------------- 1 | HelloWorld.exe 2 | -------------------------------------------------------------------------------- /sidebyside/csharp/Makefile: -------------------------------------------------------------------------------- 1 | all: run 2 | run: HelloWorld.exe 3 | mono HelloWorld.exe 4 | HelloWorld.exe: HelloWorld.cs 5 | mcs HelloWorld.cs 6 | clean: 7 | @rm -f HelloWorld.exe 8 | -------------------------------------------------------------------------------- /sidebyside/dart/hello.dart: -------------------------------------------------------------------------------- 1 | main() { 2 | var msg = "Hello, World"; 3 | print(msg); 4 | } 5 | -------------------------------------------------------------------------------- /sidebyside/fortran/.cvsignore: -------------------------------------------------------------------------------- 1 | readnums 2 | -------------------------------------------------------------------------------- /sidebyside/fortran/Makefile: -------------------------------------------------------------------------------- 1 | all: 2 | f77 -o readnums readnums.for 3 | readnums 4 | -------------------------------------------------------------------------------- /sidebyside/fortran/readnums.for: -------------------------------------------------------------------------------- 1 | C 2 | C Fortran program to read two numbers and multiply 3 | integer num1, num2; 4 | integer result; 5 | 6 | read *, num1 7 | read *, num2 8 | result = num1 * num2 9 | write(6,100) result 10 | 100 format("result =", I4); 11 | end 12 | -------------------------------------------------------------------------------- /sidebyside/golang/run: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # While Java doesn't care where your source is, 4 | # Maven and gradle *expect* a particular source folder, 5 | # but go-lang *demands* one, and has to be told where it is 6 | # (can't find $PWD?) 7 | 8 | set -x 9 | 10 | export GOPATH=$PWD 11 | 12 | cd $GOPATH/src/$1 13 | 14 | go build 15 | 16 | ./$1 17 | -------------------------------------------------------------------------------- /sidebyside/golang/src/hello/.gitignore: -------------------------------------------------------------------------------- 1 | hello 2 | -------------------------------------------------------------------------------- /sidebyside/golang/src/hello/hello.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import "fmt" 4 | 5 | func main() { 6 | fmt.Println("Hello, World!") 7 | } 8 | -------------------------------------------------------------------------------- /sidebyside/golang/src/stack/.gitignore: -------------------------------------------------------------------------------- 1 | stack 2 | -------------------------------------------------------------------------------- /sidebyside/groovy/hello.groovy: -------------------------------------------------------------------------------- 1 | println "Hello World" 2 | -------------------------------------------------------------------------------- /sidebyside/groovy/stack.groovy: -------------------------------------------------------------------------------- 1 | // Groovy lists already have stack capabilities 2 | 3 | def stack = [] 4 | 5 | stack.push(1) 6 | stack.push(2) 7 | stack.push('Hello') 8 | println stack.last() // prints the string 9 | println stack.pop() // prints the string again 10 | println stack.size() // prints 2 11 | 12 | println stack 13 | -------------------------------------------------------------------------------- /sidebyside/java/AcceptDemo.java: -------------------------------------------------------------------------------- 1 | package sidebyside.java; 2 | 3 | import java.util.Scanner; 4 | 5 | public class AcceptDemo { 6 | public static void main(String[] args) { 7 | Scanner sc = new Scanner(System.in); // Requires J2SE 1.5 8 | int num1 = sc.nextInt(); 9 | int num2 = sc.nextInt(); 10 | int result = num1 * num2; 11 | System.out.println("Result = " + result); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /sidebyside/java/HelloWorld.java: -------------------------------------------------------------------------------- 1 | package sidebyside.java; 2 | 3 | /** 4 | * Basic, minimal, Hello World type program in Java. 5 | */ 6 | public class HelloWorld { 7 | public static void main(String[] argv) { 8 | System.out.println("Hello, World"); 9 | 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /sidebyside/java/StackDemo.java: -------------------------------------------------------------------------------- 1 | import java.util.Stack; 2 | 3 | /** Using predefined java.util.Stack */ 4 | public class StackDemo { 5 | public static void main(String[] args) { 6 | Stack stack = new Stack<>(); 7 | stack.push(1); 8 | stack.push(2); 9 | System.out.println(stack.pop()); 10 | System.out.println(stack.pop()); 11 | System.out.println(stack.isEmpty()); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /sidebyside/kotlin/hello.kt: -------------------------------------------------------------------------------- 1 | fun main() { 2 | print "Hello, world" 3 | } 4 | -------------------------------------------------------------------------------- /sidebyside/ocaml/hello.ocaml: -------------------------------------------------------------------------------- 1 | print_endline "Hello world!" 2 | -------------------------------------------------------------------------------- /sidebyside/python/helloworld: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | print("Hello, World.") 4 | -------------------------------------------------------------------------------- /sidebyside/ruby/Hello.ruby: -------------------------------------------------------------------------------- 1 | class Hello 2 | print "Hello\n" 3 | end 4 | -------------------------------------------------------------------------------- /sidebyside/rust/Hello.rust: -------------------------------------------------------------------------------- 1 | fn main() { 2 | println!("Hello, world"); 3 | } 4 | -------------------------------------------------------------------------------- /sidebyside/rust/Stack.rust: -------------------------------------------------------------------------------- 1 | // Using standard library Vector (Vec) 2 | 3 | fn main() { 4 | let mut stack = Vec::new(); 5 | stack.push("1"); 6 | stack.push("2"); 7 | stack.push("3"); 8 | 9 | assert_eq!(Some(&"3"), stack.last()); 10 | assert_eq!(Some("3"), stack.pop()); 11 | assert_eq!(Some("2"), stack.pop()); 12 | assert_eq!(Some("1"), stack.pop()); 13 | assert_eq!(None, stack.pop()); 14 | } 15 | -------------------------------------------------------------------------------- /sidebyside/scala/Hello.scala: -------------------------------------------------------------------------------- 1 | object Hello extends App { 2 | println("Hello, World!") 3 | } 4 | -------------------------------------------------------------------------------- /spark/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | -------------------------------------------------------------------------------- /spark/README.adoc: -------------------------------------------------------------------------------- 1 | = Apache Spark Demo 2 | 3 | This only shows a tiny bit of Spark's capability! 4 | 5 | To run this demo, do something like the following: 6 | 7 | # set this variable to whereever you installed Spark: 8 | export SPARK_HOME=~/spark-3.0.0-bin-hadoop3.2 9 | 10 | # Build the demo and run it. 11 | mvn package && ./run 12 | -------------------------------------------------------------------------------- /spark/run: -------------------------------------------------------------------------------- 1 | ${SPARK_HOME}/bin/spark-submit \ 2 | --class "sparkdemo.LogReader" \ 3 | --master local[4] \ 4 | target/javasrc-sparkdemo-1.0.0-SNAPSHOT.jar 5 | -------------------------------------------------------------------------------- /template/@.txt: -------------------------------------------------------------------------------- 1 | * @author Ian F. Darwin, https://darwinsys.com/ 2 | * @version #Id$ 3 | -------------------------------------------------------------------------------- /template/JOption.frag: -------------------------------------------------------------------------------- 1 | JOptionPane.showMessageDialog(frame, 2 | "Error: " + ex.toString(), 3 | "Error!", 4 | JOptionPane.ERROR_MESSAGE); 5 | -------------------------------------------------------------------------------- /template/Main.java: -------------------------------------------------------------------------------- 1 | package template; 2 | 3 | /** 4 | * Template for standalone, line-mode main program. 5 | * @author Ian F. Darwin, https://darwinsys.com/ 6 | * @version ?Id$ 7 | */ 8 | public class Main { 9 | public static void main(String[] argv) { 10 | //+ 11 | System.out.println("XXX "); 12 | //- 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /template/addactionlistener.frag: -------------------------------------------------------------------------------- 1 | x.addActionListener(new ActionListener() { 2 | public void actionPerformed(ActionEvent e) { 3 | DO_SOMETHING; 4 | } 5 | }); 6 | -------------------------------------------------------------------------------- /template/descr.txt: -------------------------------------------------------------------------------- 1 | Templates for use in quick Java coding 2 | -------------------------------------------------------------------------------- /template/jframe.exit.frag: -------------------------------------------------------------------------------- 1 | f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 2 | -------------------------------------------------------------------------------- /testing-spock/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | -------------------------------------------------------------------------------- /testing-spock/src/test/groovy/spockdemo.groovy: -------------------------------------------------------------------------------- 1 | package spock; 2 | 3 | import spock.lang.Specification; 4 | 5 | /** 6 | * Simple demo of Spock 7 | */ 8 | class SpockDemo extends Specification { 9 | def 'spock true'() { 10 | expect: 11 | true 12 | } 13 | } 14 | 15 | -------------------------------------------------------------------------------- /testing/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | build 3 | *.iml 4 | .idea 5 | .settings 6 | -------------------------------------------------------------------------------- /testing/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | javasrc-testing 4 | Code Examples for the O'Reilly Java Cookbook. 5 | 6 | 7 | 8 | org.eclipse.jdt.core.javabuilder 9 | 10 | 11 | 12 | org.eclipse.jdt.core.javanature 13 | 14 | 15 | -------------------------------------------------------------------------------- /testing/src/main/java/sampleapp/Units.java: -------------------------------------------------------------------------------- 1 | package sampleapp; 2 | 3 | enum Units { 4 | SI, // aka "Metric" 5 | US // aka "Imperial" 6 | } 7 | -------------------------------------------------------------------------------- /testing/src/main/java/sampleapp/WeatherReporter.java: -------------------------------------------------------------------------------- 1 | package sampleapp; 2 | 3 | public class WeatherReporter { 4 | WeatherStation station; 5 | 6 | public void setStation(WeatherStation station) { 7 | this.station = station; 8 | } 9 | 10 | public void setUnits(Units units) { 11 | station.setUnits(units); 12 | } 13 | 14 | public double getTemperature() { 15 | return station.getTemperature(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /testing/src/main/java/sampleapp/WeatherStation.java: -------------------------------------------------------------------------------- 1 | package sampleapp; 2 | 3 | public interface WeatherStation { 4 | 5 | void setUnits(Units units); 6 | 7 | double getTemperature(); 8 | 9 | // Other methods... 10 | 11 | } 12 | -------------------------------------------------------------------------------- /testing/src/main/java/testing/package.html: -------------------------------------------------------------------------------- 1 | 2 | Support for testing Java code. 3 | 4 | -------------------------------------------------------------------------------- /testing/src/test/java/testing/StringTest.java: -------------------------------------------------------------------------------- 1 | package testing; 2 | 3 | import static org.junit.jupiter.api.Assertions.assertEquals; 4 | 5 | import org.junit.jupiter.api.Test; 6 | 7 | public class StringTest { 8 | @Test 9 | public void testSubstringAtFront() { 10 | String origin = "Forescore and seven years ago"; 11 | String expected = "Fore"; 12 | String actual = origin.substring(0,4); 13 | assertEquals(actual, expected); 14 | } 15 | } 16 | 17 | -------------------------------------------------------------------------------- /unsafe/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | -------------------------------------------------------------------------------- /unsafe/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | javasrc-unsafe 4 | Examples of "unsafe" from Java Cookbook. 5 | 6 | 7 | 8 | org.eclipse.jdt.core.javabuilder 9 | 10 | 11 | 12 | org.eclipse.jdt.core.javanature 13 | 14 | 15 | -------------------------------------------------------------------------------- /unsafe/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | module javasrc.unsafe { 2 | 3 | requires jdk.unsupported; 4 | 5 | } 6 | -------------------------------------------------------------------------------- /xml/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | -------------------------------------------------------------------------------- /xml/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | javasrc-xml 4 | Code Examples for the O'Reilly Java Cookbook. 5 | 6 | 7 | 8 | org.eclipse.jdt.core.javabuilder 9 | 10 | 11 | 12 | org.eclipse.jdt.core.javanature 13 | 14 | 15 | -------------------------------------------------------------------------------- /xml/README.adoc: -------------------------------------------------------------------------------- 1 | = javasrc/xml 2 | 3 | This contains various XML demos. 4 | 5 | -------------------------------------------------------------------------------- /xml/src/main/java/xml/cdatasection.xml: -------------------------------------------------------------------------------- 1 | 100000]]> 2 | -------------------------------------------------------------------------------- /xml/src/main/java/xml/descr.txt: -------------------------------------------------------------------------------- 1 | XML - eXtensible Markup Language 2 | -------------------------------------------------------------------------------- /xml/src/main/java/xml/jaxb/config.save.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | idarwin 7 | true 8 | inky green 9 | -------------------------------------------------------------------------------- /xml/src/main/java/xml/people-dtd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Ian Darwin 6 | https://darwinsys.com/ 7 | Canada 8 | 9 | 10 | Another Darwin 11 | afd@node1 12 | Canada 13 | 14 | 15 | -------------------------------------------------------------------------------- /xml/src/main/java/xml/people-xinclude.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /xml/src/main/java/xml/people-xsl.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Ian Darwin 8 | https://darwinsys.com/ 9 | Canada 10 | 11 | 12 | Another Darwin 13 | ad 14 | Canada 15 | 16 | 17 | -------------------------------------------------------------------------------- /xml/src/main/java/xml/people.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /xml/src/main/java/xml/people.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Ian Darwin 6 | https://darwinsys.com/ 7 | Canada 8 | 9 | 10 | Another Darwin 11 | afd@node1.com 12 | Canada 13 | 14 | 15 | -------------------------------------------------------------------------------- /xml/src/main/java/xml/runxslt: -------------------------------------------------------------------------------- 1 | case $# in 2 | 2|3) ;; 3 | *) echo "Usage: $0 xml-in xsl-in [outfile]" >&2;; 4 | esac 5 | 6 | INFILE=$1 7 | XSLSHEET=$2 8 | OUTFILE=${3-transformed.txt} 9 | 10 | java ~/git/javasrc/xml/src/main/java/xml/JAXPTransform.java $INFILE $XSLSHEET $OUTFILE 11 | -------------------------------------------------------------------------------- /xml/src/main/java/xml/whatis.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Java and XML 5 | 6 | Java and XML 7 | 8 | What is XML? 9 | 10 | XML is a standard for self-describing data. 11 | 12 | -------------------------------------------------------------------------------- /xml/src/main/java/xmlform/XmlFormWalker.java: -------------------------------------------------------------------------------- 1 | package xmlform; 2 | 3 | interface XmlFormWalker { 4 | public abstract void convertAll(); 5 | } 6 | -------------------------------------------------------------------------------- /xml/src/main/java/xmlform/descr.txt: -------------------------------------------------------------------------------- 1 | XMLForm - my own XML transformer 2 | -------------------------------------------------------------------------------- /xml/src/main/java/xmlform/try: -------------------------------------------------------------------------------- 1 | export CODEDIR=/c/javasrc/numbers 2 | java -classpath ${CLASSPATH}:${CODEDIR} -Dcodedir=${CODEDIR} XmlForm test1.xml > test1.mif 3 | --------------------------------------------------------------------------------