Standard Java Hotswap allows only method body change , which makes it practically unusable. (Here you can find some explanations why and how) This article is all about reloading java code without restart :-)

DCEVM

DCEVM is a JRE patch witch allows almost any structural class change on Hotswap (with an exception of a hierarchy change). Although Hotswap agent works even with standard java, we recommend to use DCEVM (and all tutorials use DCEVM as target JVM). Free and open source. See https://dcevm.github.io/

Spring Loaded

Spring Loaded is a JVM agent for reloading class file changes whilst a JVM is running. It transforms classes at load time to make them amenable to later reloading. Unlike 'hot code replace' which only allows simple changes once a JVM is running (e.g. changes to method bodies), Spring Loaded allows you to add/modify/delete methods/fields/constructors. The annotations on types/methods/fields/constructors can also be modified and it is possible to add/remove/change values in Enum types. Spring Loaded is usable on any bytecode that may run on a JVM, and is actually the reloading system used in Grails 2. Free and open source. See https://github.com/spring-projects/spring-loaded

Hotswap agent – OSS

Hotswap agent is a plugin container with plugin manager, plugin registry, and several agent services (e.g. to watch for class/resource change). It helps with common tasks and class loading issues. It scans class path for class annotated with @Plugin annotation, injects agent services and registers reloading hooks. Runtime bytecode modification is provided by javaasist library. Free and open source.  See http://www.hotswapagent.org/

Plugins

Plugins administered by Hotswap agent are usually targeted towards a specific framework. For example Spring plugin uses agent services to:

  • Modify root Spring classes to get Spring contexts and registered scan path
  • Watch for any resource change on a scan path
  • Watch for a Hotswap of a class file within a scan path package
  • Reload bean definition after a change
  • ... and many other

