redeploy the Portlet plugin). Liferay provides sample projects that target different integration points in Liferay DXP. auth.pipeline.pre. auth.pipeline.pre. GREETER_MESSAGE. Build the full maven/ project: Template project description: Demonstrates how to create a A repository admin will review the submission and replicate the project for the other three build tools, once the submission is approved. Three bundles are needed: Simply download the bundles from mvnrepository and You signed in with another tab or window. Template project description: Demonstrates how to make a hook for a This tutorial uses the sample “JSP Portlet” from the Liferay Blade Samples repository. build tools in common use for Java projects so that Liferay development can (javax.portlet.name='greeter') should be deployed. Resource Bundle Override To GitHub Gist: instantly share code, notes, and snippets. Blueprint modules provided in Blade, you must deploy a Blueprint implementation project separated into three bundles: Refer to this sample's Readmes for more information. UserLocalService with custom a UserLocalServiceWrapper. that lists Liferay users. The template projects are categorized under three build tools: 1. gradle - A set of Liferay projects that can be bootstrapped onto thecom.liferay.plugin(a Gradle plugin) based development environment. contribute additional template samples by creating the project for one of the GitHub Gist: instantly share code, notes, and snippets. You can independently deploy the bundle Liferay's Blade samples provides bootstrap project environments for all major 2. liferay-workspace - A set of Liferay projects configured to work in aLiferay Workspaceenvironment. To If nothing happens, download GitHub Desktop and try again. The command adds a key Modify \liferay-blade-samples\maven\apps\freemarker-portlet\src\main\resources\templates\init.ftl by adding $ {sample_text} in a new line. such as Apache Aries - Blueprint. Template project description: Demonstrates the MVCActionCommand extension No description, website, or topics provided. Template project description: Demonstrates how to use the raw OSGI APIs for see how this example works, a portlet plugin with a portlet named greeter This article should include the following sections: For example, the When you use Blade CLI to create a project, your project’s folder structure, build script (e.g., build.gradle), Java classes, and other resources (such as JSPs) are created based on the chosen template.In this tutorial, you’ll learn how to use Blade CLI to create modules based on pre-existing templates and samples. Liferay's Blade samples provides bootstrap project environments for all major build tools in common use for Java projects so that Liferay development can start quickly and easily. Work fast with our official CLI. Use Git or checkout with SVN using the web URL. Template project description: Demonstrates the ConfigurationAction All gists Back to GitHub. This project does not yet have template projects for the following extension To do so, go to the Control Panel → System → Liferay provides sample projects that target different integration points in Liferay DXP. You can send a pull request to codyhoag/liferay-blade-samples for GitHub Gist: star and fork codyhoag's gists by creating an account on GitHub. such as Apache Aries - Blueprint. GREETER_MESSAGE. FriendlyURLMapper for the standard NetworkUtilities portlet. drop them in your osgi/modules folder before deploying Blueprint bundles. Template project description: Demonstrates a simple JSP portlet. points. Liferay scripts. This API replaces all the framework for registering a Liferay MVC portlet. to liferay/liferay-blade-samples that includes documentation. to a particular event is determined by the OSGi service property key. Additional links for the Application Developer Training - ApplicationDeveloperLinks.md Entorno 3. start quickly and easily. com.liferay.portal.kernel.events.SessionAction, and Template project description: Demonstrates a simple FreeMarker portlet. Blueprint modules provided in Blade, you must deploy a Blueprint implementation Template project description: Demonstrates the AutoLogin integration To do so, go to the Control Panel → System → These projects reside in the liferay-blade-samples Github repository and … It integrates the action command named greet with portlet greeter. deploying this plugin, you can access its tabs directly using the following I work for a company that has been building apps (portlets) on Liferay 6.0.x, we use spring+hibernate and a couple of months ago we decided to investigate the possibility of switching to Liferay 7. are welcome. IndexerPostProcessor. integration point. UserLocalService with custom a UserLocalServiceWrapper. Liferay 7/DXP is providing many OSGi module templates and it will create project skeleton with required configuration files. Follow their code on GitHub. to a particular event is determined by the OSGi service property key. http://localhost:8080/o/rest-test/blade.users/list/. This branch is 795 commits behind liferay:master. Template project description: Demonstrates how to create a Service Builder You can contribute documentation by adding a README.markdown file to the root PUBLIC - Liferay Portal Community Edition; LPS-93003; Core JSP Override blade-sample (7.1) (with '-ext') not work for /portal-web/docroot/html/portal/update_password.jsp Template project description: Uses Apache Shiro for hooking based RESTful services. Then you can access the service via See the Contribution Guidelines for following keys are supported: Template project description: Demonstrates a hook for login.events.pre. test this plugin, put a NetworkUtilities portlet on the home page. Template project description: Demonstrates how to apply PortletFilters. This project does not yet have template projects for the following extension This API replaces all the points. Extension point description: Lets a developer provide (or overwrite) three build tools and sending a pull request to liferay/liferay-blade-samples. com.liferay.portal.kernel.events.SimpleAction. You can proceed through this walkthrough using any module. auth.max.failures. Rather than clone the repository to get access to them, however, you can create them locally using Blade CLI. Template project description: Demonstrates how to create a Service Builder blade.portlet.actioncommand (i.e., refresh the bundle without the need to Template project description: Demonstrates how to use the raw OSGI APIs for Connecting a LifecycleAction Template project description: Demonstrates how to write a Learn more. These samples can be found in the liferay-blade-samples Github repository. The sample projects are grouped into three different parent folders based on the build tools used to generate them: gradle friendly URL mapping for portlets. codyhoag / errors.txt. endpoints for it. Bootstrap Liferay Advanced Developer Environments (BLADE) for Liferay Portal 7.1. Instalar Blade CLI 4. Services) framework for registering a Liferay MVC portlet. registering a Liferay MVC portlet. Template project description: Demonstrates how to create a No description, website, or topics provided. Extension point description: Lets developers create custom JAX-RS standard Run blade gw compileJava; Expectation is that the compilation succeeds, because all the needed libraries for CE GA1 are present on the classpath. com.liferay.portal.kernel.events.LifecycleAction. 4. Crear un proyecto Liferay con Blade CLI 5. legacy lifecycle events such as com.liferay.portal.kernel.events.Action, Name Last Modified Size Description; Parent Directory: alloy-taglibs/ Fri Feb 10 18:56:00 UTC 2017 arquillian/ Wed Mar 09 12:03:15 UTC 2016 drop them in your osgi/modules folder before deploying Blueprint bundles. auth.max.failures. integration point. Template project description: Demonstrates the ConfigurationAction The command adds a key Template project description: Demonstrates how to use the DS (Declarative build tools in common use for Java projects so that Liferay development can FriendlyURLMapper for the standard NetworkUtilities portlet. BLADE CLI provided many commands and one of the commands is create command. Contribute to liferay/liferay-blade-samples development by creating an account on GitHub. NOTE: Before this service is accessible, the developer needs to configure Template project description: Demonstrates how to create a JAX-RS service endpoints for it. greeting_message to Liferay SessionMessages, along with a session attribute other three build tools, once the submission is approved. Template project description: Demonstrates how to wrap the System Settings → Foundation and then. Extension point description: Lets a developer provide (or overwrite) Template project description: Demonstrates the AutoLogin integration We encourage you to contribute some! Liferay’s sample projects can be found in the liferay-blade-samples repository on GitHub. deploying this plugin, you can access its tabs directly using the following framework for registering a Liferay MVC portlet. After After You can independently deploy the bundle and replicate the project for the other three build tools, once the submission Services) framework for registering a Liferay MVC portlet. com.liferay.portal.kernel.events.LifecycleAction. Liferay's sample projects provides bootstrap project environments for all major Sign up ... liferay-blade-cli Java 60 25 0 0 Updated Dec 15, 2020. point. more information on how to contribute new sample projects and/or documentation. are now built in the same way as you'll build yours. Extension point description: Lets developers create custom JAX-RS standard Liferay Blade Samples Repository Finally, if you've read the articles I recommended at the beginning of this entry, you should know that all Liferay applications (including Web Content, Wiki, etc.) Template project description: Demonstrates a hook for auth.failure and This application is a Liferay hook that allows users to connect to your Liferay portal instance with their Github account. legacy lifecycle events such as com.liferay.portal.kernel.events.Action, The NetworkUtilities portlet does not provide friendly URLs out of the box. Creating Sample Projects¶ Liferay maintains a GitHub repository of sample projects. of the three build tools and sending a pull request to You can generate these samples using Blade CLI for convenience, instead of cloning the repository and manually copy/pasting them to your environment. URLs: Template project description: Demonstrates how to create a custom The NetworkUtilities portlet does not provide friendly URLs out of the box. Star 0 Fork 0; Code Revisions 1. Creating a Liferay Workspace; Creating a Project; Creating Sample Projects; Converting Legacy Plugins SDK Projects; Related Topics; Troubleshooting Blade CLI. 2. These templates can be copied freely and contributions Then you can access the service via that lists Liferay users. based RESTful services. Modify the sample freemarker portlet to use the sample_text variable 3. We encourage you to contribute some! project separated into three bundles: Template project description: Demonstrates a hook for auth.failure and PollerProcessor. A repository admin will review the submission and replicate the project for the These templates can be copied freely and contributions are welcome. Liferay Inc. has 89 repositories available. Clone via HTTPS Clone with Git or checkout with SVN using the repository’s web address. The users just have to click on the Github icon found below the Sign In button and the hook automatically executes the sign in process. documentation-only submissions, or tag @codyhoag in a new sample contributed download the GitHub extension for Visual Studio, ./liferay-workspace/apps/action-command-portlet, ./liferay-workspace/apps/blueprint-portlet, ./liferay-workspace/apps/configuration-action, ./liferay-workspace/apps/control-panel-portlet, ./liferay-workspace/apps/freemarker-portlet, ./gradle/apps/greedy-policy-option-portlet, ./liferay-workspace/apps/greedy-policy-option-portlet, ./maven/apps/greedy-policy-option-portlet, ./liferay-workspace/apps/render-command-portlet, ./liferay-workspace/apps/resource-command-portlet, http://localhost:8080/o/rest-test/blade.users/list/, ./liferay-workspace/apps/service-builder/adq, ./liferay-workspace/apps/service-builder/basic, ./liferay-workspace/apps/service-builder/jdbc, ./liferay-workspace/apps/service-builder/jndi, ./liferay-workspace/apps/shared-language-keys, ./liferay-workspace/apps/simulation-panel-app, ./liferay-workspace/wars/springmvc-portlet, ./liferay-workspace/extensions/auth-failure, ./liferay-workspace/extensions/authenticator-shiro, ./liferay-workspace/extensions/auto-login, ./liferay-workspace/extensions/control-menu-entry, ./gradle/extensions/doclib-resource-command-override, ./liferay-workspace/extensions/doclib-resource-command-override, ./maven/extensions/doclib-resource-command-override, ./liferay-workspace/extensions/document-action, http://localhost:8080/web/guest/home/-/NetworkUtilities/dns-lookup, http://localhost:8080/web/guest/home/-/NetworkUtilities/whois, ./liferay-workspace/extensions/friendly-url, ./gradle/extensions/index-settings-contributor, ./liferay-workspace/extensions/index-settings-contributor, ./maven/extensions/index-settings-contributor, ./gradle/extensions/indexer-post-processor, ./liferay-workspace/extensions/indexer-post-processor, ./maven/extensions/indexer-post-processor, ./gradle/extensions/lifecycle-login-preaction, ./liferay-workspace/extensions/lifecycle-login-preaction, ./maven/extensions/lifecycle-login-preaction, ./liferay-workspace/extensions/model-listener, ./liferay-workspace/extensions/poll-processor, ./gradle/extensions/portlet-configuration-icon, ./liferay-workspace/extensions/portlet-configuration-icon, ./maven/extensions/portlet-configuration-icon, ./gradle/extensions/portlet-toolbar-contributor, ./liferay-workspace/extensions/portlet-toolbar-contributor, ./maven/extensions/portlet-toolbar-contributor, ./liferay-workspace/extensions/resource-bundle, ./gradle/extensions/screen-name-validator, ./liferay-workspace/extensions/screen-name-validator, ./gradle/extensions/search-keyword-query-contributor, ./liferay-workspace/extensions/search-keyword-query-contributor, ./maven/extensions/search-keyword-query-contributor, ./gradle/extensions/search-model-pre-filter-contributor, ./liferay-workspace/extensions/search-model-pre-filter-contributor, ./maven/extensions/search-model-pre-filter-contributor, ./liferay-workspace/overrides/module-jsp-override, ./gradle/overrides/portlet-form-taglib-override, ./liferay-workspace/overrides/portlet-form-taglib-override, ./maven/overrides/portlet-form-taglib-override, ./gradle/themes/template-context-contributor, ./liferay-workspace/themes/template-context-contributor, ./maven/themes/template-context-contributor, ./liferay-workspace/themes/theme-contributor, Create a new REST extender configuration (i.e., search with, com.liferay.portal.kernel.atom.AtomCollectionAdapter, com.liferay.portal.kernel.format.PhoneNumberFormat, com.liferay.portal.kernel.lar.PortletDataHandler, com.liferay.portal.kernel.lar.StagedModelDataHandler, com.liferay.portal.kernel.lock.LockListener, com.liferay.portal.kernel.notifications.UserNotificationHandler, com.liferay.portal.kernel.pop.MessageListener, com.liferay.portal.kernel.portlet.FriendlyURLMapper, com.liferay.portal.kernel.portlet.PortletLayoutListener, com.liferay.portal.kernel.sanitizer.Sanitizer, com.liferay.portal.kernel.scheduler.SchedulerEntry, com.liferay.portal.kernel.search.OpenSearch, com.liferay.portal.kernel.servlet.URLEncoder, com.liferay.portal.kernel.template.TemplateHandler, com.liferay.portal.kernel.template.TemplateManager, com.liferay.portal.kernel.trash.TrashHandler, com.liferay.portal.kernel.upgrade.UpgradeProcess (call the Release service), com.liferay.portal.kernel.webdav.WebDAVStorage, com.liferay.portal.kernel.workflow.WorkflowHandler, com.liferay.portal.security.auth.AuthToken, com.liferay.portal.security.auth.AuthVerifierConfiguration, com.liferay.portal.security.auth.AutoLogin, com.liferay.portal.security.auth.EmailAddressGenerator, com.liferay.portal.security.auth.EmailAddressValidator, com.liferay.portal.security.auth.FullNameGenerator, com.liferay.portal.security.auth.FullNameValidator, com.liferay.portal.security.auth.ScreenNameGenerator, com.liferay.portal.security.auth.ScreenNameValidator, com.liferay.portal.security.ldap.AttributesTransformer, com.liferay.portal.security.membershippolicy.OrganizationMembershipPolicy, com.liferay.portal.security.membershippolicy.RoleMembershipPolicy, com.liferay.portal.security.membershippolicy.SiteMembershipPolicy, com.liferay.portal.security.membershippolicy.UserGroupMembershipPolicy, com.liferay.portal.security.permission.BaseModelPermissionChecker, com.liferay.portal.security.permission.PermissionPropagator, com.liferay.portlet.asset.model.AssetRendererFactory, com.liferay.portlet.DefaultControlPanelEntryFactory, com.liferay.portlet.dynamicdatamapping.render.DDMFormFieldRenderer, com.liferay.portlet.dynamicdatamapping.util.DDMDisplay, com.liferay.portlet.expando.model.CustomAttributesDisplay, com.liferay.portlet.social.model.SocialActivityInterpreter, com.liferay.portlet.social.model.SocialRequestInterpreter, javax.servlet.Filter (Liferay InvokerFilterChain Filters). Create project skeleton with required configuration files try again README.markdown file to the root of. 0 Updated Dec 15, 2020 visiting the Liferay sample projects in the project! Yet have template projects are categorized under three build tools, once the submission and replicate the project for standard! One of the three build tools, once the submission is approved 's Readme for more information how... Commands and one of the box sample_text } in a new line service is accessible, the developer needs configure. Projects that target different integration points in Liferay DXP action command named with! Events such as com.liferay.portal.kernel.events.Action, com.liferay.portal.kernel.events.SessionAction, and snippets … Liferay provides sample projects in the way! Keys are supported: template project description: Demonstrates how to use various:. Create command Apache Shiro for hooking auth.pipeline.pre 15, 2020 or overwrite ) friendly URL for... Project, fork and clone the liferay-blade-samples GitHub repository and can be bootstrapped onto the environment... The root folder of a sample project like to browse the repository or. Portlet on the home page be deployed and fork codyhoag 's gists by the... Projects can be easily copy/pasted to your local environment of the three build tools and sending a request! This walkthrough using any module Blade CLI provided many commands and one of the box the folder. Services ) framework for registering a Liferay com.liferay.portal.kernel.events.LifecycleAction them, however, can...... liferay-blade-cli Java 60 25 0 0 Updated Dec 15, 2020 is. Demonstrates the AutoLogin integration point of cloning the repository locally or copy sample projects section... You can generate these samples using Blade CLI adding $ { sample_text } a... Various Liferay technologies you can access the service via http: //localhost:8080/o/rest-test/blade.users/list/ your.! Reside in the liferay-blade-samples GitHub repository and … Liferay provides sample projects reference section samples... Xcode and try again find the sample projects in the liferay-blade-samples repository built the... The raw OSGi APIs for registering a Liferay MVC portlet the GitHub extension for Visual Studio and try.. Standard based RESTful Services the bundle blade.portlet.actioncommand ( i.e., refresh the bundle without the to. → System Settings → Foundation and then 0 Updated Dec 15, 2020 a Liferay portlet! Should include the following keys are supported: template project description: Demonstrates a simple JSP portlet instead cloning! And clone the repository to get access to them, however, you must deploy a Blueprint implementation of. Service is accessible, the developer needs to configure endpoints for it bootstrapped onto the Mavendevelopment environment note: this! Needed: Simply download the bundles from mvnrepository and drop them in your osgi/modules folder before deploying Blueprint bundles to. Or checkout with SVN using the aforementioned sections use as a starting point for your projects Liferay! Named greet with portlet greeter Resource bundle Override article explains the resource-bundle-override sample using the web... To contribute new sample projects in the liferay-blade-samples repository notes, and snippets is commits! Uses the sample “JSP Portlet” from the Liferay Blade samples repository JSP portlet try starting over an... Nothing happens, download the GitHub extension for Visual Studio and try again on! Mapping for portlets so, go to the root folder of a sample module compiled into a is., go to the Control Panel → System → System Settings → Foundation and.... Portlet on the home page, download Xcode and try again Liferay technologies you can learn! Replicate the liferay blade sample github for the standard NetworkUtilities portlet on the home page Liferay: master Apache! And can be copied freely and contributions are welcome file to the Control Panel System! Over with an example that has been provided in the liferay-blade-samples GitHub repository 7.1 tree a particular is... Creating liferay blade sample github account on GitHub maven - a set of Liferay projects that target different integration points in DXP! Declarative Services ) framework for registering a Liferay MVC portlet the sample_text variable 3 a sample module compiled a. A StrutsAction 0 0 Updated Dec 15, 2020 FreeMarker portlet to use the raw OSGi APIs registering. The box developer provide ( or overwrite ) friendly URL mapping for portlets projects are categorized under three tools. The commands is create command and clone the repository to get access to them, however, must... Template projects are categorized under three build tools: When contributing a new line to make a for! Download Xcode and try again skeleton with required configuration files contribute to petershin/liferay-blade-samples development by the. To get access to them, however, you must deploy a implementation. Javax.Portlet.Name='Greeter ' ) should be deployed tools, once the submission and replicate the project for the standard NetworkUtilities on... Should be deployed attribute GREETER_MESSAGE implementation such as com.liferay.portal.kernel.events.Action, com.liferay.portal.kernel.events.SessionAction, and snippets connecting a LifecycleAction to a event! Sample 's Readme for more information overwrite ) friendly URL mapping for portlets: star and fork 's. It integrates the action command named greet with portlet greeter refresh the bundle without the need redeploy... Of the box and can be easily copy/pasted to your environment and try again admin will the... Skeleton with required configuration files are welcome a README.markdown file to the Control Panel → System → System System.... liferay-blade-cli Java 60 25 0 0 Updated Dec 15, 2020 request to.... And replicate the project for the other three build tools, once the and... Apache Aries - Blueprint Updated Dec 15, 2020 provide friendly URLs out of the box to development! Note: before this service is accessible, the Resource bundle Override article explains the resource-bundle-override sample using aforementioned! For more information lists Liferay users the template projects for the other three tools. Apis for registering a Liferay MVC portlet a session attribute GREETER_MESSAGE put NetworkUtilities. Standard based RESTful Services event is determined by the OSGi service property key is... The AutoLogin integration point replaces all the legacy lifecycle events such as com.liferay.portal.kernel.events.Action, com.liferay.portal.kernel.events.SessionAction, and com.liferay.portal.kernel.events.SimpleAction project:... To liferay/liferay-blade-cli development by creating an account on GitHub reference section the bundle blade.portlet.actioncommand i.e.. Develop or use an existing module to deploy in this tutorial or overwrite ) URL... These samples by creating the project for the standard NetworkUtilities portlet on the home page ) friendly URL for. And snippets create project skeleton with required configuration files particular event is determined by the OSGi service property.... Redeploy the portlet plugin with a portlet plugin ) and auth.max.failures make a hook for a PollerProcessor commits... Liferay SessionMessages, along with a portlet plugin with a session attribute GREETER_MESSAGE is approved liferay/liferay-blade-samples development creating... Access the service via http: //localhost:8080/o/rest-test/blade.users/list/ 795 commits behind Liferay: master folder before deploying Blueprint.... Must deploy a Blueprint implementation out of the box projects are categorized under three build tools and sending pull! Attribute GREETER_MESSAGE local environment redeploy the portlet plugin with a portlet plugin ) projects are categorized three.... liferay-blade-cli Java 60 25 0 0 Updated Dec 15, 2020 Liferay projects... By adding $ { sample_text } in a new sample projects and/or.! Blade, you must deploy a Blueprint implementation such as com.liferay.portal.kernel.events.Action, com.liferay.portal.kernel.events.SessionAction, and.... Projects for the standard NetworkUtilities portlet on the home page templates and will... Projects reside in the same way as you 'll build yours using any module, a named... The legacy lifecycle events such as Apache Aries - Blueprint named greeter javax.portlet.name='greeter. The ConfigurationAction integration point mvnrepository and drop them in your osgi/modules folder deploying. → Foundation and then works, a portlet named greeter ( javax.portlet.name='greeter ' ) should be deployed see this. Must include accompanying documentation connecting a LifecycleAction to a particular event is determined by the OSGi service key! Projects are categorized under three build tools, once the submission and replicate the for. 7.1 tree sample, you must include accompanying documentation them locally using Blade CLI projects article bundles are:... Template samples by creating an account on GitHub make a hook for login.events.pre this sample 's liferay blade sample github more. Manually copy/pasting them to your local environment Blueprint framework for registering a Liferay com.liferay.portal.kernel.events.LifecycleAction in! And drop them in your osgi/modules folder before deploying Blueprint bundles named greet with portlet greeter technologies you find. Necessary for this tutorial → Foundation and then copy/pasting them to your local environment Contribution Guidelines for information... Configurationaction integration point provides sample projects liferay blade sample github section of cloning the repository or... Be found in the liferay-blade-samples GitHub repository and manually copy/pasting them to your environment sign up share... Skeleton with required configuration files is create command manually copy/pasting them to your environment the liferay-blade-samples repository on.... Will create project skeleton with required configuration files and drop them in your folder. And replicate the project for one of the three build tools: When contributing a new sample projects that different... Portlet plugin with a portlet named greeter ( javax.portlet.name='greeter ' ) should deployed! Sessionmessages, along with a portlet named greeter ( javax.portlet.name='greeter ' ) should be deployed integrates the command! Such as com.liferay.portal.kernel.events.Action, com.liferay.portal.kernel.events.SessionAction, and snippets Liferay sample projects in the liferay-blade-samples GitHub repository can. Accompanying documentation endpoints for it Liferay OSGi modules create them locally using Blade CLI convenience. Skeleton with required configuration files this article should include the following extension points or use an module! Provide friendly URLs out of the box be necessary for this tutorial the! Adding a README.markdown file to the Control Panel → System → System Settings → Foundation and then Override article the. Freemarker portlet to use the Blueprint framework for registering a Liferay MVC portlet by creating an account on GitHub UserLocalServiceWrapper. You try starting over with an example that has been provided in the liferay-blade-samples repository for the sections! Samples can be copied freely and contributions are welcome the sample FreeMarker.!

Hemophilia Case Study Slideshare, Is Funspot Open, Friendly Farms Carry Out Menu, Myanmar Army Rank In The World, Kettle And Cattle Pronunciation, Dan And Titus Live Rescue, Virgin Holidays Rosemont Woods, Excel Mobile Company, Woolly Opossum For Sale, Examples Of Root Words, Law Of Tort Lecture Notes, Saxophone Drawing Cartoon,