Packaged plugins:

  • Hibernate (4x) - Reload Hibernate configuration after entity create/change.
  • Spring (3x) - Reload Spring configuration after class definition/change.
  • Jetty - add extra class path to the app class loader. All versions supporting WebAppContext.getExtraClasspath should be supported.
  • ZK (5x-7x) - ZK Framework (http://www.zkoss.org/). Change library properties default values to disable caches, maintains Label cache and bean resolver cache.
  • Logback - Logback configuration reload
  • Hotswapper - Watch for any class file change and reload (Hotswap ) it on the fly via Java Platform Debugger Architecture (JPDA)
  • AnonymousClassPatch - Swap anonymous inner class names to avoid not compatible changes.
  • ELResolver 2.2 (JuelEL, Apache Commons EL, Oracle EL 3.0)- clear ELResolver cache on class change. Support Hotswap for #{...} expressions.
  • Seam (2.2, 2.3) - flush JBoss reference cache. Support for properties file change (messages[])
  • JSF (mojarra 2.1, 2.2) - support for application resource bundle files change (properties files).
  • Osgi Equinox - Hotswap support for Eclipse plugin or Eclipse platform development.
  • CDI/Weld - reload bean class definition after class change.
  • WebObjects - Clear key value coding, component, action and validation caches after class change.

Jrebel

JRebel is a JVM Java Agent that integrates with application servers, making classes reloadable with existing class loaders. Only changed classes are recompiled and instantly reloaded in the running application. JRebel plugs into IDEs and build systems. Classes and static resources are loaded straight from the workspace. JRebel integrates with over 100 frameworks. Dedicated JRebel plugins will rebuild caches, rewire components and apply configuration to the runtime as necessary. Free for open source / personnal use at  https://my.jrebel.com or commercial license. See https://zeroturnaround.com/software/jrebel/

JRebel Packaged plugins:

  • ADF Core plugin, Allows ADF page definition files to be reloaded
  • ADF Faces plugin, Patches ADF implementation of JSF lifecycle allowing Mojarra plugin to do the rest
  • AspectJ Plugin, Enables the load-time-weaving of AspectJ aspects. Can alter class loading/initialization order during startup
  • ATG plugin, The plugin reinitializes ATG Nucleuses when the Nucleus elements Java class file has changed., It also re-reads the values from the properties file in the reloading process. So that when Nucleuses have new connections then they will be initialized and if they have new properties values then those will also be there
  • Axis2 plugin, adds, removes, reloads web services defined in the services.xml file, adds, removes, reloads web services defined using JAXWS annotation
  • Axis2 WAS plugin, adds, removes, reloads web services defined using JAXWS annotation
  • Axon Plugin, Fixes issue with Axon registering duplicate listeners to EventBus on Spring Bean reconfiguratio
  • BVal plugin, description=Reload changes to MetaBean definitions when the underlying validated class or its composing validation annotations change.,
  • Camel plugin, Updates a CamelContext when one or more of its associated RouteBuilder classes are changed
  • CaptainCasa plugin, Disables Captain Casa layout buffer, so that JSP reloading works out of the box
  • Click plugin, Reloads the menu definition from menu.xml
  • CXF Plugin, Tracks changes in the configuration of Apache CXF REST/WS applications
  • Deltaspike plugin, Prevents exceptions during class reloading
  • Ebean plugin, Integration with Ebean load time enhancemen
  • Eclipse RCP Plugin, Refreshes plugins when plugin.xml changes
  • EclipseLink MOXy plugin, Support for the EclipseLink MOXy JAXB implementation
  • EclipseLink plugin, Reloads an EntityManagerFactory when any of the mapping files or annotated entity classes changes., When an entity class is reloaded the corresponding cache entries are flushed
  • Equinox OSGI Plugin, description=Equinox OSGI Integration.,
  • Facelets plugin, Turns on facelet development mode for automatic reloading of facelets., Provides reloading of facelet tag libraries
  • GlassFish EJB Plugin, Supports adding new EJBs on the fly and altering the existing EJB interfaces
  • Grails 2 & Grails 3 CLI Plugin, description=Make Grails 2 & Grails 3 CLI use JRebel instead of Spring Reloaded,
  • Grails 2 Plugin, description=Make Grails2 use JRebel instead of Spring Reloaded,
  • Grails 3 Plugin, description=Make Grails 3 use JRebel for reloading,
  • Groovy Plugin, Refreshes Groovy class metadata and call site cache on class change., After reload, call site cache may be misaligned for obsolete methods on stack
  • Guice plugin, Supports adding new components and injecting new implicit dependencies., Wires changed dependencies in Guice singletons
  • GWT plugin, Enables reloading of client-side classes in hosted (development) mode. Server-side classes should be reloaded without the plugin., , Limitations: Native Javascript methods may not be supported
  • Hibernate 5 plugin, Enables configuration reloading (rebuilding of Hibernate's SessionFactory) when updates are detected to underlying configuration resources (either XML mapping files or model classes with JPA annotations)., Enables automatic schema updating if hibernate.hbm2ddl.auto=update or schemaUpdate=true on org.springframework.orm.hibernate5.LocalSessionFactoryBean., , Limitations: The SessionFactory rebuilding works when it is being built through classes HibernatePersistence, HibernateService, org.jboss.hibernate.jmx.Hibernate or org.springframework.orm.hibernate3.LocalSessionFactoryBean. All classes that create SessionFactory instances have to be handled separately. If user creates SessionFactory in his own code, the integration won't capture that
  • Hibernate plugin, Enables configuration reloading (rebuilding of Hibernate's SessionFactory) when updates are detected to underlying configuration resources (either XML mapping files or model classes with JPA annotations)., Enables automatic schema updating if hibernate.hbm2ddl.auto=update or schemaUpdate=true on org.springframework.orm.hibernate3.LocalSessionFactoryBean., , Limitations: The SessionFactory rebuilding works when it is being built through classes HibernatePersistence, HibernateService, org.jboss.hibernate.jmx.Hibernate or org.springframework.orm.hibernate3.LocalSessionFactoryBean. All classes that create SessionFactory instances have to be handled separately. If user creates SessionFactory in his own code, the integration won't capture that
  • Hibernate Validator plugin, Enables adding/editing/removing Bean Validation constraint annotations on bean classes and parent constraint annotation types (i.e., supports composite constraints)., Enables creating/editing custom Bean Validation constraint annotation types., , Limitations: Does not alter database schema., , Limitations: Changes to META-INF/validation.xml are not propagated., , Limitations: Changes to XML constraint mappings are not propagated (initial mappings are retained)
  • HK2 plugin, HK2 integration
  • Hybris plugin, Hybris integration
  • iBatis plugin, Refreshes changes in iBatis SQL maps., , Limitations: Only supports refreshing sql maps and not anything else., , Limitations: Does not suppor mappingLocations in spring SqlMapClientFactoryBean
  • Infinispan Plugin, Infinispan integratio
  • Jackson 1.x plugin, Makes Jackson pick up changes (including changed annotations) to classes that it serializes to JSON or deserializes from JSON. Does this by clearing JSON (de)serializer caches for changed classes., , Limitations: Only serializer caches are updated. Doesn’t update de-serializer caches
  • Jackson 2.x plugin, Makes Jackson pick up changes (including changed annotations) to classes that it serializes to JSON or deserializes from JSON. Does this by clearing JSON (de)serializer caches for changed classes., , Limitations: Only serializer caches are updated. Doesn’t update de-serializer caches
  • Jasypt Plugin, Allows reloading Jasypt configurations. NB! Defeats password cleaning
  • JAXB Plugin, Enables support for reloadable classes in JAXBContext, Marshaller & Unmarshaller also pick up class changes immediatel
  • JBoss AOP plugin, Allows for load-time weaving of JBoss AOP aspects. (JRebel agent must be placed before JBoss AOP agent in JVM arguments.
  • JBoss EJB Plugin, Supports adding new EJBs on the fly, altering existing EJB interfaces and injecting new @EJB fields
  • JBoss7 Plugin, Supports adding new EJBs on the fly, altering existing EJB interfaces and injecting new @EJB fields., set -Drebel.jboss7_plugin.reload_ejb=false to disable adding and injecting new EJB bean
  • JDBC Plugin,
  • Jersey 2 plugin, description=Support for Jersey 2 configuration reloading,
  • Jersey plugin, description=Support reloading the configuration of Jersey 1.x applications.,
  • Jetty Servlet Context Plugin, description=Jetty Servler Integration.,
  • JRuby Plugin, description=null,
  • Liferay plugin, Reloading of JSP hooks, Reloading of portlet properties and xml configuration file
  • Liferay status plugin, description=null,
  • Lift plugin, Makes Lift pick up more changes in LiftScreens, Wizards, RestHelpers and MVCHelpers. Does this by re-instantiating any singletons that extend the above-mentioned classes., Keep in mind that the singletons you write that extend the mentioned Lift classes may be initialized multiple times when using this plug-in., , Limitations: Some changes in closures/anonymous functions will still cause problems that require restarts., See http://www.zeroturnaround.com/blog/lift-support-in-jrebel/ for additional information
  • Log4j plugin, Remembers the configuration file used for Log4j initialization, monitors it for updates, makes Log4j reinitialize itself when this file is changed., Includes a 3rd party contribution from Julien Richard
  • Log4j2 plugin, Log4j2 JRebel plugin. Remembers the configuration file used for Log4j2 initialization, monitors it for updates, makes Log4j2 reinitialize itself when this file is changed
  • Logback plugin, Remembers configuration files that Logback loaded it's configuration from (e.g. logback.xml). If updates to those files are detected, framework configuration is rebuilt
  • Magnolia Plugin, Magnolia CMS integratio
  • Metro (JAX-WS) plugin, Keeps track of sun-jaxws.xml and class changes, invoking deploymentDescriptorParser to rebuild the mappings, Updates Metro's dynamic servlets on servlet 3.0 environment
  • Metro Spring plugin, description=Watches jaxws-spring bindings and reloads endpoints,
  • Mojarra plugin, Reloads JSF configuration and reconfigures managed beans., Refreshes Mojarra annotation and XML-based configuration., Turns on Mojarra development mode and Facelet refreshing
  • Mustache Plugin, Reloads com.github.spullara.mustache templates to Mustache objects at run time
  • MyBatis plugin, Reloads modified SQL maps
  • MyFaces plugin, Reloads JSF configuration and reconfigures managed beans
  • OpenJPA plugin, Reloads an EntityManagerFactory when any of the mapping files or annotated entity classes changes., When an entity class is reloaded, the corresponding cache entries are flushed
  • OpenWebBeans plugin, Refreshes OpenWebBeans class metadata and wires changed dependencies on class change
  • Picketlink Plugin, Picketlink integratio
  • Prettyfaces plugin, Enables prettyfaces-config.xml reloading
  • Primefaces plugin, Cleans Primefaces <pe:importEnum> and <pe:importConstants> tags internal caches when underlying classes change
  • RESTEasy plugin, Configuring through context-param javax.ws.rs.Application., Configuring through listener (org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap)., Configuring through filter (org.jboss.resteasy.plugins.server.servlet.FilterDispatcher)., Configuring through servlet (org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher)., Only configuring an Application class is supported (a class that extends javax.ws.rs.core.Application – it is a standard JAX-RS way)., Reloading of JAX-RS annotated methods (adding/removing/changing)., , Limitations: No RestEasy specific/exotic ways of configuration is supporte
  • RESTlet plugin, Makes Application of RESTlet framework as a reloadable clas
  • Scalate plugin, Allows scalate templates to reference new fields and methods in classes
  • Seam 2 plugin, Supports loading new Seam 2 component definitions, either from annotated Java classes or from components.xml. Renaming or removing existing definitions is not supported., Refreshes seam component metadata and interceptors on class change. Supports reloading Seam method metadata annotations like @Observer, @RaiseEvent, etc., Supports reloading navigation files (pages.xml, *.page.xml) outside Seam's development mode (supported for Seam 2.1.x and 2.2.x)., , Notice: It is recommended to turn off Seam's development mode while using Seam together with JRebel
  • Seam 3 plugin, Minor Seam3 compatibility fixes
  • Seam-Wicket plugin, Lets Seam Wicket integration load-time-weave Wicket component
  • Solder plugin, Prevents exceptions during class reloading
  • Spring AOP Plugin, description=null,
  • Spring Bean Plugin, Monitors Spring bean definitions in xml-files, reloads them when changed., Monitors packages that could contain Spring beans defined by annotations. If new beans (or changes to old ones) are seen, reloads them., Makes Spring re-do the bean auto-wiring and singleton bean configuration., Disables caches for properties that are replaced for property placeholders in Spring's XML configuration files. When underlying properties files have changed, new values will be inserted on next reloading of these Spring beans
  • Spring Boot Plugin, Provides Spring Boot properties integratio
  • Spring Context Plugin, Monitors Spring bean definitions in xml-files, reloads them when changed., Monitors packages that could contain Spring beans defined by annotations. If new beans (or changes to old ones) are seen, reloads them., Makes Spring re-do the bean auto-wiring and singleton bean configuration., Disables caches for properties that are replaced replaced for property placeholders in Spring's XML configuration files. When underlying properties files have changed, new values will be inserted on next reloading of these Spring beans
  • Spring Core plugin, Spring Core OSGi bundle support
  • Spring Data Plugin, Reloads Spring Data repositories and persistent entities
  • Spring MVC plugin, Reload URL mappings (defined by @RequestPath annotations) when Spring beans have changed. (Before processing a request, Spring MVC plugin tells Spring core plugin to check/reload the beans. If any bean was reloaded, Spring core plugin sends notification to Spring MVC plugin, which then triggers URL mappings rebuilding., Also supports reloading other annotations: @ExceptionHandler, @ModelAttribute, @RequestParam., The plugin ID intentionally collides with the one of Spring core plugin. Spring MVC integration depends on Spring core integration and cannot be enabled independently
  • Spring ORM Plugin, description=null,
  • Spring OXM Plugin, description=null,
  • Spring Security plugin, Handles adding/editing of annotation-based security checks. Handles adding/modifying/removing of http blocks in xml configuration file
  • Spring Webflow plugin, Turns on flow definitions hot-loading even in production mode
  • Spring WS plugin, Reloads endpoint mappings when classes have changed (annotation-driven conf) or new endpoint is added in via xml (xml conf), Republishes wsdl after xsd is changed (when using dynamicWsdlDefinition
  • Stripes plugin, Adds support for adding/removing/reloading action beans on the fly., Supports stripes-guice and stripes-guicer plug-ins for instantiating Guice ActionBeans. (available since JRebel 4.0 M2), Includes 3rd party contributions from Andreas Knifh
  • Struts 1 plugin, Reloads full Struts configuration (by forcing Struts to re-create it's ActionServlet when updates to underlying configuration XML-files are detected. (XML configuration files are remembered when Struts is initializing itself.), Reloads Struts's message resources by emptying the message caches when there are any updates to message resources. (Message resource files are remembered when Struts is initializing itself.
  • Struts 2 plugin, Keeps track of XML configuration file updates and triggers the Struts2 configuration reloading when there are any., Keeps track of annotated action-classes. If the set of action-classes has changed or there are changes to any of the action-classes, trigger configuration reloading
  • Tapestry 4 plugin, Enables adding new listener methods to Tapestry's Page classes., 3rd party contribution
  • Tapestry 5 plugin, Turns on Tapestry 5 dev mode
  • Thymeleaf Plugin, Disables cache mechanism completely
  • Tiles 1 plugin, Enabled reloading of Tiles definitions from XML configuration files. Implements it by recreating DefinitionsFactory instance when the underlying XML configuration resources have changed., See http://zeroturnaround.com/software/jrebel/how-to-use-jrebel-with-tiles the JRebel+Tiles tutorial
  • Tiles 2 plugin, In Tiles 2.0.x and 2.1.x, monitors XML-files containing Tiles definitions and makes Tiles reload them when there are any changes to those files., For Tiles 2.2.x and 3.0.x, just turns on Tiles's own definitions monitoring and lets it do the job itself., Tested and working also when set up through Spring., See http://zeroturnaround.com/software/jrebel/how-to-use-jrebel-with-tiles/
  • TopLink plugin, Reloads an EntityManagerFactory (SessionFactory) when any of the mapping files or annotated entity classes change., Works with JPA configuration and non-JPA configuration if using org.springframework.orm.toplink.LocalSessionFactoryBean (requires TopLinkSpringPlugin)., , Limitations: Custom non-JPA configuration cannot be supported as we do not know how the configuration was loaded
  • TopLink-Spring Plugin, Reloads a SessionFactory when any of the mapping files or annotated entity classes changes. (Works with non-JPA configuration if using org.springframework.orm.toplink.LocalSessionFactoryBean)., Requires TopLinkPlugin., See http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/orm/toplink/LocalSessionFactoryBean.html for additional details
  • Vaadin CDI utils plugin, Vaadin CDI utils plugin. Prevents creation of duplicate observer methods by org.vaadin.virkki.cdiutils.mvp.MvpExtension
  • Velocity plugin, Velocity has a method cache for its known beans that prevents changes to those beans (new getter methods) to become accessible from associated Velocity templates. The plugin remedies this by triggering a cache rebuild each time a bean accessed by velocity has been reloaded by JRebel., The implementation is fine-grained: cache will be emptied only for the bean that was reloaded
  • VRaptor plugin, Supports adding, modifying and removing controllers with @Resource annotation, Reloads methods marked with @GET, @POST, @DELETE, @PUT, @Path annotations, Works on Guice, Pico, Spring container
  • Weblogic EJB Plugin, description=Supports adding new methods to EJB interfaces.,
  • WebObjects plugin, 3rd contribution by Quinton Dolan, set -Drebel.wo.optimize=true to disable reloading of some common package
  • Websphere EJB Plugin, Supports adding new methods to EJB interfaces
  • Weld 2 plugin, Refreshes Weld class metadata and wires changed dependencies on class change
  • Weld plugin, Refreshes Weld class metadata and wires changed dependencies on class change
  • Wicket plugin, Automatically turns on Wicket's HTML template reloading., Tells Spring to try refreshing its context when Spring bean lookup operations fail., Listens for class reload events. When received, cleans Wicket's class metadata caches for the reloaded classes that cache the @SpringBean annotations, forcing Wicket to reload the metadata and enabling annotations to take effect., See the <a href="/http://zeroturnaround.com/software/jrebel/how-to-use-jrebel-with-wicket/">JRebel+Wicket tutorial</a>
  • Wink plugin, Reloads changes in configuration files and application, resource and provider classes
  • ZK Framework plugin, Integrates with ZK Framework cache

Future version of java?

There is hope to have support (JEP 159) for the addition of super-types and the addition and removal of methods and fields.

Reference: Java Whitepaper 135217: Reliability, Availability and Serviceability

comments powered by Disqus

You might like also

No Thumbnail was found
Usually, a percentage of the tokens is sold to ICO participants and a percentage kept for the company’s needs. The token distribution and allocation of the token is usually a chapter in the future company whitepaper. A pie chart displays how and to whom tokens will be allocated. But how much tokens are allocated (amount) and what are they used for? how much token should I spend for advisor? is 15% of all tokens too much for founder? How many …
143 Days ago
No Thumbnail was found
introduction This is my attempt to list all possible blockchain consensus out there, I welcome pull request of the blockchain community! let's make it the main reference for blockchain consensus. Visit also Tokens-Economy.com to keep track of new developments in the distributed ledger technology space. Blockchain Consensus? At the core of the Blockchain disruption is a consensus algorithm: Consensus algorithms enable network participants to agree on the contents of a blockchain in a distributed and trust-less manner. “Consensus decision-making is a group …
154 Days ago
Initial Coin Offering security checklist
Blockchain technology and cryptocurrencies have revolutionized the way companies raise capital but at the same time are bringing their own sets of challenges. To ensure that your startup will go through that (ad)venture in a safe manner, you should always adhere to best security practices, for your company AND your investors.  This mind map will present you in a visual way lots of valuable information like: A compilation of the most dangerous threats to the ICO industry and how to mitigate, …
175 Days ago
Initial Coin Offering in most relevant countries
 This new rendering will allow you to better compare countries The rendering being dynamic you can also pass some parameters like https://ico.tokens-economy.com/statistics/collage.html?width=800&height=800 The default size is width=450&height=450 Filter by year ico end. e.g all ico ended in 2017 https://ico.tokens-economy.com/statistics/collage.html?year=2017  Filter by category and year https://ico.tokens-economy.com/statistics/collage.html?category=Cryptocurrency  And more ICO with no raised amount is also displayed now. ICO webpage has been added Text in bubble scale now properly and are always centered     …
189 Days ago
2751 coins, 47 Consensus and 82 cryptographic algorithms
The innovation speed in Blockchain landscape is just breathtaking and being able to (or to be honest trying to...) follow all these rapid changes is a chance for all software engineers. At the core of the Blockchain disruption are consensus algorithm: Consensus algorithms enable network participants to agree on the contents of a blockchain in a distributed and trust-less manner. And the consensus algorithm plays a crucial role in maintaining the safety and efficiency of blockchain. Using the right algorithm may bring a significant increase to the …
197 Days ago
Initial Coin Offering in Blockchain-Friendly countries
Ever since Vitalik Buterin and Ethereum settled on Switzerland for its Foundation and Initial Coin Offering (ICO), Switzerland has been popular among blockchain-based businesses and is considered the number one in a list of the top 10 European countries for starting a blockchain company (source cointelegraph.com). PwC also found that ICO volume reached new record highs in the first half of 2018 ($13.7 Billion so far), already doubling the volume of the previous year! That inspired me a way to compare at the same time …
205 Days ago
Evaluating Blockchain Projects With Token Economy Canvas
Business Model Canvas is a strategic management and lean startup template for developing new or documenting existing business models. It is a visual chart with elements describing a firm's or product's value proposition, infrastructure, customers, and finances. It assists firms in aligning their activities by illustrating potential trade-offs. Business Model Canvas: nine business model building blocks, Osterwalder, Pigneur & al. 2010 After reading this great article https://medium.com/@pstehlik/evaluating-blockchain-projects-with-token-economy-canvas-908bc1bab6 I felt the need to create an online editor. "Token Economy Canvas consists of …
241 Days ago
ICO friendliness rating index
Do you want to relocate your Blockchain company to an ICO friendly country? the ICO friendliness rating index is a interactive way to go through the list of countries that are hostile or favorable to ICO and Cryptocurrencies. Attention! a disclaimer is required: No Legal Advice or Attorney-Client Relationship: This chart is provided for informational purposes only and is not legal advice. This information is not intended to create, and receipt of it does not constitute, an attorney-client relationship. Recipient should …
241 Days ago
Joomla 3.8.7 and WTLib WinNMP 18.03
As always updating to the latest version of all your developement components is never without any issues, here is what  you need to take into consideration when upgrading Joomla 3.8.7 and WinNMP 18.03 Install WinNMp 18.03 from https://winnmp.wtriple.com/ in any directory, default is C:\WinNMP\ Unpack Joomla 3.8.7 to C:\WinNMP\WWW\dev for example When starting WinNMP, you can click reload, to see the site appearing    Now edit Nginx virtual server    And cut and paste the following config (you can get it from http://winnmp.wtriple.com/nginx.phpJoomla-Nginx-configuration)   …
268 Days ago
The cryptocurrency hack of Bob
Bob did a lot of (obvious) mistakes, but you will still be able to learn a lot by going through this mindmap. The names have been changed to protect the innocent. Hack of Bob   …
297 Days ago